@epam/ai-dial-attachment-canvas 1.1.0-dev.262 → 1.1.0-dev.267
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/AttachmentCanvasBody/AttachmentCanvasBody.d.ts.map +1 -1
- package/components/OoxmlContent/OoxmlContent.d.ts +14 -0
- package/components/OoxmlContent/OoxmlContent.d.ts.map +1 -0
- package/components/VisualizerCanvasRenderer/VisualizerCanvasRenderer.d.ts +1 -1
- package/components/VisualizerCanvasRenderer/VisualizerCanvasRenderer.d.ts.map +1 -1
- package/constants/file.d.ts +6 -0
- package/constants/file.d.ts.map +1 -1
- package/context/AttachmentCanvasContext.d.ts.map +1 -1
- package/docx-TK1kGI6t.js +27179 -0
- package/highlight-rect-BuX5rWP4-BMOCuZYw.js +1037 -0
- package/index.css +1 -1
- package/index.d.ts +3 -3
- package/index.d.ts.map +1 -1
- package/index.js +2439 -2326
- package/models/attachment-canvas.d.ts +14 -3
- package/models/attachment-canvas.d.ts.map +1 -1
- package/package.json +10 -8
- package/pptx-DfVqSUxc.js +7410 -0
- package/render-worker-host-Br7ZDyGE-ByESfBjH.js +7 -0
- package/render-worker-host-CM1JXVqg-DGwZpsUd.js +7 -0
- package/render-worker-host-DFtd9Z-J-DU7fugLI.js +7 -0
- package/renderer-module-contract-BNGz8HvO-BmSLiM0k.js +44363 -0
- package/types/attachment-canvas.d.ts +7 -0
- package/types/attachment-canvas.d.ts.map +1 -1
- package/utils/content.d.ts +5 -0
- package/utils/content.d.ts.map +1 -1
- package/utils/download.d.ts.map +1 -1
- package/visible-index-BjesVGhg-DvGeguMs.js +133 -0
- package/xlsx-44AZTEry.js +7800 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
//#region ../../node_modules/@silurus/ooxml/dist/render-worker-host-Br7ZDyGE.js
|
|
2
|
+
var e = "" + new URL("data:text/javascript;base64,dmFyIGU9T2JqZWN0LmRlZmluZVByb3BlcnR5LHQ9KGUsdCk9PigpPT4oZSYmKHQ9ZShlPTApKSx0KSxuPSh0LG4pPT57bGV0IHI9e307Zm9yKHZhciBpIGluIHQpZShyLGkse2dldDp0W2ldLGVudW1lcmFibGU6ITB9KTtyZXR1cm4gbnx8ZShyLFN5bWJvbC50b1N0cmluZ1RhZyx7dmFsdWU6YE1vZHVsZWB9KSxyfSxyPWNsYXNze19fZGVzdHJveV9pbnRvX3Jhdygpe2xldCBlPXRoaXMuX193YmdfcHRyO3JldHVybiB0aGlzLl9fd2JnX3B0cj0wLGEudW5yZWdpc3Rlcih0aGlzKSxlfWZyZWUoKXtsZXQgZT10aGlzLl9fZGVzdHJveV9pbnRvX3JhdygpO3guX193YmdfZG9jeGFyY2hpdmVfZnJlZShlLDApfWFja25vd2xlZGdlX2RvY3VtZW50X2NodW5rKGUsdCxuKXtsZXQgcj14LmRvY3hhcmNoaXZlX2Fja25vd2xlZGdlX2RvY3VtZW50X2NodW5rKHRoaXMuX193YmdfcHRyLGUsdCxuKTtpZihyWzFdKXRocm93IGgoclswXSl9YXNzZXJ0X2hlYWx0aHkoKXtsZXQgZT14LmRvY3hhcmNoaXZlX2Fzc2VydF9oZWFsdGh5KHRoaXMuX193YmdfcHRyKTtpZihlWzFdKXRocm93IGgoZVswXSl9Y2FuY2VsX2RvY3VtZW50X2N1cnNvcigpe3guZG9jeGFyY2hpdmVfY2FuY2VsX2RvY3VtZW50X2N1cnNvcih0aGlzLl9fd2JnX3B0cil9Y2xvc2VfZG9jdW1lbnRfc2Vzc2lvbigpe3guZG9jeGFyY2hpdmVfY2xvc2VfZG9jdW1lbnRfc2Vzc2lvbih0aGlzLl9fd2JnX3B0cil9ZG9jdW1lbnRfY2h1bmtfZG9uZSgpe2xldCBlPXguZG9jeGFyY2hpdmVfZG9jdW1lbnRfY2h1bmtfZG9uZSh0aGlzLl9fd2JnX3B0cik7aWYoZVsyXSl0aHJvdyBoKGVbMV0pO3JldHVybiBlWzBdIT09MH1kb2N1bWVudF9jdXJzb3JfcmVzb3VyY2VfdXNhZ2UoKXtsZXQgZT14LmRvY3hhcmNoaXZlX2RvY3VtZW50X2N1cnNvcl9yZXNvdXJjZV91c2FnZSh0aGlzLl9fd2JnX3B0cik7aWYoZVszXSl0aHJvdyBoKGVbMl0pO3ZhciB0PW8oZVswXSxlWzFdKS5zbGljZSgpO3JldHVybiB4Ll9fd2JpbmRnZW5fZnJlZShlWzBdLGVbMV0qMSwxKSx0fWV4dHJhY3RfaW1hZ2UoZSl7bGV0IHQ9bShlLHguX193YmluZGdlbl9tYWxsb2MseC5fX3diaW5kZ2VuX3JlYWxsb2MpLG49YixyPXguZG9jeGFyY2hpdmVfZXh0cmFjdF9pbWFnZSh0aGlzLl9fd2JnX3B0cix0LG4pO2lmKHJbM10pdGhyb3cgaChyWzJdKTt2YXIgaT1vKHJbMF0sclsxXSkuc2xpY2UoKTtyZXR1cm4geC5fX3diaW5kZ2VuX2ZyZWUoclswXSxyWzFdKjEsMSksaX1jb25zdHJ1Y3RvcihlLHQsbixyKXtsZXQgaT1wKGUseC5fX3diaW5kZ2VuX21hbGxvYyksbz1iLHM9eC5kb2N4YXJjaGl2ZV9uZXcoaSxvLCFmKHQpLGYodCk/QmlnSW50KDApOnQsIWYobiksZihuKT9CaWdJbnQoMCk6biwhZihyKSxmKHIpP0JpZ0ludCgwKTpyKTtpZihzWzJdKXRocm93IGgoc1sxXSk7cmV0dXJuIHRoaXMuX193YmdfcHRyPXNbMF0+Pj4wLGEucmVnaXN0ZXIodGhpcyx0aGlzLl9fd2JnX3B0cix0aGlzKSx0aGlzfW9wZW5fZG9jdW1lbnRfY3Vyc29yKGUsdCl7bGV0IG49eC5kb2N4YXJjaGl2ZV9vcGVuX2RvY3VtZW50X2N1cnNvcih0aGlzLl9fd2JnX3B0cixlLHQpO2lmKG5bMV0pdGhyb3cgaChuWzBdKX1wYXJzZSgpe2xldCBlPXguZG9jeGFyY2hpdmVfcGFyc2UodGhpcy5fX3diZ19wdHIpO2lmKGVbM10pdGhyb3cgaChlWzJdKTt2YXIgdD1vKGVbMF0sZVsxXSkuc2xpY2UoKTtyZXR1cm4geC5fX3diaW5kZ2VuX2ZyZWUoZVswXSxlWzFdKjEsMSksdH1wdWxsX2RvY3VtZW50X2NodW5rKGUsdCxuLHIpe2xldCBpPXguZG9jeGFyY2hpdmVfcHVsbF9kb2N1bWVudF9jaHVuayh0aGlzLl9fd2JnX3B0cixlLHQsbixyKTtpZihpWzNdKXRocm93IGgoaVsyXSk7dmFyIGE9byhpWzBdLGlbMV0pLnNsaWNlKCk7cmV0dXJuIHguX193YmluZGdlbl9mcmVlKGlbMF0saVsxXSoxLDEpLGF9cmVzb3VyY2VfdXNhZ2UoKXtsZXQgZT14LmRvY3hhcmNoaXZlX3Jlc291cmNlX3VzYWdlKHRoaXMuX193YmdfcHRyKTtpZihlWzNdKXRocm93IGgoZVsyXSk7dmFyIHQ9byhlWzBdLGVbMV0pLnNsaWNlKCk7cmV0dXJuIHguX193YmluZGdlbl9mcmVlKGVbMF0sZVsxXSoxLDEpLHR9dG9fbWFya2Rvd24oKXtsZXQgZSx0O3RyeXtsZXQgaT14LmRvY3hhcmNoaXZlX3RvX21hcmtkb3duKHRoaXMuX193YmdfcHRyKTt2YXIgbj1pWzBdLHI9aVsxXTtpZihpWzNdKXRocm93IG49MCxyPTAsaChpWzJdKTtyZXR1cm4gZT1uLHQ9cixsKG4scil9ZmluYWxseXt4Ll9fd2JpbmRnZW5fZnJlZShlLHQsMSl9fX07U3ltYm9sLmRpc3Bvc2UmJihyLnByb3RvdHlwZVtTeW1ib2wuZGlzcG9zZV09ci5wcm90b3R5cGUuZnJlZSk7ZnVuY3Rpb24gaSgpe3JldHVybntfX3Byb3RvX186bnVsbCwiLi9kb2N4X3BhcnNlcl9iZy5qcyI6e19fcHJvdG9fXzpudWxsLF9fd2JnX19fd2JpbmRnZW5fdGhyb3dfNmI2NDQ0OWI5YjllZDMzYzpmdW5jdGlvbihlLHQpe3Rocm93IEVycm9yKGwoZSx0KSl9LF9fd2JnX2Vycm9yX2E2ZmEyMDJiNThhYTFjZDM6ZnVuY3Rpb24oZSx0KXtsZXQgbixyO3RyeXtuPWUscj10LGNvbnNvbGUuZXJyb3IobChlLHQpKX1maW5hbGx5e3guX193YmluZGdlbl9mcmVlKG4sciwxKX19LF9fd2JnX25ld18yMjdkN2MwNTQxNGViODYxOmZ1bmN0aW9uKCl7cmV0dXJuIEVycm9yKCl9LF9fd2JnX3N0YWNrXzNiMGQ5NzRiYmYzMWU0NGY6ZnVuY3Rpb24oZSx0KXtsZXQgbj10LnN0YWNrLHI9bShuLHguX193YmluZGdlbl9tYWxsb2MseC5fX3diaW5kZ2VuX3JlYWxsb2MpLGk9YjtjKCkuc2V0SW50MzIoZSs0LGksITApLGMoKS5zZXRJbnQzMihlKzAsciwhMCl9LF9fd2JpbmRnZW5fY2FzdF8wMDAwMDAwMDAwMDAwMDAxOmZ1bmN0aW9uKGUsdCl7cmV0dXJuIGwoZSx0KX0sX193YmluZGdlbl9pbml0X2V4dGVybnJlZl90YWJsZTpmdW5jdGlvbigpe2xldCBlPXguX193YmluZGdlbl9leHRlcm5yZWZzLHQ9ZS5ncm93KDQpO2Uuc2V0KDAsdm9pZCAwKSxlLnNldCh0KzAsdm9pZCAwKSxlLnNldCh0KzEsbnVsbCksZS5zZXQodCsyLCEwKSxlLnNldCh0KzMsITEpfX19fWNvbnN0IGE9dHlwZW9mIEZpbmFsaXphdGlvblJlZ2lzdHJ5PmB1YD97cmVnaXN0ZXI6KCk9Pnt9LHVucmVnaXN0ZXI6KCk9Pnt9fTpuZXcgRmluYWxpemF0aW9uUmVnaXN0cnkoZT0+eC5fX3diZ19kb2N4YXJjaGl2ZV9mcmVlKGU+Pj4wLDEpKTtmdW5jdGlvbiBvKGUsdCl7cmV0dXJuIGU+Pj49MCxkKCkuc3ViYXJyYXkoZS8xLGUvMSt0KX1sZXQgcz1udWxsO2Z1bmN0aW9uIGMoKXtyZXR1cm4ocz09PW51bGx8fHMuYnVmZmVyLmRldGFjaGVkPT09ITB8fHMuYnVmZmVyLmRldGFjaGVkPT09dm9pZCAwJiZzLmJ1ZmZlciE9PXgubWVtb3J5LmJ1ZmZlcikmJihzPW5ldyBEYXRhVmlldyh4Lm1lbW9yeS5idWZmZXIpKSxzfWZ1bmN0aW9uIGwoZSx0KXtyZXR1cm4gZT4+Pj0wLHYoZSx0KX1sZXQgdT1udWxsO2Z1bmN0aW9uIGQoKXtyZXR1cm4odT09PW51bGx8fHUuYnl0ZUxlbmd0aD09PTApJiYodT1uZXcgVWludDhBcnJheSh4Lm1lbW9yeS5idWZmZXIpKSx1fWZ1bmN0aW9uIGYoZSl7cmV0dXJuIGU9PW51bGx9ZnVuY3Rpb24gcChlLHQpe2xldCBuPXQoZS5sZW5ndGgqMSwxKT4+PjA7cmV0dXJuIGQoKS5zZXQoZSxuLzEpLGI9ZS5sZW5ndGgsbn1mdW5jdGlvbiBtKGUsdCxuKXtpZihuPT09dm9pZCAwKXtsZXQgbj15LmVuY29kZShlKSxyPXQobi5sZW5ndGgsMSk+Pj4wO3JldHVybiBkKCkuc3ViYXJyYXkocixyK24ubGVuZ3RoKS5zZXQobiksYj1uLmxlbmd0aCxyfWxldCByPWUubGVuZ3RoLGk9dChyLDEpPj4+MCxhPWQoKSxvPTA7Zm9yKDtvPHI7bysrKXtsZXQgdD1lLmNoYXJDb2RlQXQobyk7aWYodD4xMjcpYnJlYWs7YVtpK29dPXR9aWYobyE9PXIpe28hPT0wJiYoZT1lLnNsaWNlKG8pKSxpPW4oaSxyLHI9bytlLmxlbmd0aCozLDEpPj4+MDtsZXQgdD1kKCkuc3ViYXJyYXkoaStvLGkrciksYT15LmVuY29kZUludG8oZSx0KTtvKz1hLndyaXR0ZW4saT1uKGkscixvLDEpPj4+MH1yZXR1cm4gYj1vLGl9ZnVuY3Rpb24gaChlKXtsZXQgdD14Ll9fd2JpbmRnZW5fZXh0ZXJucmVmcy5nZXQoZSk7cmV0dXJuIHguX19leHRlcm5yZWZfdGFibGVfZGVhbGxvYyhlKSx0fWxldCBnPW5ldyBUZXh0RGVjb2RlcihgdXRmLThgLHtpZ25vcmVCT006ITAsZmF0YWw6ITB9KTtnLmRlY29kZSgpO2xldCBfPTA7ZnVuY3Rpb24gdihlLHQpe3JldHVybiBfKz10LF8+PTIxNDY0MzUwNzImJihnPW5ldyBUZXh0RGVjb2RlcihgdXRmLThgLHtpZ25vcmVCT006ITAsZmF0YWw6ITB9KSxnLmRlY29kZSgpLF89dCksZy5kZWNvZGUoZCgpLnN1YmFycmF5KGUsZSt0KSl9Y29uc3QgeT1uZXcgVGV4dEVuY29kZXI7YGVuY29kZUludG9gaW4geXx8KHkuZW5jb2RlSW50bz1mdW5jdGlvbihlLHQpe2xldCBuPXkuZW5jb2RlKGUpO3JldHVybiB0LnNldChuKSx7cmVhZDplLmxlbmd0aCx3cml0dGVuOm4ubGVuZ3RofX0pO2xldCBiPTAseDtmdW5jdGlvbiBTKGUsdCl7cmV0dXJuIHg9ZS5leHBvcnRzLHM9bnVsbCx1PW51bGwseC5fX3diaW5kZ2VuX3N0YXJ0KCkseH1hc3luYyBmdW5jdGlvbiBDKGUsdCl7aWYodHlwZW9mIFJlc3BvbnNlPT1gZnVuY3Rpb25gJiZlIGluc3RhbmNlb2YgUmVzcG9uc2Upe2lmKHR5cGVvZiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZz09YGZ1bmN0aW9uYCl0cnl7cmV0dXJuIGF3YWl0IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlU3RyZWFtaW5nKGUsdCl9Y2F0Y2godCl7aWYoZS5vayYmbihlLnR5cGUpJiZlLmhlYWRlcnMuZ2V0KGBDb250ZW50LVR5cGVgKSE9PWBhcHBsaWNhdGlvbi93YXNtYCljb25zb2xlLndhcm4oImBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZ2AgZmFpbGVkIGJlY2F1c2UgeW91ciBzZXJ2ZXIgZG9lcyBub3Qgc2VydmUgV2FzbSB3aXRoIGBhcHBsaWNhdGlvbi93YXNtYCBNSU1FIHR5cGUuIEZhbGxpbmcgYmFjayB0byBgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVgIHdoaWNoIGlzIHNsb3dlci4gT3JpZ2luYWwgZXJyb3I6XG4iLHQpO2Vsc2UgdGhyb3cgdH1sZXQgcj1hd2FpdCBlLmFycmF5QnVmZmVyKCk7cmV0dXJuIGF3YWl0IFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKHIsdCl9ZWxzZXtsZXQgbj1hd2FpdCBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZShlLHQpO3JldHVybiBuIGluc3RhbmNlb2YgV2ViQXNzZW1ibHkuSW5zdGFuY2U/e2luc3RhbmNlOm4sbW9kdWxlOmV9Om59ZnVuY3Rpb24gbihlKXtzd2l0Y2goZSl7Y2FzZWBiYXNpY2A6Y2FzZWBjb3JzYDpjYXNlYGRlZmF1bHRgOnJldHVybiEwfXJldHVybiExfX1hc3luYyBmdW5jdGlvbiB3KGUpe2lmKHghPT12b2lkIDApcmV0dXJuIHg7ZSE9PXZvaWQgMCYmKE9iamVjdC5nZXRQcm90b3R5cGVPZihlKT09PU9iamVjdC5wcm90b3R5cGU/e21vZHVsZV9vcl9wYXRoOmV9PWU6Y29uc29sZS53YXJuKGB1c2luZyBkZXByZWNhdGVkIHBhcmFtZXRlcnMgZm9yIHRoZSBpbml0aWFsaXphdGlvbiBmdW5jdGlvbjsgcGFzcyBhIHNpbmdsZSBvYmplY3QgaW5zdGVhZGApKTtsZXQgdD1pKCk7KHR5cGVvZiBlPT1gc3RyaW5nYHx8dHlwZW9mIFJlcXVlc3Q9PWBmdW5jdGlvbmAmJmUgaW5zdGFuY2VvZiBSZXF1ZXN0fHx0eXBlb2YgVVJMPT1gZnVuY3Rpb25gJiZlIGluc3RhbmNlb2YgVVJMKSYmKGU9ZmV0Y2goZSkpO2xldHtpbnN0YW5jZTpuLG1vZHVsZTpyfT1hd2FpdCBDKGF3YWl0IGUsdCk7cmV0dXJuIFMobixyKX1hc3luYyBmdW5jdGlvbiBUKGUpe3JldHVybiB4PXZvaWQgMCxzPW51bGwsdT1udWxsLHcoZSl9dmFyIEU9Y2xhc3MgZSBleHRlbmRzIEVycm9ye2NvZGU7Y29uc3RydWN0b3IodCxuKXtzdXBlcihuKSx0aGlzLm5hbWU9YE9veG1sRXJyb3JgLHRoaXMuY29kZT10LE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLGUucHJvdG90eXBlKX19LEQ9Y2xhc3MgZSBleHRlbmRzIEVycm9ye2NvZGU9YG9veG1sLXJlc291cmNlLWxpbWl0YDtkZXRhaWxzO2NvbnN0cnVjdG9yKHQsbil7c3VwZXIodCksdGhpcy5uYW1lPWBPb3htbFJlc291cmNlTGltaXRFcnJvcmA7bGV0IHI9bi52aW9sYXRpb24saT1PYmplY3QuZnJlZXplKHtmb3JtYXQ6ci5mb3JtYXQsb3BlcmF0aW9uOnIub3BlcmF0aW9uLHJlc291cmNlOnIucmVzb3VyY2UsbWV0cmljOnIubWV0cmljLC4uLnIucGFydD09PXZvaWQgMD97fTp7cGFydDpyLnBhcnR9LGxpbWl0OnIubGltaXQsb2JzZXJ2ZWQ6ci5vYnNlcnZlZCxjb25maWd1cmFibGU6ci5jb25maWd1cmFibGUsdXNhZ2U6T2JqZWN0LmZyZWV6ZSh7YXJjaGl2ZUVudHJ5Q291bnQ6ci51c2FnZS5hcmNoaXZlRW50cnlDb3VudCxkZWNsYXJlZEluZmxhdGVkQnl0ZXM6ci51c2FnZS5kZWNsYXJlZEluZmxhdGVkQnl0ZXMsLi4uci51c2FnZS5sYXJnZXN0SW5mbGF0ZWRFbnRyeUJ5dGVzPT09dm9pZCAwP3t9OntsYXJnZXN0SW5mbGF0ZWRFbnRyeUJ5dGVzOnIudXNhZ2UubGFyZ2VzdEluZmxhdGVkRW50cnlCeXRlc30sZGlzdGluY3RJbmZsYXRlZEJ5dGVzOnIudXNhZ2UuZGlzdGluY3RJbmZsYXRlZEJ5dGVzLG9wZXJhdGlvbkluZmxhdGVkQnl0ZXM6ci51c2FnZS5vcGVyYXRpb25JbmZsYXRlZEJ5dGVzfSl9KTt0aGlzLmRldGFpbHM9T2JqZWN0LmZyZWV6ZSh7c3RhZ2U6bi5zdGFnZSx2aW9sYXRpb246aX0pLE9iamVjdC5zZXRQcm90b3R5cGVPZih0aGlzLGUucHJvdG90eXBlKX19O2NvbnN0IE89bmV3IE1hcDtmdW5jdGlvbiBrKGUsdCxuKXtsZXQgcj1PLmdldChlKSxpPXI/LmdldCh0KTtpZihpKXJldHVybiBpLnJlZnMrKyx7ZmFjZTppLmZhY2UsaXNOZXc6ITF9O2xldCBhPW4oKSxvPXI/P25ldyBNYXA7cmV0dXJuIG8uc2V0KHQse2ZhY2U6YSxzZXQ6dCxyZWZzOjF9KSxPLnNldChlLG8pLHtmYWNlOmEsaXNOZXc6ITB9fWZ1bmN0aW9uIEEoZSl7bGV0IHQ9bmV3IFNldDtmb3IobGV0IG4gb2YgZSlpZighdC5oYXMobikpe3QuYWRkKG4pO2ZvcihsZXRbZSx0XW9mIE8pe2xldCByPSExO2ZvcihsZXRbaSxhXW9mIHQpaWYoYS5mYWNlPT09bil7aWYocj0hMCxhLnJlZnMtLSxhLnJlZnM8PTApe3RyeXthLnNldC5kZWxldGUobil9Y2F0Y2h7fXQuZGVsZXRlKGkpLHQuc2l6ZT09PTAmJk8uZGVsZXRlKGUpfWJyZWFrfWlmKHIpYnJlYWt9fX1mdW5jdGlvbiBqKGUpe3JldHVybiBQcm9taXNlLnJhY2UoW2UsbmV3IFByb21pc2UoZT0+c2V0VGltZW91dChlLDE1ZTMpKV0pfWNvbnN0IE09bmV3IE1hcDtmdW5jdGlvbiBOKGUpe2xldCB0PVtdLG49L0Bmb250LWZhY2VccypceyhbXn1dKilcfS9nLHI7Zm9yKDtyPW4uZXhlYyhlKTspe2xldCBlPXJbMV0sbj10PT5lLm1hdGNoKFJlZ0V4cChgKD86Xnw7fFxcbilcXHMqJHt0fVxccyo6XFxzKihbXjtdKylgLGBpYCkpPy5bMV0udHJpbSgpLGk9bihgZm9udC1mYW1pbHlgKSxhPW4oYHNyY2ApO2lmKCFpfHwhYSljb250aW51ZTtsZXQgbz17fSxzPW4oYGZvbnQtc3R5bGVgKTtzJiYoby5zdHlsZT1zKTtsZXQgYz1uKGBmb250LXdlaWdodGApO2MmJihvLndlaWdodD1jKTtsZXQgbD1uKGBmb250LXN0cmV0Y2hgKTtsJiYoby5zdHJldGNoPWwpO2xldCB1PW4oYHVuaWNvZGUtcmFuZ2VgKTt1JiYoby51bmljb2RlUmFuZ2U9dSksdC5wdXNoKHtmYW1pbHk6aS5yZXBsYWNlKC9eWyciXXxbJyJdJC9nLGBgKSxzcmM6YSxkZXNjcmlwdG9yczpvfSl9cmV0dXJuIHR9ZnVuY3Rpb24gUCgpe3JldHVybiB0eXBlb2YgZG9jdW1lbnQ8YHVgJiZkb2N1bWVudCYmZG9jdW1lbnQuZm9udHM/ZG9jdW1lbnQuZm9udHM6dHlwZW9mIHNlbGY8YHVgJiZzZWxmJiZgZm9udHNgaW4gc2VsZj9zZWxmLmZvbnRzOm51bGx9ZnVuY3Rpb24gRihlLHQpe2xldCBuPXQuZGVzY3JpcHRvcnM7cmV0dXJuW2BnZm9udHNgLGUsdC5mYW1pbHkudG9Mb3dlckNhc2UoKSxuLnN0eWxlPz9gYCxuLndlaWdodD8/YGAsbi5zdHJldGNoPz9gYCxuLnVuaWNvZGVSYW5nZT8/YGAsdC5zcmNdLmpvaW4oYHxgKX1hc3luYyBmdW5jdGlvbiBJKGUsdCxuPVAoKSl7bGV0IHI9bjtpZighcnx8dHlwZW9mIEZvbnRGYWNlPmB1YHx8dHlwZW9mIGZldGNoPmB1YClyZXR1cm5bXTtsZXQgaT1uZXcgU2V0LGE9bmV3IFNldCxvPW5ldyBTZXQscz1uZXcgTWFwLGM9bmV3IFNldDtmb3IobGV0IG4gb2YgZSl7aWYoIW4pY29udGludWU7bGV0IGU9bi50b0xvd2VyQ2FzZSgpO2lmKGkuaGFzKGUpKWNvbnRpbnVlO2kuYWRkKGUpO2xldCByPXRbZV07aWYoIXIpY29udGludWU7by5hZGQoci51cmwpO2xldCBjPShyLmxvYWRGYW1pbHk/P24pLnRvTG93ZXJDYXNlKCk7YS5hZGQoYyk7bGV0IGw9cy5nZXQoci51cmwpO2x8fChsPW5ldyBTZXQscy5zZXQoci51cmwsbCkpLGwuYWRkKGMpfWlmKGEuc2l6ZT09PTApcmV0dXJuW107bGV0IGw9YXdhaXQgaihQcm9taXNlLmFsbChbLi4ub10ubWFwKGFzeW5jIGU9PntsZXQgdD1NLmdldChlKTtpZih0KXJldHVybnt1cmw6ZSxydWxlczphd2FpdCB0fTtsZXQgbj0oYXN5bmMoKT0+e3RyeXtsZXQgdD1hd2FpdCBmZXRjaChlKTtpZighdC5vayl0aHJvdyBFcnJvcihgSFRUUCAke3Quc3RhdHVzfWApO3JldHVybiBOKGF3YWl0IHQudGV4dCgpKX1jYXRjaHtNLmRlbGV0ZShlKTtmb3IobGV0IHQgb2Ygcy5nZXQoZSk/P1tdKWMuYWRkKHQpO3JldHVybltdfX0pKCk7cmV0dXJuIE0uc2V0KGUsbikse3VybDplLHJ1bGVzOmF3YWl0IG59fSkpKSx1PVtdLGQ9W107Zm9yKGxldCBlIG9mIEFycmF5LmlzQXJyYXkobCk/bDpbXSlmb3IobGV0IHQgb2YgZS5ydWxlcyl7bGV0e2ZhY2U6bixpc05ldzppfT1rKEYoZS51cmwsdCksciwoKT0+e2xldCBlPW5ldyBGb250RmFjZSh0LmZhbWlseSx0LnNyYyx0LmRlc2NyaXB0b3JzKTtyZXR1cm4gci5hZGQoZSksZX0pO3UucHVzaChuKSxpJiZkLnB1c2gobil9cmV0dXJuIGQubGVuZ3RoPjAmJmF3YWl0IGooUHJvbWlzZS5hbGxTZXR0bGVkKGQubWFwKGU9PmUubG9hZCgpKSkudGhlbihlPT4oZS5mb3JFYWNoKChlLHQpPT57ZS5zdGF0dXM9PT1gcmVqZWN0ZWRgJiZjLmFkZChkW3RdLmZhbWlseS5yZXBsYWNlKC9bJyJdL2csYGApLnRvTG93ZXJDYXNlKCkpfSksci5yZWFkeSkpKSxjLnNpemU+MCYmY29uc29sZS53YXJuKGBbb294bWxdIGZhaWxlZCB0byBwcmVsb2FkIHdlYiBmb250KHMpOiAke1suLi5jXS5qb2luKGAsIGApfTsgZmFsbGluZyBiYWNrIHRvIHN5c3RlbSBmb250cyAodGV4dCBtYXkgc2hpZnQgb3IgZGlmZmVyKS5gKSx1fWZ1bmN0aW9uIEwoZSx0KXtsZXQgbj1SKHQpLHI9ZS5zbGljZSgpLGk9TWF0aC5taW4oMzIsci5sZW5ndGgpO2ZvcihsZXQgZT0wO2U8aTtlKyspcltlXV49bltlJTE2XTtyZXR1cm4gcn1mdW5jdGlvbiBSKGUpe2xldCB0PWUucmVwbGFjZSgvW3t9XC1cc10vZyxgYCk7aWYodC5sZW5ndGghPT0zMnx8L1teMC05YS1mQS1GXS8udGVzdCh0KSl0aHJvdyBFcnJvcihgaW52YWxpZCBmb250S2V5IEdVSUQ6ICR7ZX1gKTtsZXQgbj1uZXcgVWludDhBcnJheSgxNik7Zm9yKGxldCBlPTA7ZTwxNjtlKyspbltlXT1wYXJzZUludCh0LnNsaWNlKGUqMixlKjIrMiksMTYpO3JldHVybiBuLnJldmVyc2UoKX1mdW5jdGlvbiB6KGUsdCxuLHIpe2xldCBpPTIxNjYxMzYyNjE7Zm9yKGxldCBlPTA7ZTxyLmxlbmd0aDtlKyspaV49cltlXSxpPU1hdGguaW11bChpLDE2Nzc3NjE5KTtyZXR1cm5gJHtlfXwke3R9fCR7bn18JHtyLmxlbmd0aH18JHsoaT4+PjApLnRvU3RyaW5nKDE2KX1gfWFzeW5jIGZ1bmN0aW9uIGVlKGUsdD0zMCoxMDI0KjEwMjQpe2xldCBuPVAoKTtpZighbnx8dHlwZW9mIEZvbnRGYWNlPmB1YClyZXR1cm5bXTtsZXQgcj1bXSxpPVtdLGE9W107Zm9yKGxldCBvIG9mIGUpdHJ5e2lmKG8uYnl0ZXMubGVuZ3RoPT09MHx8by5ieXRlcy5sZW5ndGg+dCl7YS5wdXNoKG8uZmFtaWx5KTtjb250aW51ZX1sZXQgZT1vLm9kdHRmP0woby5ieXRlcyxvLmZvbnRLZXk/P2BgKTpvLmJ5dGVzLHtmYWNlOnMsaXNOZXc6Y309ayhgZW1iZWRkZWQ6JHt6KG8uZmFtaWx5LG8ud2VpZ2h0LG8uc3R5bGUsZSl9YCxuLCgpPT57bGV0IHQ9ZS5idWZmZXIuc2xpY2UoZS5ieXRlT2Zmc2V0LGUuYnl0ZU9mZnNldCtlLmJ5dGVMZW5ndGgpLHI9bmV3IEZvbnRGYWNlKG8uZmFtaWx5LHQse3dlaWdodDpvLndlaWdodCxzdHlsZTpvLnN0eWxlfSk7cmV0dXJuIG4uYWRkKHIpLHJ9KTtyLnB1c2gocyksYyYmaS5wdXNoKHMpfWNhdGNoe2EucHVzaChvLmZhbWlseSl9cmV0dXJuIGkubGVuZ3RoPjAmJmF3YWl0IGooUHJvbWlzZS5hbGxTZXR0bGVkKGkubWFwKGU9PmUubG9hZCgpKSkudGhlbihlPT4oZS5mb3JFYWNoKChlLHQpPT57ZS5zdGF0dXM9PT1gcmVqZWN0ZWRgJiZhLnB1c2goaVt0XS5mYW1pbHkpfSksbi5yZWFkeSkpKSxhLmxlbmd0aD4wJiZjb25zb2xlLndhcm4oYFtvb3htbF0gZmFpbGVkIHRvIHJlZ2lzdGVyIGVtYmVkZGVkIGZvbnQocyk6ICR7Wy4uLm5ldyBTZXQoYSldLmpvaW4oYCwgYCl9OyBmYWxsaW5nIGJhY2sgdG8gc3Vic3RpdHV0ZSBmb250cyAodGV4dCBtYXkgc2hpZnQgb3IgZGlmZmVyKS5gKSxyfWNvbnN0IEI9YGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Tm90bytOYXNraCtBcmFiaWM6d2dodEA0MDA7NzAwJmRpc3BsYXk9c3dhcGAsVj1gaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1Ob3RvK1NhbnMrQXJhYmljOndnaHRANDAwOzcwMCZkaXNwbGF5PXN3YXBgLEg9YGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9TGlicmUrRnJhbmtsaW46aXRhbCx3Z2h0QDAsNDAwOzAsNjAwOzAsNzAwOzEsNDAwOzEsNjAwOzEsNzAwJmRpc3BsYXk9c3dhcGAsVT17Y2FsaWJyaTp7dXJsOmBodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUNhcmxpdG86aXRhbCx3Z2h0QDAsNDAwOzAsNzAwOzEsNDAwOzEsNzAwJmRpc3BsYXk9c3dhcGAsbG9hZEZhbWlseTpgQ2FybGl0b2B9LCJjYWxpYnJpIGxpZ2h0Ijp7dXJsOmBodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUNhcmxpdG86aXRhbCx3Z2h0QDAsNDAwOzAsNzAwOzEsNDAwOzEsNzAwJmRpc3BsYXk9c3dhcGAsbG9hZEZhbWlseTpgQ2FybGl0b2B9LGNhbWJyaWE6e3VybDpgaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1DYWxhZGVhOml0YWwsd2dodEAwLDQwMDswLDcwMDsxLDQwMDsxLDcwMCZkaXNwbGF5PXN3YXBgLGxvYWRGYW1pbHk6YENhbGFkZWFgfSwiY2FtYnJpYSBtYXRoIjp7dXJsOmBodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PUNhbGFkZWE6aXRhbCx3Z2h0QDAsNDAwOzAsNzAwOzEsNDAwOzEsNzAwJmRpc3BsYXk9c3dhcGAsbG9hZEZhbWlseTpgQ2FsYWRlYWB9LCJmcmFua2xpbiBnb3RoaWMgYm9vayI6e3VybDpILGxvYWRGYW1pbHk6YExpYnJlIEZyYW5rbGluYH0sImZyYW5rbGluIGdvdGhpYyBtZWRpdW0iOnt1cmw6SCxsb2FkRmFtaWx5OmBMaWJyZSBGcmFua2xpbmB9LCJudW5pdG8gc2FucyI6e3VybDpgaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1OdW5pdG8rU2FuczppdGFsLHdnaHRAMCw0MDA7MCw3MDA7MSw0MDA7MSw3MDAmZGlzcGxheT1zd2FwYH0sbnVuaXRvOnt1cmw6YGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9TnVuaXRvOml0YWwsd2dodEAwLDQwMDswLDcwMDsxLDQwMDsxLDcwMCZkaXNwbGF5PXN3YXBgfSwib3BlbiBzYW5zIjp7dXJsOmBodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PU9wZW4rU2FuczppdGFsLHdnaHRAMCw0MDA7MCw3MDA7MSw0MDA7MSw3MDAmZGlzcGxheT1zd2FwYH0scm9ib3RvOnt1cmw6YGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9Um9ib3RvOml0YWwsd2dodEAwLDQwMDswLDcwMDsxLDQwMDsxLDcwMCZkaXNwbGF5PXN3YXBgfSxsYXRvOnt1cmw6YGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9TGF0bzppdGFsLHdnaHRAMCw0MDA7MCw3MDA7MSw0MDA7MSw3MDAmZGlzcGxheT1zd2FwYH0sbW9udHNlcnJhdDp7dXJsOmBodHRwczovL2ZvbnRzLmdvb2dsZWFwaXMuY29tL2NzczI/ZmFtaWx5PU1vbnRzZXJyYXQ6aXRhbCx3Z2h0QDAsNDAwOzAsNzAwOzEsNDAwOzEsNzAwJmRpc3BsYXk9c3dhcGB9LHBvcHBpbnM6e3VybDpgaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT1Qb3BwaW5zOml0YWwsd2dodEAwLDQwMDswLDcwMDsxLDQwMDsxLDcwMCZkaXNwbGF5PXN3YXBgfSxyYWxld2F5Ont1cmw6YGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9UmFsZXdheTppdGFsLHdnaHRAMCw0MDA7MCw3MDA7MSw0MDA7MSw3MDAmZGlzcGxheT1zd2FwYH0sInBsYXlmYWlyIGRpc3BsYXkiOnt1cmw6YGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9UGxheWZhaXIrRGlzcGxheTppdGFsLHdnaHRAMCw0MDA7MCw3MDA7MSw0MDA7MSw3MDAmZGlzcGxheT1zd2FwYH0sdWJ1bnR1Ont1cmw6YGh0dHBzOi8vZm9udHMuZ29vZ2xlYXBpcy5jb20vY3NzMj9mYW1pbHk9VWJ1bnR1Oml0YWwsd2dodEAwLDQwMDswLDcwMDsxLDQwMDsxLDcwMCZkaXNwbGF5PXN3YXBgfSwic2Fra2FsIG1hamFsbGEiOnt1cmw6Qixsb2FkRmFtaWx5OmBOb3RvIE5hc2toIEFyYWJpY2B9LCJ0cmFkaXRpb25hbCBhcmFiaWMiOnt1cmw6Qixsb2FkRmFtaWx5OmBOb3RvIE5hc2toIEFyYWJpY2B9LCJzaW1wbGlmaWVkIGFyYWJpYyI6e3VybDpCLGxvYWRGYW1pbHk6YE5vdG8gTmFza2ggQXJhYmljYH0sImFyYWJpYyB0eXBlc2V0dGluZyI6e3VybDpCLGxvYWRGYW1pbHk6YE5vdG8gTmFza2ggQXJhYmljYH0sInVuaXZlcnMgbmV4dCBhcmFiaWMiOnt1cmw6Vixsb2FkRmFtaWx5OmBOb3RvIFNhbnMgQXJhYmljYH0sIm5vdG8gbmFza2ggYXJhYmljIjp7dXJsOkIsbG9hZEZhbWlseTpgTm90byBOYXNraCBBcmFiaWNgfSwibm90byBzYW5zIGFyYWJpYyI6e3VybDpWLGxvYWRGYW1pbHk6YE5vdG8gU2FucyBBcmFiaWNgfX07ZnVuY3Rpb24gdGUoZSx0KXtsZXQgbj1lLnRyaW0oKTtpZighbil0aHJvdyBUeXBlRXJyb3IoYENhbnZhcyBmb250IHJvdXRlIHJlcXVpcmVzIGEgZmFtaWx5IGxpc3RgKTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7ZmFtaWx5TGlzdDpuLHNjb3BlOnQsZmluZ2VycHJpbnQ6YGNhbnZhcy1mb250LXJvdXRlLXYxOiR7ZW5jb2RlVVJJQ29tcG9uZW50KHQpfToke2VuY29kZVVSSUNvbXBvbmVudChuKX1gfSl9ZnVuY3Rpb24gVyhlLHQsbixyKXtpZighTnVtYmVyLmlzRmluaXRlKHQpfHx0PDApdGhyb3cgUmFuZ2VFcnJvcihgQ2FudmFzIGZvbnQgc2l6ZSBtdXN0IGJlIGZpbml0ZSBhbmQgbm9uLW5lZ2F0aXZlYCk7aWYoIU51bWJlci5pc0Zpbml0ZShuKXx8bjwxfHxuPjFlMyl0aHJvdyBSYW5nZUVycm9yKGBDYW52YXMgZm9udCB3ZWlnaHQgbXVzdCBiZSBmaW5pdGUgYW5kIGJldHdlZW4gMSBhbmQgMTAwMGApO2lmKCFlLmZhbWlseUxpc3QudHJpbSgpKXRocm93IFR5cGVFcnJvcihgQ2FudmFzIGZvbnQgcm91dGUgcmVxdWlyZXMgYSBmYW1pbHkgbGlzdGApO3JldHVybmAke3J9ICR7bn0gJHt0fXB4ICR7ZS5mYW1pbHlMaXN0fWB9ZnVuY3Rpb24gbmUoZSl7aWYoIWUpcmV0dXJuIG51bGw7bGV0IHQ9ZS50b0xvd2VyQ2FzZSgpO3JldHVybi9b4YSALeGHv+OEsC3jho/qsIAt7Z6vXS8udGVzdChlKT9ga3JgOi9b44GALeODv10vLnRlc3QoZSk/YGpwYDovamhlbmdoZWl85b6u6Luf5q2j6buRfOaWsOe0sOaYjnzntLDmmI58cG1pbmdsaXV8bWluZ2xpdXxkZmthaXzmqJnmpbd86I+v5bq3fGNuczExNjQzfGthaXRpIHRjfG1pbmdccypsaXUvLnRlc3QodCl8fC/mlrDntLDmmI7pq5R857Sw5piO6auUfOaomealt+mrlHzlvq7ou5/mraPpu5Hpq5R86I+v5bq3Ly50ZXN0KGUpP2B0Y2A6L3NpbXN1bnxuc2ltc3VufHNpbWhlaXxzaW1rYWl8c2ltZmFuZ3x5YWhlaXxkZW5neGlhbnxmYW5nc29uZ3xrYWl0aXx5b3V5dWFufGxpc3V8c3Rzb25nfHN0a2FpdGl8c3RmYW5nc29uZ3xzdGhlaXRpfHN0eGloZWl8c3R6aG9uZ3Nvbmd8c29uZ3RpIHNjfGhlaXRpIHNjfOW+rui9r+mbhem7kS8udGVzdCh0KXx8L+Wui+S9k3zpu5HkvZN85qW35L2TfOS7v+Wui3znrYnnur985b6u6L2v6ZuF6buRfOmatuS5pnzlubzlnIYvLnRlc3QoZSk/YHNjYDovbWFsZ3VufGJhdGFuZ3xndWxpbXxkb3R1bXxndW5nc3VofG5hbnVtfG5ldyBndWxpbXxoYW5jb218aHkoZ290aGljfGdyYXBoaWN8bmFtdSk/Ly50ZXN0KHQpP2BrcmA6L1xibWVpcnlvXGJ8XGJ5dVxzKihnb3RoaWN8bWluY2hvKVxifHl1Z290aGljfHl1bWluY2hvfGhpcmFnaW5vfFxibXNccyooZ290aGljfG1pbmNob3xwZ290aGljfHBtaW5jaG98dWlccypnb3RoaWMpXGJ8XGJtc1twZ10/KGdvdGhpY3xtaW5jaG8pXGJ8aXBhKGV4KT8oZ290aGljfG1pbmNobyl8bm90b1xzKyhzYW5zfHNlcmlmKVxzK2pwfOa4uOOCtOOCt+ODg+OCr3zmuLjmmI7mnJ1877yt77yzfOODoeOCpOODquOCqnzjg5Ljg6njgq7jg44vLnRlc3QodCl8fC/muLjjgrTjgrfjg4Pjgq985ri45piO5pydfO+8re+8syDjgrTjgrfjg4Pjgq9877yt77yzIOaYjuacnXzvvK3vvLMg77yw44K044K344OD44KvfOODoeOCpOODquOCqnzjg5Ljg6njgq7jg44vLnRlc3QoZSk/YGpwYDpudWxsfWZ1bmN0aW9uIEcoZSl7aWYoIWUpcmV0dXJuYHNhbnNgO2xldCB0PWUudG9Mb3dlckNhc2UoKTtyZXR1cm4vbW9ub3xjb3VyaWVyfGNvbnNvbGFzfOetieW5hXxnb3RoaWNfbS8udGVzdCh0KT9gbW9ub2A6L3JvbWFufHRpbWVzfGNhbWJyaWF8Y2FsYWRlYXxnZW9yZ2lhfGdhcmFtb25kfGNlbnR1cnkoPyFccypnb3RoaWMpfHBhbGF0aW5vfGFudGlxdWF8ZGlkb3R8Ym9kb25pfHBsYXlmYWlyfHNvdXJjZSBzZXJpZnxub3RvIHNlcmlmfG1pblxzKmNob3zmmI7mnJ3kvZN85piO5pydfHNvbmd8c3VuZ3xzaW1zdW58bnNpbXN1bnxiYXRhbmd8Z3VuZ3N1aHxtaW5nXHMqbGl1fG1pbmdsaXV8cG1pbmdsaXV8ZmFuZ1xzKnNvbmd8ZmFuZ3Nvbmd8a2FpXHMqdGl8a2FpdGl8c2lta2FpfHNpbWZhbmd8c3Rzb25nfHN0a2FpdGl8c3RmYW5nc29uZ3xzdHpob25nc29uZ3zmlrDntLDmmI5857Sw5piOfOWui+S9k3zmpbfkvZN85qW36auUfOS7v+Wui3zmqJnmpbd85ri45piO5pydfO+8re+8syDmmI7mnJ18bXMgbWluY2hvfHl1IG1pbmNob3xoaXJhZ2lubyBtaW5jaG9844OS44Op44Ku44OO5piO5pydLy50ZXN0KHQpfHwv5paw57Sw5piO6auUfOe0sOaYjumrlHzlrovkvZN85piO5pydfOalt+S9k3zmpbfpq5R85Lu/5a6LfOaomealt+mrlHzmuLjmmI7mnJ1877yt77yzIOaYjuacnS8udGVzdChlKT9gc2VyaWZgOmBzYW5zYH1mdW5jdGlvbiBLKGUsdCl7bGV0IG49dD09PWBzZXJpZmA/YE5vdG8gU2VyaWZgOmBOb3RvIFNhbnNgLHI9e2pwOltganBgLGBzY2AsYHRjYCxga3JgXSxzYzpbYHNjYCxgdGNgLGBqcGAsYGtyYF0sdGM6W2B0Y2AsYHNjYCxganBgLGBrcmBdLGtyOltga3JgLGBqcGAsYHNjYCxgdGNgXX0saT17a3I6YEtSYCxzYzpgU0NgLHRjOmBUQ2AsanA6YEpQYH07cmV0dXJuIHJbZV0ubWFwKGU9PmAke259ICR7aVtlXX1gKX1jb25zdCBxPVtgTm90byBTYW5zYCxgTm90byBTYW5zIEhlYnJld2AsYE5vdG8gU2FucyBUaGFpYCxgTm90byBTYW5zIERldmFuYWdhcmlgXSxKPVtgTm90byBTZXJpZmAsYE5vdG8gU2VyaWYgSGVicmV3YF0sWT1lPT5gaHR0cHM6Ly9mb250cy5nb29nbGVhcGlzLmNvbS9jc3MyP2ZhbWlseT0ke2V9OndnaHRANDAwOzcwMCZkaXNwbGF5PXN3YXBgLHJlPXsibm90byBzYW5zIGtyIjp7dXJsOlkoYE5vdG8rU2FucytLUmApfSwibm90byBzYW5zIHNjIjp7dXJsOlkoYE5vdG8rU2FucytTQ2ApfSwibm90byBzYW5zIHRjIjp7dXJsOlkoYE5vdG8rU2FucytUQ2ApfSwibm90byBzYW5zIGpwIjp7dXJsOlkoYE5vdG8rU2FucytKUGApfSwibm90byBzZXJpZiBrciI6e3VybDpZKGBOb3RvK1NlcmlmK0tSYCl9LCJub3RvIHNlcmlmIHNjIjp7dXJsOlkoYE5vdG8rU2VyaWYrU0NgKX0sIm5vdG8gc2VyaWYgdGMiOnt1cmw6WShgTm90bytTZXJpZitUQ2ApfSwibm90byBzZXJpZiBqcCI6e3VybDpZKGBOb3RvK1NlcmlmK0pQYCl9LCJub3RvIHNhbnMiOnt1cmw6WShgTm90bytTYW5zYCl9LCJub3RvIHNlcmlmIjp7dXJsOlkoYE5vdG8rU2VyaWZgKX0sIm5vdG8gc2FucyBkZXZhbmFnYXJpIjp7dXJsOlkoYE5vdG8rU2FucytEZXZhbmFnYXJpYCl9LCJub3RvIHNhbnMgdGhhaSI6e3VybDpZKGBOb3RvK1NhbnMrVGhhaWApfSwibm90byBzYW5zIGhlYnJldyI6e3VybDpZKGBOb3RvK1NhbnMrSGVicmV3YCl9LCJub3RvIHNlcmlmIGhlYnJldyI6e3VybDpZKGBOb3RvK1NlcmlmK0hlYnJld2ApfX07dmFyIGllPWNsYXNzIGV7aGFzSGFuPSExO2hhc0hhbmd1bD0hMTtoYXNLYW5hPSExO2hhc0FyYWJpYz0hMTtoYXNUaGFpPSExO2hhc0hlYnJldz0hMTtoYXNEZXZhbmFnYXJpPSExO2hhc0N5ckdyZWVrPSExO2NvbnN0cnVjdG9yKGUpe3RoaXMuY2prTGFuZz1lfWNsb25lKCl7bGV0IHQ9bmV3IGUodGhpcy5jamtMYW5nKTtyZXR1cm4gdC5oYXNIYW49dGhpcy5oYXNIYW4sdC5oYXNIYW5ndWw9dGhpcy5oYXNIYW5ndWwsdC5oYXNLYW5hPXRoaXMuaGFzS2FuYSx0Lmhhc0FyYWJpYz10aGlzLmhhc0FyYWJpYyx0Lmhhc1RoYWk9dGhpcy5oYXNUaGFpLHQuaGFzSGVicmV3PXRoaXMuaGFzSGVicmV3LHQuaGFzRGV2YW5hZ2FyaT10aGlzLmhhc0RldmFuYWdhcmksdC5oYXNDeXJHcmVlaz10aGlzLmhhc0N5ckdyZWVrLHR9YWRkVGV4dChlKXtsZXQgdD0oKT0+dGhpcy5oYXNIYW4mJnRoaXMuaGFzSGFuZ3VsJiZ0aGlzLmhhc0thbmEmJnRoaXMuaGFzQXJhYmljJiZ0aGlzLmhhc1RoYWkmJnRoaXMuaGFzSGVicmV3JiZ0aGlzLmhhc0RldmFuYWdhcmkmJnRoaXMuaGFzQ3lyR3JlZWs7b3V0ZXI6Zm9yKGxldCBuIG9mIGUpaWYobilmb3IobGV0IGUgb2Ygbil7bGV0IG49ZS5jb2RlUG9pbnRBdCgwKTtpZihuIT09dm9pZCAwJiYhKG48PTU5MSkmJihuPj00MzUyJiZuPD00NjA3fHxuPj0xMjU5MiYmbjw9MTI2ODd8fG4+PTQ0MDMyJiZuPD01NTIxNT90aGlzLmhhc0hhbmd1bD0hMDpuPj0xMjM1MiYmbjw9MTI1NDM/dGhpcy5oYXNLYW5hPSEwOm4+PTEzMzEyJiZuPD0xOTkwM3x8bj49MTk5NjgmJm48PTQwOTU5fHxuPj02Mzc0NCYmbjw9NjQyNTV8fG4+PTEzMTA3MiYmbjw9MTk1MTAzP3RoaXMuaGFzSGFuPSEwOm4+PTE1MzYmJm48PTE3OTF8fG4+PTE4NzImJm48PTE5MTl8fG4+PTIyMDgmJm48PTIzMDN8fG4+PTY0MzM2JiZuPD02NTAyM3x8bj49NjUxMzYmJm48PTY1Mjc5P3RoaXMuaGFzQXJhYmljPSEwOm4+PTM1ODQmJm48PTM3MTE/dGhpcy5oYXNUaGFpPSEwOm4+PTE0MjQmJm48PTE1MzV8fG4+PTY0Mjg1JiZuPD02NDMzNT90aGlzLmhhc0hlYnJldz0hMDpuPj0yMzA0JiZuPD0yNDMxP3RoaXMuaGFzRGV2YW5hZ2FyaT0hMDoobj49MTAyNCYmbjw9MTI3OXx8bj49ODgwJiZuPD0xMDIzKSYmKHRoaXMuaGFzQ3lyR3JlZWs9ITApLHQoKSkpYnJlYWsgb3V0ZXJ9fW5hbWVzKCl7bGV0IGU9W10sdD1uZXcgU2V0O3RoaXMuaGFzSGFuZ3VsJiZ0LmFkZChga3JgKSx0aGlzLmhhc0thbmEmJnQuYWRkKGBqcGApLHRoaXMuaGFzSGFuJiZ0LnNpemU9PT0wJiZ0LmFkZCh0aGlzLmNqa0xhbmc/P2BqcGApO2ZvcihsZXQgbiBvZltga3JgLGBzY2AsYHRjYCxganBgXSlpZih0LmhhcyhuKSl7bGV0IHQ9e2tyOmBLUmAsc2M6YFNDYCx0YzpgVENgLGpwOmBKUGB9W25dO2UucHVzaChgTm90byBTYW5zICR7dH1gLGBOb3RvIFNlcmlmICR7dH1gKX1yZXR1cm4gdGhpcy5oYXNDeXJHcmVlayYmZS5wdXNoKGBOb3RvIFNhbnNgLGBOb3RvIFNlcmlmYCksdGhpcy5oYXNBcmFiaWMmJmUucHVzaChgTm90byBOYXNraCBBcmFiaWNgLGBOb3RvIFNhbnMgQXJhYmljYCksdGhpcy5oYXNUaGFpJiZlLnB1c2goYE5vdG8gU2FucyBUaGFpYCksdGhpcy5oYXNIZWJyZXcmJmUucHVzaChgTm90byBTYW5zIEhlYnJld2AsYE5vdG8gU2VyaWYgSGVicmV3YCksdGhpcy5oYXNEZXZhbmFnYXJpJiZlLnB1c2goYE5vdG8gU2FucyBEZXZhbmFnYXJpYCksZX19O2Z1bmN0aW9uIGFlKGUsdCl7bGV0IG49bmV3IGllKHQpO3JldHVybiBuLmFkZFRleHQoZSksbi5uYW1lcygpfWNvbnN0IG9lPXsxNjc6YOKZo2AsMTY4OmDimaZgLDE2OTpg4pmlYCwxNzA6YOKZoGAsMTcxOmDihpRgLDE3Mjpg4oaQYCwxNzM6YOKGkWAsMTc0OmDihpJgLDE3NTpg4oaTYCwxODM6YOKAomAsMTg0OmDDt2AsMTg1OmDiiaBgLDE4MDpgw5dgLDE3NjpgwrBgLDE3NzpgwrFgLDE2Mzpg4omkYCwxNzk6YOKJpWB9LHNlPXszMzpg4pyPYCwzNDpg4pyCYCwzNjpg8J+Rk2AsNzQ6YOKYumAsNzU6YPCfmJBgLDc2OmDimLlgLDExODpg4p2WYCwxNjc6YOKWqmAsMTA4OmDil49gLDExMDpg4pagYCwxMTY6YOKXhmAsMTE5OmDil4ZgLDI1MTpg4pyXYCwyNTI6YOKck2AsMjUzOmDimJJgLDI1NDpg4piRYCwyMjM6YOKGkGAsMjI0OmDihpJgLDIyNTpg4oaRYCwyMjY6YOKGk2AsMjI3OmDihpZgLDIyODpg4oaXYCwyMjk6YOKGmWAsMjMwOmDihphgfTtmdW5jdGlvbiBjZShlKXtsZXQgdD17fTtmb3IobGV0IG4gb2YgT2JqZWN0LmtleXMoZSkpe2xldCByPU51bWJlcihuKTt0W3JdPWVbcl0sdFs2MTQ0MCtyXT1lW3JdfXJldHVybiB0fWNvbnN0IGxlPWNlKG9lKSx1ZT1jZShzZSk7ZnVuY3Rpb24gZGUoZSx0KXtpZighdClyZXR1cm4gZTtsZXQgbj10LnRyaW0oKS50b0xvd2VyQ2FzZSgpLHI9bj09PWB3aW5nZGluZ3NgP3VlOm49PT1gc3ltYm9sYD9sZTpudWxsO3JldHVybiByP3JbZS5jaGFyQ29kZUF0KDApXT8/ZTplfWZ1bmN0aW9uIGZlKGUpe2lmKCFlKXJldHVybiExO2xldCB0PWUudG9Mb3dlckNhc2UoKTtyZXR1cm4gdD09PWBzeW1ib2xgfHx0LmluY2x1ZGVzKGB3aW5nZGluZ3NgKX1mdW5jdGlvbiBwZShlLHQpe2lmKCFmZSh0KXx8ZS5sZW5ndGg9PT0wKXJldHVyblt7dGV4dDplLG1hcHBlZDohMX1dO2xldCBuPVtdLHI9YGAsaT1udWxsO2ZvcihsZXQgYSBvZiBlKXtsZXQgZT1kZShhLHQpLG89ZSE9PWE7aT09PW51bGx8fG89PT1pPyhpPW8scis9ZSk6KG4ucHVzaCh7dGV4dDpyLG1hcHBlZDppfSksaT1vLHI9ZSl9cmV0dXJuIHIubGVuZ3RoPjAmJm4ucHVzaCh7dGV4dDpyLG1hcHBlZDppPz8hMX0pLG59ZnVuY3Rpb24gbWUoZSx0LG4pe2xldCByPU1hdGgubWF4KDEsdCksaT1bXSxhPVtdLG89MDtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoO3QrKyl7bGV0IHM9TWF0aC5taW4ocixNYXRoLm1heCgwLGVbdF0pKSxjPWEubGVuZ3RoPT09MD9zOm8rbitzO2EubGVuZ3RoPjAmJmM+cj8oaS5wdXNoKGEpLGE9W3RdLG89cyk6KGEucHVzaCh0KSxvPWMpfXJldHVybiBhLmxlbmd0aD4wJiZpLnB1c2goYSksaX1mdW5jdGlvbiBoZShlLHQpe3JldHVybiB0eXBlb2YgZT09YG51bWJlcmAmJk51bWJlci5pc0Zpbml0ZShlKSYmZT49MTAwJiZlPD00ZTU/ZS8xMDAqdDpudWxsfWZ1bmN0aW9uIGdlKGUsdCxuKXtyZXR1cm4gaGUoZS50aXRsZUZvbnRTaXplSHB0LG4pPz9BZSpufWZ1bmN0aW9uIF9lKGUsdCxuLHIsaSl7aWYoIWUudGl0bGUmJiFlLnRpdGxlUHJlc2VudClyZXR1cm57Zm9udFB4OjAsdG9wUGFkOjAsYm90dG9tUGFkOjAsYmFuZEg6MH07bGV0IGE9Z2UoZSx0LG4pLG89YSt0KnIrdCppLHM9TWF0aC5taW4oTWF0aC5tYXgoMCxvLWEpLGEqamUpO3JldHVybntmb250UHg6YSx0b3BQYWQ6cyxib3R0b21QYWQ6by1hLXMsYmFuZEg6b319ZnVuY3Rpb24gdmUoZSx0LG4scixpKXtpZighZS5zaG93TGVnZW5kKXJldHVybiBudWxsO2xldCBhPWUubGVnZW5kUG9zPz9gcmAsbz1hPT09YGxgP2BsYDphPT09YHRgP2B0YDphPT09YGJgP2BiYDpgcmA7aWYobz09PWByYHx8bz09PWBsYCl7aWYoaSl7bGV0IGU9TWF0aC5taW4oODAsdCouMyksbj10Ki4zLHI9TWF0aC5tYXgoMCwuLi5pLml0ZW1XaWR0aHMpK2kuaG9yaXpvbnRhbFBhZGRpbmc7cmV0dXJue3NpZGU6byxyZXNlcnZlVzpNYXRoLm1pbihuLE1hdGgubWF4KGUscikpLHJlc2VydmVIOjB9fXJldHVybntzaWRlOm8scmVzZXJ2ZVc6TWF0aC5tYXgoODAsdCpyKSxyZXNlcnZlSDowfX1pZihpKXtsZXQgZT1NYXRoLm1heCgxLHQtaS5ob3Jpem9udGFsUGFkZGluZykscj1tZShpLml0ZW1XaWR0aHMsZSxpLml0ZW1HYXApLmxlbmd0aCppLnJvd0hlaWdodCtpLnZlcnRpY2FsUGFkZGluZztyZXR1cm57c2lkZTpvLHJlc2VydmVXOjAscmVzZXJ2ZUg6TWF0aC5taW4obiouMyxyKX19cmV0dXJue3NpZGU6byxyZXNlcnZlVzowLHJlc2VydmVIOk1hdGgubWF4KDE4LG4qLjA4KX19ZnVuY3Rpb24geWUoZSl7cmV0dXJue2xlZ1JpZ2h0VzplPy5zaWRlPT09YHJgP2UucmVzZXJ2ZVc6MCxsZWdMZWZ0VzplPy5zaWRlPT09YGxgP2UucmVzZXJ2ZVc6MCxsZWdUb3BIOmU/LnNpZGU9PT1gdGA/ZS5yZXNlcnZlSDowLGxlZ0JvdHRvbUg6ZT8uc2lkZT09PWBiYD9lLnJlc2VydmVIOjB9fWZ1bmN0aW9uIGJlKGUsdCl7cmV0dXJuIGhlKGUsdCk/PzEwKnR9ZnVuY3Rpb24geGUoZSx0LG4pe2xldCByPTAsaT0hMTtpZihuIT1udWxsKXN3aXRjaChpPSEwLG4pe2Nhc2VgaG9yemA6YnJlYWs7Y2FzZWB2ZXJ0MjcwYDpyLT05MDticmVhaztjYXNlYHZlcnRgOmNhc2Vgd29yZEFydFZlcnRgOmNhc2VgZWFWZXJ0YDpjYXNlYG1vbmdvbGlhblZlcnRgOmNhc2Vgd29yZEFydFZlcnRSdGxgOnIrPTkwO2JyZWFrfXJldHVybiB0IT1udWxsJiZOdW1iZXIuaXNGaW5pdGUodCkmJihyKz10LzZlNCxpPSEwKSxpP3IqTWF0aC5QSS8xODA6ZT09PWBsZWZ0YHx8ZT09PWByaWdodGA/LU1hdGguUEkvMjowfWZ1bmN0aW9uIFgoZSl7cmV0dXJuIE1hdGgubWF4KDgsZSouMDIpfWZ1bmN0aW9uIFNlKGUsdCxuLHIpe2xldCBpPWJlKGUuY2F0QXhpc1RpdGxlRm9udFNpemVIcHQsciksYT1iZShlLnZhbEF4aXNUaXRsZUZvbnRTaXplSHB0LHIpO3JldHVybntjYXRGb250UHg6aSx2YWxGb250UHg6YSxjYXRCYW5kSDplLmNhdEF4aXNUaXRsZT9pK1gobikrNDowLHZhbEJhbmRXOmUudmFsQXhpc1RpdGxlP2ErWCh0KSs0OjB9fWZ1bmN0aW9uIENlKGUsdCxuKXtpZighZS50aXRsZSYmIWUudGl0bGVQcmVzZW50KXJldHVybntmb250UHg6MCx0b3BQYWQ6MCxib3R0b21QYWQ6MCxiYW5kSDowfTtsZXQgcj1nZShlLHQsbiksaT1yKk1lLGE9TWF0aC5taW4oTWF0aC5tYXgoMCxpLXIpLHIqamUpO3JldHVybntmb250UHg6cix0b3BQYWQ6YSxib3R0b21QYWQ6aS1yLWEsYmFuZEg6aX19ZnVuY3Rpb24gd2UoZSl7cmV0dXJuIGUqTmV9ZnVuY3Rpb24gVGUoZSl7cmV0dXJuIDUvNiplfWZ1bmN0aW9uIEVlKGUpe3JldHVybiBlfWZ1bmN0aW9uIERlKGUpe2xldCB0PWUub3V0ZXJUZXh0TWFyZ2luUHg/PzA7cmV0dXJue3Q6ZS52YWxBeGlzSGlkZGVuPzA6ZS52YWxMYWJlbEZvbnRQeC8yK3QscjooZS5zZWNvbmRhcnlCYW5kVz8/MCk+MD8oZS5zZWNvbmRhcnlCYW5kVz8/MCkrdDowLGI6ZS5jYXRBeGlzSGlkZGVuPzA6ZS5jYXRMYWJlbEZvbnRQeCsoZS5jYXRMYWJlbEdhcFB4Pz9UZShlLmNhdExhYmVsRm9udFB4KSkrZS5jYXRUaXRsZUJhbmRIK3QsbDplLnZhbEF4aXNIaWRkZW4/MDplLnZhbExhYmVsV2lkdGgrKGUudmFsTGFiZWxHYXBQeD8/RWUoZS52YWxMYWJlbEZvbnRQeCkpK2UudmFsVGl0bGVCYW5kVyt0fX1mdW5jdGlvbiBPZShlLHQsbil7bGV0IHI9ZS54TW9kZXx8YGZhY3RvcmAsaT1lLnlNb2RlfHxgZmFjdG9yYCxhPWUud01vZGV8fGBmYWN0b3JgLG89ZS5oTW9kZXx8YGZhY3RvcmAscz1yPT09YGVkZ2VgP3QueCtlLngqdC53Om4ueCtlLngqdC53LGM9aT09PWBlZGdlYD90LnkrZS55KnQuaDpuLnkrZS55KnQuaCxsPWUudz09bnVsbD9uLnc6YT09PWBlZGdlYD90LngrZS53KnQudy1zOmUudyp0LncsdT1lLmg9PW51bGw/bi5oOm89PT1gZWRnZWA/dC55K2UuaCp0LmgtYzplLmgqdC5oO3JldHVybiFbcyxjLGwsdV0uZXZlcnkoTnVtYmVyLmlzRmluaXRlKXx8bDw9MHx8dTw9MD9udWxsOnt4OnMseTpjLHc6bCxoOnV9fWZ1bmN0aW9uIGtlKGUsdCxuLHIsaSxhLG8pe2xldCBzPW8udGl0bGVCYW5kPz9fZShlLGksYSxvLnRpdGxlVG9wUGFkRnJhYz8/MCxvLnRpdGxlQm90dG9tUGFkRnJhYz8/MCksYz1vLmxlZ2VuZFJlc2VydmU9PT12b2lkIDA/dmUoZSxyLGksby5sZWdlbmRTaWRlUmVzZXJ2ZUZyYWMpOm8ubGVnZW5kUmVzZXJ2ZSxsPXllKGMpLHU9U2UoZSxyLGksYSksZCxmLHAsbTtpZihvLnJhZGlhbEdhcEZyYWMhPW51bGwpe2xldCBlPWkqby5yYWRpYWxHYXBGcmFjO3A9ci1sLmxlZ1JpZ2h0Vy1sLmxlZ0xlZnRXLG09aS1zLmJhbmRILWwubGVnVG9wSC1sLmxlZ0JvdHRvbUgtZSxkPXQrbC5sZWdMZWZ0VyxmPW4rcy5iYW5kSCtsLmxlZ1RvcEgrZX1lbHNle2xldCBlPW8ucGFkO2lmKCFlKXRocm93IEVycm9yKGBjb21wdXRlQ2hhcnRGcmFtZTogY2FydGVzaWFuIGZyYW1lIHJlcXVpcmVzIHBhcmFtcy5wYWRgKTtkPXQrZS5sLGY9bitlLnQscD1yLWUubC1lLnIsbT1pLWUudC1lLmJ9bGV0IGg9by5ob25vclBsb3RBcmVhTWFudWFsTGF5b3V0P2UucGxvdEFyZWFNYW51YWxMYXlvdXQ6bnVsbDtpZihoKXtsZXQgZT1oLmxheW91dFRhcmdldD09PWBpbm5lcmA/e3Q6MCxyOjAsYjowLGw6MH06by5tYW51YWxPdXRlckluc2V0cz8/e3Q6MCxyOjAsYjowLGw6MH0sYT1oLmxheW91dFRhcmdldD09PWBpbm5lcmA/e3g6ZCx5OmYsdzpwLGg6bX06e3g6ZC1lLmwseTpmLWUudCx3OnArZS5sK2UucixoOm0rZS50K2UuYn0scz1PZShoLHt4OnQseTpuLHc6cixoOml9LGEpO3MmJnMudz5lLmwrZS5yJiZzLmg+ZS50K2UuYiYmKGQ9cy54K2UubCxmPXMueStlLnQscD1zLnctZS5sLWUucixtPXMuaC1lLnQtZS5iKX1yZXR1cm57dGl0bGU6cyxsZWdlbmQ6YyxsZWdlbmRCYW5kczpsLGF4aXNUaXRsZXM6dSxwbG90UmVjdDp7cHgwOmQscHkwOmYscHc6cCxwaDptfSxjZW50ZXI6e2N4OmQrcC8yLGN5OmYrbS8yfX19dmFyIEFlLGplLE1lLE5lLFBlLEZlPXQoKCgpPT57QWU9MTQsamU9LjYyLE1lPTIuMjUsTmU9Mi43NSxQZT0xLjV9KSk7ZnVuY3Rpb24gSWUoZSx0PXttaW46MCxtYXg6MX0pe2xldCBuPTEvMCxyPS0xLzA7Zm9yKGxldCB0IG9mIGUpdD09bnVsbHx8IU51bWJlci5pc0Zpbml0ZSh0KXx8KHQ8biYmKG49dCksdD5yJiYocj10KSk7cmV0dXJuIE51bWJlci5pc0Zpbml0ZShuKSYmTnVtYmVyLmlzRmluaXRlKHIpP3ttaW46bixtYXg6cn06dH1mdW5jdGlvbiBMZShlLHQ9NSl7aWYoZT09PTApcmV0dXJuIDE7bGV0IG49ZS90LHI9MTAqKk1hdGguZmxvb3IoTWF0aC5sb2cxMChuKSksaT1uL3I7cmV0dXJuKGk8MS41PzE6aTwzLjU/MjppPDcuNT81OjEwKSpyfWZ1bmN0aW9uIFJlKGUsdCxuLHIpe2xldCBpPU51bWJlci5pc0Zpbml0ZShlKT9lOjAsYT1OdW1iZXIuaXNGaW5pdGUodCk/dDoxMDAsbz1hPmk/YS1pOjEwMCxzPWk8MCYmYT4wLGM9bj09PWBob3Jpem9udGFsYHx8cj09bnVsbHx8IU51bWJlci5pc0Zpbml0ZShyKXx8cjwxMjA/cz80OjU6MTA7cmV0dXJuIFZlKGE+aT9XZShpLGEsYyk6by9jKX1mdW5jdGlvbiB6ZShlLHQsbil7bGV0IHI9TnVtYmVyLmlzRmluaXRlKGUpP2U6MCxpPU51bWJlci5pc0Zpbml0ZSh0KT90OjEsYT1pPnI/bnVsbDoxLG89biE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKG4pP248NDU/NDpuPDkwPzg6MTA6ODtyZXR1cm4gVmUoaT5yP1dlKHIsaSxvKTooYT8/MSkvbyl9ZnVuY3Rpb24gQmUoZSx0LG4pe2xldCByPU51bWJlci5pc0Zpbml0ZShlKT9lOjAsaT1OdW1iZXIuaXNGaW5pdGUodCk/dDoxO3JldHVybiBWZSgoaT5yP2ktcjoxKS8obiE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKG4pJiZuPjA/TWF0aC5tYXgoNSxNYXRoLnJvdW5kKG4vMjgpKTo1KSl9ZnVuY3Rpb24gVmUoZSl7aWYoIShlPjApfHwhaXNGaW5pdGUoZSkpcmV0dXJuIDE7bGV0IHQ9MTAqKk1hdGguZmxvb3IoTWF0aC5sb2cxMChlKSk7aWYoISh0PjApfHwhaXNGaW5pdGUodCkpcmV0dXJuIGU7bGV0IG49ZS90LHI9bjw9MT8xOm48PTI/MjpuPD01PzU6MTA7cmV0dXJuIE1hdGgubWluKE51bWJlci5NQVhfVkFMVUUscip0KX1mdW5jdGlvbiBIZShlKXtyZXR1cm4gZSE9bnVsbCYmaXNGaW5pdGUoZSk/ZTpudWxsfWZ1bmN0aW9uIFVlKGUpe3JldHVybiBlIT1udWxsJiZpc0Zpbml0ZShlKSYmZT4wP2U6bnVsbH1mdW5jdGlvbiBXZShlLHQsbil7bGV0IHI9dC1lLGk9aXNGaW5pdGUocik/ci9uOnQvbi1lL247cmV0dXJuIGk+MCYmaXNGaW5pdGUoaSk/aTpyPjAmJmlzRmluaXRlKHIpP051bWJlci5NSU5fVkFMVUU6TnVtYmVyLk1BWF9WQUxVRX1mdW5jdGlvbiBHZShlLHQsbil7aWYoIWlzRmluaXRlKGUpfHwhaXNGaW5pdGUodCl8fCEodD49ZSl8fCEobj4wKXx8IWlzRmluaXRlKG4pKXJldHVybiAwO2xldCByPXQtZSxpPWlzRmluaXRlKHIpP3Ivbjp0L24tZS9uO3JldHVybiFpc0Zpbml0ZShpKXx8aT4yKio1My0xPzEvMDpNYXRoLm1heCgxLE1hdGguZmxvb3IoaSsxZS05KSsxKX1mdW5jdGlvbiBLZShlLHQsbixyLGkpe2xldCBhPUdlKGUsdCxuKTtpZihhPT09MHx8YT41MTImJnI9PT1gc2tpcGApcmV0dXJuW107bGV0IG89TWF0aC5taW4oYSw1MTIpLHM9W10sYz10LWUsbD1NYXRoLm1heChNYXRoLmFicyhuKSxpc0Zpbml0ZShjKT9NYXRoLmFicyhjKTpNYXRoLm1heChNYXRoLmFicyhlKSxNYXRoLmFicyh0KSkpKjFlLTksdT0tMS8wO2ZvcihsZXQgcj0wO3I8bztyKyspe2xldCBhPXIqbixvPWUrYTtpZigoIWlzRmluaXRlKGEpfHwhaXNGaW5pdGUobyl8fHI+MCYmIShvPnUpKSYmKG89KGUvbityKSpuKSwhaXNGaW5pdGUobyl8fG8+dCtsfHxyPjAmJiEobz51KSlicmVhaztpZih1PW8saSE9bnVsbCl7aWYobz49dC1sKWJyZWFrO2xldCBuPW8tZSxyPWlzRmluaXRlKG4pP24vaTpvL2ktZS9pO2lmKGlzRmluaXRlKHIpJiZNYXRoLmFicyhyLU1hdGgucm91bmQocikpPD0xZS04KWNvbnRpbnVlfXMucHVzaChvKX1yZXR1cm4gc31mdW5jdGlvbiBxZShlKXtsZXQgdD1pc0Zpbml0ZShlLmRhdGFNaW4pP2UuZGF0YU1pbjowLG49aXNGaW5pdGUoZS5kYXRhTWF4KT9lLmRhdGFNYXg6MTt0Pm4mJihbdCxuXT1bbix0XSk7bGV0IHIsaSxhO2lmKHQ9PT0wJiZuPT09MClyPTAsaT0xLGE9LjE7ZWxzZXt0PT09biYmKHQ9TWF0aC5taW4oMCx0KSxuPU1hdGgubWF4KDAsbikpO2xldCBlPXQ+PTAmJih0PT09MHx8bj4xLjIqdCksbz1uPD0wJiYobj09PTB8fE1hdGguYWJzKHQpPjEuMipNYXRoLmFicyhuKSkscz1lPzA6dCxjPW8/MDpuLGw9Yy1zLHU9aXNGaW5pdGUobCk/bCouMDU6YyouMDUtcyouMDUsZD1lPzA6dC11LGY9bz8wOm4rdTthPVZlKGYvMTAtZC8xMCkscj1NYXRoLmZsb29yKGQvYSkqYSxpPU1hdGguY2VpbChmL2EpKmEsKCFpc0Zpbml0ZShyKXx8IWlzRmluaXRlKGkpfHwhKGk+cikpJiYocj1NYXRoLm1pbih0LDApLGk9TWF0aC5tYXgobixyK2EpKX1sZXQgbz1IZShlLmV4cGxpY2l0TWluKSxzPUhlKGUuZXhwbGljaXRNYXgpLGM9VWUoZS5tYWpvclVuaXQpLGw9bz8/KGM9PW51bGw/cjpNYXRoLmZsb29yKHIvYykqYyksdT1zPz8oYz09bnVsbD9pOk1hdGguY2VpbChpL2MpKmMpLGQ9YTtpZihjPT1udWxsJiZvIT1udWxsJiZzIT1udWxsJiZzPm8pe2lmKGUuYXhpc09yaWVudGF0aW9uPT09YGhvcml6b250YWxgKWQ9VmUoV2UobyxzLGUuYXhpc0xlblB0IT1udWxsJiZpc0Zpbml0ZShlLmF4aXNMZW5QdCkmJmUuYXhpc0xlblB0PjA/TWF0aC5tYXgoNSxNYXRoLnJvdW5kKGUuYXhpc0xlblB0LzM4KSk6OCkpO2Vsc2UgaWYoZS5heGlzT3JpZW50YXRpb249PT1gdmVydGljYWxgKXtsZXQgdD1lLmF4aXNMZW5QdCE9bnVsbCYmaXNGaW5pdGUoZS5heGlzTGVuUHQpJiZlLmF4aXNMZW5QdD4wP01hdGgubWF4KDUsTWF0aC5yb3VuZChlLmF4aXNMZW5QdC8yOCkpOjc7ZD1NYXRoLm1heChWZShXZShvLHMsMTApKSxNYXRoLm1pbihOdW1iZXIuTUFYX1ZBTFVFLExlKFdlKG8scyx0KSwxKSkpfX1sZXQgZj1jPz9kO2M9PW51bGwmJkdlKGwsdSxmKT41MTImJihmPVZlKHUvNTExLWwvNTExKSk7bGV0IHA9VWUoZS5taW5vclVuaXQpO2UubmVlZE1pbm9yJiZjPT1udWxsJiZwPT1udWxsJiZHZShsLHUsZi81KT41MTImJihmPVZlKHUvMTAyLWwvMTAyKSk7bGV0IG09Zi81LGg9ZS5uZWVkTWlub3I/cD8/KG0+MCYmaXNGaW5pdGUobSk/bTpmKTpudWxsLGc9S2UobCx1LGYsYz09bnVsbD9gc2tpcGA6YHRydW5jYXRlYCksXz1oPT1udWxsP1tdOktlKGwsdSxoLGBza2lwYCxmKTtyZXR1cm57bWluOmwsbWF4OnUsbWFqb3JVbml0OmYsbWlub3JVbml0OmgsbWFqb3JUaWNrczpnLG1pbm9yVGlja3M6X319ZnVuY3Rpb24gSmUoZSx0LG4scil7bGV0IGksYT1yPy5sb2dCYXNlO2lmKGEhPW51bGwmJmlzRmluaXRlKGEpJiZhPj0yJiZ0PjAmJm4+MCl7bGV0IHI9TWF0aC5sb2codCksYT1NYXRoLmxvZyhuKS1yO2k9YT09PTA/MDooTWF0aC5sb2coTWF0aC5tYXgoZSxOdW1iZXIuTUlOX1ZBTFVFKSktcikvYX1lbHNle2xldCByPW4tdDtpZihyPT09MClpPTA7ZWxzZSBpZihOdW1iZXIuaXNGaW5pdGUocikmJk51bWJlci5pc0Zpbml0ZShlLXQpKWk9KGUtdCkvcjtlbHNle2xldCByPU1hdGgubWF4KE1hdGguYWJzKGUpLE1hdGguYWJzKHQpLE1hdGguYWJzKG4pKSxhPW4vci10L3I7aT1hPT09MD8wOihlL3ItdC9yKS9hfX1yZXR1cm4gcj8ucmV2ZXJzZWQ/MS1pOml9ZnVuY3Rpb24gWWUoZSx0LG4scixpKXtsZXQgYT1pc0Zpbml0ZShuKSYmbj49Mj9uOjEwLG89ZT0+TWF0aC5sb2coZSkvTWF0aC5sb2coYSkscz10PjA/dDoxLGM9TWF0aC5mbG9vcihvKGU+MD9lOnMpKSxsPU1hdGguY2VpbChvKHMpKSx1PWU9PntsZXQgdD1hKiorZTtyZXR1cm4gdD09PTA/TnVtYmVyLk1JTl9WQUxVRTppc0Zpbml0ZSh0KT90Ok51bWJlci5NQVhfVkFMVUV9LGQ9cj8/dShjKSxmPWk/P3UoTWF0aC5tYXgobCxjKzEpKSxwPVtdLG09TWF0aC5jZWlsKG8oZCktMWUtOSksaD1NYXRoLmZsb29yKG8oZikrMWUtOSk7aWYoIWlzRmluaXRlKG0pfHwhaXNGaW5pdGUoaCl8fGg8bSlyZXR1cm57bWluOmQsbWF4OmYsbGluZXM6cH07bGV0IGc9aC1tKzEsXz1NYXRoLm1heCgxLE1hdGguY2VpbCgoZy0xKS81MTEpKSx2PU1hdGgubWluKDUxMixNYXRoLmZsb29yKChnLTEpL18pKzEpO2ZvcihsZXQgZT0wO2U8djtlKyspe2xldCB0PXUobStlKl8pO3Q+PWQmJnQ8PWYmJihwLmxlbmd0aD09PTB8fHQ+cFtwLmxlbmd0aC0xXSkmJnAucHVzaCh0KX1sZXQgeT11KGgpO3JldHVybiBwLmxlbmd0aDw1MTImJnk+PWQmJnk8PWYmJnk+KHBbcC5sZW5ndGgtMV0/PzApJiZwLnB1c2goeSkse21pbjpkLG1heDpmLGxpbmVzOnB9fWZ1bmN0aW9uIFhlKGUpe2xldCB0PWUubG9nQmFzZTtpZih0IT1udWxsJiZOdW1iZXIuaXNGaW5pdGUodCkmJnQ+PTIpe2xldHttaW46bixtYXg6cixsaW5lczppfT1ZZShlLmRhdGFNaW4sZS5kYXRhTWF4LHQsSGUoZS5leHBsaWNpdE1pbiksSGUoZS5leHBsaWNpdE1heCkpO3JldHVybnttaW46bixtYXg6cixtYWpvclVuaXQ6aS5sZW5ndGg+MT9pWzFdLWlbMF06ci1uLG1pbm9yVW5pdDpudWxsLG1ham9yVGlja3M6aSxtaW5vclRpY2tzOltdLGZyYWN0aW9uOmk9PkplKGksbixyLHtsb2dCYXNlOnQscmV2ZXJzZWQ6ZS5yZXZlcnNlZH0pfX1sZXQgbj1xZShlKTtyZXR1cm57Li4ubixmcmFjdGlvbjp0PT5KZSh0LG4ubWluLG4ubWF4LHtyZXZlcnNlZDplLnJldmVyc2VkfSl9fWZ1bmN0aW9uIFplKGUsdCxuKXtsZXQgcj1NYXRoLm1pbihlLmxlbmd0aCx0Lmxlbmd0aCk7aWYocjwyKXJldHVybiBudWxsO2xldCBpPTAsYT0wLG89MCxzPTA7Zm9yKGxldCBuPTA7bjxyO24rKylpKz1lW25dLGErPXRbbl0sbys9ZVtuXSplW25dLHMrPWVbbl0qdFtuXTtsZXQgYyxsO2lmKG4hPW51bGwmJmlzRmluaXRlKG4pKWM9bz09PTA/MDoocy1uKmkpL28sbD1uO2Vsc2V7bGV0IGU9cipvLWkqaTtjPWU9PT0wPzA6KHIqcy1pKmEpL2UsbD0oYS1jKmkpL3J9bGV0IHU9YS9yLGQ9MCxmPTA7Zm9yKGxldCBuPTA7bjxyO24rKyl7bGV0IHI9dFtuXS0oYyplW25dK2wpO2QrPXIqcjtsZXQgaT10W25dLXU7Zis9aSppfWxldCBwPWY9PT0wPysoZD09PTApOjEtZC9mO3JldHVybntzbG9wZTpjLGludGVyY2VwdDpsLHJTcXVhcmVkOnB9fWZ1bmN0aW9uIFFlKGUsdCxuLHIpe2xldCBpPU1hdGgubWluKGUubGVuZ3RoLHQubGVuZ3RoKTtpZihpPDIpcmV0dXJue3hzOltdLHlzOltdfTtpZihuPT09YGxpbmVhcmApe2xldCBuPVplKGUsdCxyPy5pbnRlcmNlcHQpO2lmKCFuKXJldHVybnt4czpbXSx5czpbXX07bGV0IGE9ZVswXSxvPWVbaS0xXTtyZXR1cm57eHM6W2Esb10seXM6W24uc2xvcGUqYStuLmludGVyY2VwdCxuLnNsb3BlKm8rbi5pbnRlcmNlcHRdfX1pZihuPT09YG1vdmluZ0F2Z2Ape2xldCBuPU1hdGgubWF4KDIsTWF0aC5yb3VuZChyPy5wZXJpb2Q/PzIpKTtpZihpPG4pcmV0dXJue3hzOltdLHlzOltdfTtsZXQgYT1bXSxvPVtdO2ZvcihsZXQgcj1uLTE7cjxpO3IrKyl7bGV0IGk9MDtmb3IobGV0IGU9MDtlPG47ZSsrKWkrPXRbci1lXTthLnB1c2goZVtyXSksby5wdXNoKGkvbil9cmV0dXJue3hzOmEseXM6b319bGV0IGE9W107Zm9yKGxldCByPTA7cjxpO3IrKyl7bGV0IGk9ZVtyXSxvPXRbcl07IU51bWJlci5pc0Zpbml0ZShpKXx8IU51bWJlci5pc0Zpbml0ZShvKXx8bj09PWBsb2dgJiZpPD0wfHxuPT09YGV4cGAmJm88PTB8fG49PT1gcG93ZXJgJiYoaTw9MHx8bzw9MCl8fGEucHVzaCh7eDppLHk6b30pfWlmKGEubGVuZ3RoPDIpcmV0dXJue3hzOltdLHlzOltdfTtsZXQgbz0xLzAscz0tMS8wO2ZvcihsZXQgZSBvZiBhKW89TWF0aC5taW4obyxlLngpLHM9TWF0aC5tYXgocyxlLngpO2lmKCFOdW1iZXIuaXNGaW5pdGUobyl8fCFOdW1iZXIuaXNGaW5pdGUocyl8fHM8PW8pcmV0dXJue3hzOltdLHlzOltdfTtsZXQgYz1OdW1iZXIuaXNGaW5pdGUocj8uYmFja3dhcmQpP01hdGgubWF4KDAscj8uYmFja3dhcmQ/PzApOjAsbD1OdW1iZXIuaXNGaW5pdGUocj8uZm9yd2FyZCk/TWF0aC5tYXgoMCxyPy5mb3J3YXJkPz8wKTowLHU9by1jLGQ9cytsO2lmKChuPT09YGxvZ2B8fG49PT1gcG93ZXJgKSYmKHU9TWF0aC5tYXgoTnVtYmVyLk1JTl9WQUxVRSx1KSksIU51bWJlci5pc0Zpbml0ZSh1KXx8IU51bWJlci5pc0Zpbml0ZShkKXx8ZDw9dSlyZXR1cm57eHM6W10seXM6W119O2xldCBmPWU9PntsZXQgdD1bXSxuPVtdO2ZvcihsZXQgcj0wO3I8PTY0O3IrKyl7bGV0IGk9ci82NCxhPXUqKDEtaSkrZCppLG89ZShhKTtpZighTnVtYmVyLmlzRmluaXRlKGEpfHwhTnVtYmVyLmlzRmluaXRlKG8pKXJldHVybnt4czpbXSx5czpbXX07dC5wdXNoKGEpLG4ucHVzaChvKX1yZXR1cm57eHM6dCx5czpufX07aWYobj09PWBleHBgfHxuPT09YGxvZ2B8fG49PT1gcG93ZXJgKXtsZXQgZT1aZShhLm1hcChlPT5uPT09YGxvZ2B8fG49PT1gcG93ZXJgP01hdGgubG9nKGUueCk6ZS54KSxhLm1hcChlPT5uPT09YGV4cGB8fG49PT1gcG93ZXJgP01hdGgubG9nKGUueSk6ZS55KSk7aWYoIWV8fCFbZS5zbG9wZSxlLmludGVyY2VwdF0uZXZlcnkoTnVtYmVyLmlzRmluaXRlKSlyZXR1cm57eHM6W10seXM6W119O2lmKG49PT1gZXhwYCl7bGV0IHQ9TWF0aC5leHAoZS5pbnRlcmNlcHQpO3JldHVybiBmKG49PnQqTWF0aC5leHAoZS5zbG9wZSpuKSl9aWYobj09PWBsb2dgKXJldHVybiBmKHQ9PmUuc2xvcGUqTWF0aC5sb2codCkrZS5pbnRlcmNlcHQpO2xldCB0PU1hdGguZXhwKGUuaW50ZXJjZXB0KTtyZXR1cm4gZihuPT50Km4qKmUuc2xvcGUpfWlmKG49PT1gcG9seWApe2xldCBlPU1hdGgubWluKDYsYS5sZW5ndGgtMSxNYXRoLm1heCgyLE1hdGgucm91bmQocj8ub3JkZXI/PzIpKSk7aWYoZTwyKXJldHVybnt4czpbXSx5czpbXX07bGV0IHQ9by8yK3MvMixuPU1hdGgubWF4KE1hdGguYWJzKG8tdCksTWF0aC5hYnMocy10KSk7aWYoIU51bWJlci5pc0Zpbml0ZSh0KXx8IU51bWJlci5pc0Zpbml0ZShuKXx8bjw9MClyZXR1cm57eHM6W10seXM6W119O2xldCBpPWEubGVuZ3RoLGM9ZSsxLGw9QXJyYXkuZnJvbSh7bGVuZ3RoOmN9LCgpPT5BcnJheShpKS5maWxsKDApKTtmb3IobGV0IGU9MDtlPGk7ZSsrKXtsZXQgcj0oYVtlXS54LXQpL24saT0xO2ZvcihsZXQgdD0wO3Q8Yzt0KyspbFt0XVtlXT1pLGkqPXJ9bGV0IHU9W10sZD1BcnJheS5mcm9tKHtsZW5ndGg6Y30sKCk9PkFycmF5KGMpLmZpbGwoMCkpLHA9QXJyYXkoYykuZmlsbCgwKTtmb3IobGV0IGU9MDtlPGM7ZSsrKXtsZXQgdD1sW2VdLnNsaWNlKCk7Zm9yKGxldCBuPTA7bjxlO24rKyl7bGV0IHI9MDtmb3IobGV0IGU9MDtlPGk7ZSsrKXIrPXVbbl1bZV0qdFtlXTtkW25dW2VdPXI7Zm9yKGxldCBlPTA7ZTxpO2UrKyl0W2VdLT1yKnVbbl1bZV19bGV0IG49MDtmb3IobGV0IGUgb2YgdCluKz1lKmU7bGV0IHI9TWF0aC5zcXJ0KG4pO2lmKCFOdW1iZXIuaXNGaW5pdGUocil8fHI8PTIqKi01MipNYXRoLnNxcnQoaSkpcmV0dXJue3hzOltdLHlzOltdfTtkW2VdW2VdPXI7bGV0IG89dC5tYXAoZT0+ZS9yKTt1LnB1c2gobyk7bGV0IHM9MDtmb3IobGV0IGU9MDtlPGk7ZSsrKXMrPW9bZV0qYVtlXS55O2lmKCFOdW1iZXIuaXNGaW5pdGUocykpcmV0dXJue3hzOltdLHlzOltdfTtwW2VdPXN9bGV0IG09QXJyYXkoYykuZmlsbCgwKTtmb3IobGV0IGU9Yy0xO2U+PTA7ZS0tKXtsZXQgdD1wW2VdO2ZvcihsZXQgbj1lKzE7bjxjO24rKyl0LT1kW2VdW25dKm1bbl07aWYobVtlXT10L2RbZV1bZV0sIU51bWJlci5pc0Zpbml0ZShtW2VdKSlyZXR1cm57eHM6W10seXM6W119fXJldHVybiBmKHI9PntsZXQgaT0oci10KS9uLGE9bVtlXTtmb3IobGV0IHQ9ZS0xO3Q+PTA7dC0tKWE9YSppK21bdF07cmV0dXJuIGF9KX1yZXR1cm57eHM6W10seXM6W119fXZhciAkZT10KCgoKT0+e30pKSxldCx0dCxudD10KCgoKT0+e2V0PTEyNzAwLHR0PTQvM30pKTtmdW5jdGlvbiBydChlLHQpe3JldHVybiBlP01hdGgubWF4KC41LGUvZXQpKnQ6MX1mdW5jdGlvbiBpdChlLHQsbil7cmV0dXJue2NvbG9yOmU/YCMke2V9YDpgI2FhYWAsd2lkdGg6cnQodCxuKX19ZnVuY3Rpb24gYXQoZSx0LG4pe3JldHVybntjb2xvcjplP2AjJHtlfWA6YCNlMGUwZTBgLHdpZHRoOnQ/cnQodCxuKTouNX19ZnVuY3Rpb24gb3QoZSl7cmV0dXJuIGUuY2F0QXhpc0Nyb3NzQmV0d2VlbiE9PWBtaWRDYXRgfXZhciBzdD10KCgoKT0+e250KCl9KSk7ZnVuY3Rpb24gY3QoZSx0PSExKXtpZih0KXJldHVybiBuZXcgRGF0ZShmdCtlKnV0KTtsZXQgbj1lPDYwP2UrMTplO3JldHVybiBuZXcgRGF0ZShkdCtuKnV0KX1mdW5jdGlvbiBsdChlLHQ9ITEpe2lmKHQpcmV0dXJuKGUuZ2V0VGltZSgpLWZ0KS91dDtsZXQgbj0oZS5nZXRUaW1lKCktZHQpL3V0O3JldHVybiBuPD02MD9uLTE6bn12YXIgdXQsZHQsZnQscHQ9dCgoKCk9Pnt1dD04NjRlNSxkdD1EYXRlLlVUQygxODk5LDExLDMwKSxmdD1EYXRlLlVUQygxOTA0LDAsMSl9KSk7ZnVuY3Rpb24gbXQoZSx0KXtpZighTnVtYmVyLmlzRmluaXRlKGUpKXJldHVybiBTdHJpbmcoZSk7bGV0IG49TWF0aC5tYXgoMCxNYXRoLnRydW5jKHQpKSxyPWU8MCxbaSxhPWBgXT1odChNYXRoLmFicyhlKS50b1N0cmluZygpKS5zcGxpdChgLmApLG89YS5wYWRFbmQobisxLGAwYCkscz1vLnNsaWNlKDAsbiksYz1vLmNoYXJDb2RlQXQobiktNDgsbD0oaStzKS5zcGxpdChgYCkubWFwKGU9PmUuY2hhckNvZGVBdCgwKS00OCk7aWYoYz49NSl7bGV0IGU9bC5sZW5ndGgtMTtmb3IoO2U+PTA7ZS0tKWlmKGxbZV09PT05KWxbZV09MDtlbHNle2xbZV0rPTE7YnJlYWt9ZTwwJiZsLnVuc2hpZnQoMSl9bGV0IHU9bC5tYXAoZT0+U3RyaW5nKGUpKS5qb2luKGBgKSxkPW4sZj0oZD4wP3Uuc2xpY2UoMCx1Lmxlbmd0aC1kKTp1KXx8YDBgLHA9ZD4wP3Uuc2xpY2UodS5sZW5ndGgtZCk6YGAsbT1mLnJlcGxhY2UoL14wKyg/PVxkKS8sYGApLGg9cC5sZW5ndGg+MD9gJHttfS4ke3B9YDptLGc9L15bMC5dKiQvLnRlc3QoaCkmJiEvWzEtOV0vLnRlc3QoaCk7cmV0dXJuIHImJiFnP2AtJHtofWA6aH1mdW5jdGlvbiBodChlKXtsZXQgdD0vXihcZCspKD86XC4oXGQrKSk/W2VFXShbKy1dP1xkKykkLy5leGVjKGUpO2lmKCF0KXJldHVybiBlO2xldFssbixyPWBgLGldPXQsYT1wYXJzZUludChpLDEwKSxvPW4rcixzPW4ubGVuZ3RoK2E7cmV0dXJuIHM8PTA/YDAuYCtgMGAucmVwZWF0KC1zKStvOnM+PW8ubGVuZ3RoP28rYDBgLnJlcGVhdChzLW8ubGVuZ3RoKTpvLnNsaWNlKDAscykrYC5gK28uc2xpY2Uocyl9dmFyIGd0PXQoKCgpPT57fSkpO2Z1bmN0aW9uIF90KGUsdD0hMSxuPXR5cGVvZiBuYXZpZ2F0b3I+YHVgP3ZvaWQgMDpuYXZpZ2F0b3IubGFuZ3VhZ2Upe2xldCByPW4/P2BgLGk9RXQuZ2V0KHIpO3JldHVybiBpfHwoaT1uZXcgSW50bC5EYXRlVGltZUZvcm1hdChuLHt5ZWFyOmBudW1lcmljYCxtb250aDpgbnVtZXJpY2AsZGF5OmBudW1lcmljYCx0aW1lWm9uZTpgVVRDYH0pLEV0LnNldChyLGkpKSxpLmZvcm1hdChjdChlLHQpKX1mdW5jdGlvbiB2dChlKXtyZXR1cm4gTnVtYmVyLmlzSW50ZWdlcihlKT9TdHJpbmcoZSk6bXQoZSw2KS5yZXBsYWNlKC9cLj8wKyQvLGBgKX1mdW5jdGlvbiB5dChlLHQsbj0hMSl7aWYoIXR8fHQudHJpbSgpLnRvTG93ZXJDYXNlKCk9PT1gZ2VuZXJhbGApcmV0dXJuIHZ0KGUpO2lmKHh0KHQpKXJldHVybiBTdChlLHQsbik7bGV0IHI9Q3QodCksaTtyZXR1cm4gaT1lPjA/clswXT8/dDplPDA/clsxXT8/clswXT8/dDpyWzJdPz9yWzBdPz90LGk9PT1gYD9gYDooZTwwJiZyLmxlbmd0aDwyP2AtYDpgYCkrd3QoTWF0aC5hYnMoZSksaSl9ZnVuY3Rpb24gYnQoZSx0LG49ITEpe2lmKCF0fHxlLnRyaW0oKT09PWBgKXJldHVybiBlO2xldCByPU51bWJlcihlKTtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKHIpP3l0KHIsdCxuKTplfWZ1bmN0aW9uIHh0KGUpe2xldCB0PSExO2ZvcihsZXQgbj0wO248ZS5sZW5ndGg7bisrKXtsZXQgcj1lW25dO2lmKHI9PT1gImApe3Q9IXQ7Y29udGludWV9aWYoIXQpe2lmKHI9PT1gXFxgKXtuKys7Y29udGludWV9aWYocj09PWBbYCl7Zm9yKDtuPGUubGVuZ3RoJiZlW25dIT09YF1gOyluKys7Y29udGludWV9aWYocj09PWB5YHx8cj09PWBZYHx8cj09PWBkYHx8cj09PWBEYHx8cj09PWBtYHx8cj09PWBNYHx8cj09PWBoYHx8cj09PWBIYHx8cj09PWBzYHx8cj09PWBTYClyZXR1cm4hMH19cmV0dXJuITF9ZnVuY3Rpb24gU3QoZSx0LG49ITEpe2xldCByPWN0KE1hdGguZmxvb3IoZSksbiksaT1yLmdldFVUQ0Z1bGxZZWFyKCksYT1yLmdldFVUQ01vbnRoKCkrMSxvPXIuZ2V0VVRDRGF0ZSgpLHM9KGUtTWF0aC5mbG9vcihlKSkqODY0MDAsYz1NYXRoLmZsb29yKHMvMzYwMCksbD1NYXRoLmZsb29yKHMlMzYwMC82MCksdT1NYXRoLmZsb29yKHMlNjApLGQ9YGAsZj0hMSxwPTA7Zm9yKDtwPHQubGVuZ3RoOyl7bGV0IGU9dFtwXTtpZihlPT09YCJgKXtmPSFmLHArKztjb250aW51ZX1pZihmKXtkKz1lLHArKztjb250aW51ZX1pZihlPT09YFxcYCYmcCsxPHQubGVuZ3RoKXtkKz10W3ArMV0scCs9Mjtjb250aW51ZX1pZihlPT09YFtgKXtmb3IoO3A8dC5sZW5ndGgmJnRbcF0hPT1gXWA7KXArKztwPHQubGVuZ3RoJiZwKys7Y29udGludWV9aWYoZT09PWB5YHx8ZT09PWBZYCl7bGV0IGU9MDtmb3IoO3A8dC5sZW5ndGgmJih0W3BdPT09YHlgfHx0W3BdPT09YFlgKTspZSsrLHArKztkKz1lPj0zP1N0cmluZyhpKTpTdHJpbmcoaSUxMDApLnBhZFN0YXJ0KDIsYDBgKTtjb250aW51ZX1pZihlPT09YG1gfHxlPT09YE1gKXtsZXQgZT0wO2Zvcig7cDx0Lmxlbmd0aCYmKHRbcF09PT1gbWB8fHRbcF09PT1gTWApOyllKysscCsrO2lmKGQubWF0Y2goL1tIaF0rXFcqJC8pKWQrPWU+PTI/U3RyaW5nKGwpLnBhZFN0YXJ0KDIsYDBgKTpTdHJpbmcobCk7ZWxzZXtsZXQgdD1bYEphbmAsYEZlYmAsYE1hcmAsYEFwcmAsYE1heWAsYEp1bmAsYEp1bGAsYEF1Z2AsYFNlcGAsYE9jdGAsYE5vdmAsYERlY2BdLG49W2BKYW51YXJ5YCxgRmVicnVhcnlgLGBNYXJjaGAsYEFwcmlsYCxgTWF5YCxgSnVuZWAsYEp1bHlgLGBBdWd1c3RgLGBTZXB0ZW1iZXJgLGBPY3RvYmVyYCxgTm92ZW1iZXJgLGBEZWNlbWJlcmBdO2QrPWU+PTU/blthLTFdWzBdOmU9PT00P25bYS0xXTplPT09Mz90W2EtMV06ZT09PTI/U3RyaW5nKGEpLnBhZFN0YXJ0KDIsYDBgKTpTdHJpbmcoYSl9Y29udGludWV9aWYoZT09PWBkYHx8ZT09PWBEYCl7bGV0IGU9MDtmb3IoO3A8dC5sZW5ndGgmJih0W3BdPT09YGRgfHx0W3BdPT09YERgKTspZSsrLHArKztkKz1lPj0yP1N0cmluZyhvKS5wYWRTdGFydCgyLGAwYCk6U3RyaW5nKG8pO2NvbnRpbnVlfWlmKGU9PT1gaGB8fGU9PT1gSGApe2xldCBlPTA7Zm9yKDtwPHQubGVuZ3RoJiYodFtwXT09PWBoYHx8dFtwXT09PWBIYCk7KWUrKyxwKys7ZCs9ZT49Mj9TdHJpbmcoYykucGFkU3RhcnQoMixgMGApOlN0cmluZyhjKTtjb250aW51ZX1pZihlPT09YHNgfHxlPT09YFNgKXtsZXQgZT0wO2Zvcig7cDx0Lmxlbmd0aCYmKHRbcF09PT1gc2B8fHRbcF09PT1gU2ApOyllKysscCsrO2QrPWU+PTI/U3RyaW5nKHUpLnBhZFN0YXJ0KDIsYDBgKTpTdHJpbmcodSk7Y29udGludWV9ZCs9ZSxwKyt9cmV0dXJuIGR9ZnVuY3Rpb24gQ3QoZSl7bGV0IHQ9W10sbj1gYDtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrKyl7bGV0IGk9ZVtyXTtpZihpPT09YFxcYCYmcisxPGUubGVuZ3RoKXtuKz1pK2VbcisxXSxyKys7Y29udGludWV9aWYoaT09PWAiYCl7Zm9yKG4rPWkscisrO3I8ZS5sZW5ndGgmJmVbcl0hPT1gImA7KW4rPWVbcl0scisrO3I8ZS5sZW5ndGgmJihuKz1lW3JdKTtjb250aW51ZX1pZihpPT09YFtgKXtmb3Iobis9aSxyKys7cjxlLmxlbmd0aCYmZVtyXSE9PWBdYDspbis9ZVtyXSxyKys7cjxlLmxlbmd0aCYmKG4rPWVbcl0pO2NvbnRpbnVlfWlmKGk9PT1gO2Ape3QucHVzaChuKSxuPWBgO2NvbnRpbnVlfW4rPWl9cmV0dXJuIHQucHVzaChuKSx0fWZ1bmN0aW9uIHd0KGUsdCl7bGV0IG49W10scj0wLGk9ITEsYT0hMTtmb3IoO3I8dC5sZW5ndGg7KXtsZXQgZT10W3JdO2lmKGU9PT1gImApe3IrKztsZXQgZT1gYDtmb3IoO3I8dC5sZW5ndGgmJnRbcl0hPT1gImA7KWUrPXRbcl0scisrO3I8dC5sZW5ndGgmJnIrKyxuLnB1c2goe2tpbmQ6YGxpdGAsdGV4dDplfSk7Y29udGludWV9aWYoZT09PWBcXGAmJnIrMTx0Lmxlbmd0aCl7bi5wdXNoKHtraW5kOmBsaXRgLHRleHQ6dFtyKzFdfSkscis9Mjtjb250aW51ZX1pZihlPT09YF9gJiZyKzE8dC5sZW5ndGgpe24ucHVzaCh7a2luZDpgbGl0YCx0ZXh0OmAgYH0pLHIrPTI7Y29udGludWV9aWYoZT09PWAqYCYmcisxPHQubGVuZ3RoKXtyKz0yO2NvbnRpbnVlfWlmKGU9PT1gW2Ape2ZvcihyKys7cjx0Lmxlbmd0aCYmdFtyXSE9PWBdYDspcisrO3I8dC5sZW5ndGgmJnIrKztjb250aW51ZX1pZihlPT09YCVgKXthPSEwLG4ucHVzaCh7a2luZDpgbGl0YCx0ZXh0OmAlYH0pLHIrKztjb250aW51ZX1pZihlPT09YCNgfHxlPT09YDBgfHxlPT09YC5gfHxlPT09YCxgfHxlPT09YD9gKXtsZXQgZT1gYDtmb3IoO3I8dC5sZW5ndGgmJih0W3JdPT09YCNgfHx0W3JdPT09YDBgfHx0W3JdPT09YC5gfHx0W3JdPT09YCxgfHx0W3JdPT09YD9gKTspZSs9dFtyXSxyKys7bi5wdXNoKHtraW5kOmBudW1gLHRleHQ6ZX0pLGk9ITA7Y29udGludWV9bi5wdXNoKHtraW5kOmBsaXRgLHRleHQ6ZX0pLHIrK31pZighaSlyZXR1cm4gbi5tYXAoZT0+ZS50ZXh0KS5qb2luKGBgKTtsZXQgbz1hP2UqMTAwOmUscz1gYDtmb3IobGV0IGUgb2YgbillLmtpbmQ9PT1gbnVtYCYmKHMrPWUudGV4dCk7bGV0IGM9VHQobyxzKSxsPSExO3JldHVybiBuLm1hcChlPT5lLmtpbmQ9PT1gbGl0YD9lLnRleHQ6bD9gYDoobD0hMCxjKSkuam9pbihgYCl9ZnVuY3Rpb24gVHQoZSx0KXtsZXQgbj10LmluZGV4T2YoYC5gKSxyPW4+PTA/dC5zbGljZSgwLG4pOnQsaT1uPj0wP3Quc2xpY2UobisxKTpgYCxhPS8sLy50ZXN0KHIpLG89KGkubWF0Y2goL1sjMD9dL2cpPz9bXSkubGVuZ3RoLHM9KHIucmVwbGFjZSgvLC9nLGBgKS5tYXRjaCgvMC9nKT8/W10pLmxlbmd0aCxbYyxsPWBgXT1tdChlLG8pLnNwbGl0KGAuYCksdT1jLnBhZFN0YXJ0KHMsYDBgKSxkPWE/dS5yZXBsYWNlKC9cQig/PShcZHszfSkrKD8hXGQpKS9nLGAsYCk6dTtyZXR1cm4gbz09PTA/ZDpgJHtkfS4ke2wucGFkRW5kKG8sYDBgKX1gfXZhciBFdCxEdD10KCgoKT0+e3B0KCksZ3QoKSxFdD1uZXcgTWFwfSkpO2Z1bmN0aW9uIE90KGUsdCxuKXtpZih0PT09YGB8fG48PTApcmV0dXJuYGA7aWYoZS5tZWFzdXJlVGV4dCh0KS53aWR0aDw9bilyZXR1cm4gdDtpZihlLm1lYXN1cmVUZXh0KGt0KS53aWR0aD5uKXJldHVybmBgO2xldCByPTAsaT10Lmxlbmd0aC0xLGE9MDtmb3IoO3I8PWk7KXtsZXQgbz1yK2k+PjE7ZS5tZWFzdXJlVGV4dCh0LnNsaWNlKDAsbykra3QpLndpZHRoPD1uPyhhPW8scj1vKzEpOmk9by0xfWxldCBvPWE+MD90LmNoYXJDb2RlQXQoYS0xKTowO3JldHVybiBvPj01NTI5NiYmbzw9NTYzMTkmJmEtLSx0LnNsaWNlKDAsYSkra3R9dmFyIGt0LEF0PXQoKCgpPT57a3Q9YOKApmB9KSk7ZnVuY3Rpb24ganQoZSx0LG4scj0hMSl7bGV0IGk9TWF0aC5tYXgoMCx0LTEpLGE9TnVtYmVyLmlzRmluaXRlKGUpP01hdGgubWF4KDAsTWF0aC5taW4oaSxlKSk6MCxvPW4/KGErLjUpL01hdGgubWF4KDEsdCk6dD09PTE/LjU6YS9pO3JldHVybiByPzEtbzpvfWZ1bmN0aW9uIE10KGUsdCl7cmV0dXJuIGUhPW51bGwmJk51bWJlci5pc0Zpbml0ZShlKT9NYXRoLm1heCgwLE1hdGgubWluKDUwMCxlKSk6dD09PWBsZWdhY3lgPzE1MDozM312YXIgTnQ9dCgoKCk9Pnt9KSk7ZnVuY3Rpb24gUHQoZSl7cmV0dXJuIGUhPW51bGwmJk51bWJlci5pc0Zpbml0ZShlKT9lOm51bGx9ZnVuY3Rpb24gRnQoZSl7cmV0dXJuIE9iamVjdC5pcyhlLC0wKT9gMGA6U3RyaW5nKE51bWJlci5pc0ludGVnZXIoZSk/ZTpOdW1iZXIoZS50b1ByZWNpc2lvbig2KSkpfWZ1bmN0aW9uIEl0KGUsdCl7aWYoZS5sZW5ndGg+MTA0ODU3NilyZXR1cm57a2luZDpgdG9vTWFueUlucHV0UG9pbnRzYH07bGV0IG49dC5pbnRlcnZhbENsb3NlZD09PWByYD9gcmA6YGxgLHI9UHQodC51bmRlcmZsb3cpLGk9UHQodC5vdmVyZmxvdyk7ciE9bnVsbCYmaSE9bnVsbCYmcj49aSYmKHI9bnVsbCxpPW51bGwpO2xldCBhPWU9PnIhPW51bGwmJihuPT09YHJgP2U8PXI6ZTxyKSxvPWU9PmkhPW51bGwmJihuPT09YHJgP2U+aTplPj1pKSxzPTEvMCxjPS0xLzAsbD0wLHU9MCxkPTA7Zm9yKGxldCB0IG9mIGUpe2xldCBlPVB0KHQpO2UhPW51bGwmJihhKGUpP3UrKzpvKGUpP2QrKzoobCsrLHM9TWF0aC5taW4ocyxlKSxjPU1hdGgubWF4KGMsZSkpKX1pZihsK3UrZD09PTApcmV0dXJue2tpbmQ6YGJpbnNgLGNhdGVnb3JpZXM6W10sY291bnRzOltdfTtsZXQgZj1bXSxwPVtdO2lmKHIhPW51bGwmJihmLnB1c2goYCR7bj09PWByYD9g4omkYDpgPGB9ICR7RnQocil9YCkscC5wdXNoKHUpKSxsPjApe2xldCB1PXI/P3MsZD1pPz9jLG09ZC11O2lmKCFOdW1iZXIuaXNGaW5pdGUobSkpZi5wdXNoKGAke0Z0KHUpfSDigJMgJHtGdChkKX1gKSxwLnB1c2gobCk7ZWxzZXtsZXQgcz1QdCh0LmJpblNpemUpLGM7Yz1zIT1udWxsJiZzPjAmJm0+MD9NYXRoLm1heCgxLE1hdGguY2VpbChtL3MpKTp0LmJpbkNvdW50IT1udWxsJiZOdW1iZXIuaXNGaW5pdGUodC5iaW5Db3VudCkmJnQuYmluQ291bnQ+MD9NYXRoLm1heCgxLE1hdGguZmxvb3IodC5iaW5Db3VudCkpOk1hdGgubWF4KDEsTWF0aC5jZWlsKE1hdGguc3FydChsKSkpO2xldCBkPW08PTA/MTpNYXRoLm1pbig1MTIsYyksaD1tPjAmJnMhPW51bGwmJnM+MCYmYzw9NTEyLGc9bT09PTA/MTpoP3M6bS9kLF89QXJyYXkoZCkuZmlsbCgwKTtmb3IobGV0IHQgb2YgZSl7bGV0IGU9UHQodCk7aWYoZT09bnVsbHx8YShlKXx8byhlKSljb250aW51ZTtsZXQgcj1oPyhlLXUpL2c6bT09PTA/MDooZS11KS9tKmQsaT1uPT09YHJgP01hdGguY2VpbChyKS0xOk1hdGguZmxvb3Iocikscz1NYXRoLm1heCgwLE1hdGgubWluKGQtMSxpKSk7X1tzXSsrfWZvcihsZXQgZT0wO2U8ZDtlKyspe2xldCB0PWg/dStnKmU6dStlL2QqbSxhPWg/dCtnOnUrbSooKGUrMSkvZCksbz1pPT1udWxsP2E6TWF0aC5taW4oYSxpKSxzPW49PT1gcmAmJihyIT1udWxsfHxlPjApP2A+YDpg4omlYCxjPW49PT1gbGAmJihpIT1udWxsfHxlPGQtMSk/YDxgOmDiiaRgO2YucHVzaChgJHtzfSAke0Z0KHQpfSDigJMgJHtjfSAke0Z0KG8pfWApLHAucHVzaChfW2VdKX19fXJldHVybiBpIT1udWxsJiYoZi5wdXNoKGAke249PT1gcmA/YD5gOmDiiaVgfSAke0Z0KGkpfWApLHAucHVzaChkKSkse2tpbmQ6YGJpbnNgLGNhdGVnb3JpZXM6Zixjb3VudHM6cH19ZnVuY3Rpb24gTHQoZSl7bGV0IHQ9TWF0aC5mbG9vcihlLmxlbmd0aC8yKTtyZXR1cm4gZS5sZW5ndGglMj09MT9lW3RdOmVbdC0xXS8yK2VbdF0vMn1mdW5jdGlvbiBSdChlKXtsZXQgdD0wO2ZvcihsZXQgbiBvZiBlKXQ9TWF0aC5tYXgodCxNYXRoLmFicyhuKSk7aWYodD09PTApcmV0dXJuIDA7bGV0IG49MDtmb3IobGV0IHIgb2YgZSluKz1yL3Q7cmV0dXJuIG4vZS5sZW5ndGgqdH1mdW5jdGlvbiB6dChlLHQsbil7aWYoIU51bWJlci5pc0Zpbml0ZSh0KSlyZXR1cm4gbjwwPy1OdW1iZXIuTUFYX1ZBTFVFOk51bWJlci5NQVhfVkFMVUU7bGV0IHI9ZStuKnQ7cmV0dXJuIE51bWJlci5pc0Zpbml0ZShyKT9yOm48MD8tTnVtYmVyLk1BWF9WQUxVRTpOdW1iZXIuTUFYX1ZBTFVFfWZ1bmN0aW9uIEJ0KGUsdCl7bGV0IG49ZS5maWx0ZXIoZT0+dHlwZW9mIGU9PWBudW1iZXJgJiZOdW1iZXIuaXNGaW5pdGUoZSkpLnNvcnQoKGUsdCk9PmUtdCk7aWYobi5sZW5ndGg9PT0wKXJldHVybiBudWxsO2xldCByPU1hdGguZmxvb3Iobi5sZW5ndGgvMiksaT1MdChuKSxhPXQ9PT1gaW5jbHVzaXZlYCYmbi5sZW5ndGglMj09MSxvPW4uc2xpY2UoMCxyKyArISFhKSxzPW4uc2xpY2UocisgKyhuLmxlbmd0aCUyPT0xJiYhYSkpLGM9THQoby5sZW5ndGg+MD9vOm4pLGw9THQocy5sZW5ndGg+MD9zOm4pLHU9KGwtYykqMS41LGQ9enQoYyx1LC0xKSxmPXp0KGwsdSwxKSxwPVtdLG09W107Zm9yKGxldCBlIG9mIG4pZTxkfHxlPmY/bS5wdXNoKGUpOnAucHVzaChlKTtyZXR1cm57cTE6YyxtZWRpYW46aSxxMzpsLGxvd2VyRmVuY2U6ZCx1cHBlckZlbmNlOmYsd2hpc2tlckxvOnBbMF0/P25bMF0sd2hpc2tlckhpOnBbcC5sZW5ndGgtMV0/P25bbi5sZW5ndGgtMV0sbWVhbjpSdChuKSxvdXRsaWVyczptLGlubmVyOnB9fWZ1bmN0aW9uIFZ0KGUsdCl7bGV0IG49MDtmb3IobGV0IHIgb2YgZSlmb3IobGV0IGUgb2YgcilpZihuKz1lLmxlbmd0aCwhTnVtYmVyLmlzU2FmZUludGVnZXIobil8fG4+dClyZXR1cm4gdCsxO3JldHVybiBufWZ1bmN0aW9uIEh0KGUsdCxuLHIsaSxhLG8pe2lmKCFOdW1iZXIuaXNGaW5pdGUoZSl8fCFOdW1iZXIuaXNGaW5pdGUodCl8fHQ8PTB8fCFOdW1iZXIuaXNJbnRlZ2VyKG4pfHxuPD0wfHwhTnVtYmVyLmlzSW50ZWdlcihyKXx8cjw9MHx8IU51bWJlci5pc0ludGVnZXIoaSl8fGk8MHx8aT49bnx8IU51bWJlci5pc0ludGVnZXIoYSl8fGE8MHx8YT49cnx8IU51bWJlci5pc0Zpbml0ZShvKXx8bzwwKXJldHVybiBudWxsO2xldCBzPXQvbixjPXMvKHIrby8xMDApLGw9YypyLHU9YyouMDYsZD1jLXUsZj1lK3MqKGkrLjUpLWwvMithKmMrdS8yO3JldHVybntib3hYOmYsYm94V2lkdGg6ZCxjZW50ZXJYOmYrZC8yfX1mdW5jdGlvbiBVdChlLHQpe3JldHVybiBlPT1udWxsP2U6ZS5mbGF0TWFwKGU9PntsZXQgbj10LmdldChlLmlkeCk7cmV0dXJuIG49PW51bGw/W106W3suLi5lLGlkeDpufV19KX1mdW5jdGlvbiBXdChlLHQpe3JldHVybiBlPT1udWxsP2U6dC5tYXAodD0+ZVt0XT8/bnVsbCl9ZnVuY3Rpb24gR3QoZSx0KXtsZXQgbj1lLnZhbHVlcy5tYXAoKGUsdCk9Pih7dmFsdWU6ZSxzb3VyY2VJbmRleDp0fSkpLmZpbHRlcihlPT5lLnZhbHVlIT1udWxsJiZOdW1iZXIuaXNGaW5pdGUoZS52YWx1ZSkmJmUudmFsdWU+PTApLnNvcnQoKGUsdCk9PnQudmFsdWUtZS52YWx1ZXx8ZS5zb3VyY2VJbmRleC10LnNvdXJjZUluZGV4KSxyPW5bMF0/LnZhbHVlPz8wLGk9cj4wP24ucmVkdWNlKChlLHQpPT5lK3QudmFsdWUvciwwKTowLGE9MCxvPW4ubWFwKG49PihyPjAmJihhKz1uLnZhbHVlL3IpLHtzb3VyY2VJbmRleDpuLnNvdXJjZUluZGV4LGNhdGVnb3J5OmUuY2F0ZWdvcmllcz8uW24uc291cmNlSW5kZXhdPz90W24uc291cmNlSW5kZXhdPz9TdHJpbmcobi5zb3VyY2VJbmRleCsxKSx2YWx1ZTpuLnZhbHVlLGN1bXVsYXRpdmVGcmFjdGlvbjppPjA/YT49aT8xOmEvaTowfSkpLHM9by5tYXAoZT0+ZS5zb3VyY2VJbmRleCksYz1uZXcgTWFwKHMubWFwKChlLHQpPT5bZSx0XSkpLGw9by5tYXAoZT0+ZS5jYXRlZ29yeSksdT17Li4uZSxjYXRlZ29yaWVzOmwsY2F0Rm9ybWF0Q29kZXM6V3QoZS5jYXRGb3JtYXRDb2RlcyxzKSxkYXRhUG9pbnRDb2xvcnM6V3QoZS5kYXRhUG9pbnRDb2xvcnMscyksZGF0YUxhYmVsQ29sb3JzOld0KGUuZGF0YUxhYmVsQ29sb3JzLHMpLGRhdGFQb2ludE92ZXJyaWRlczpVdChlLmRhdGFQb2ludE92ZXJyaWRlcyxjKSxkYXRhTGFiZWxPdmVycmlkZXM6VXQoZS5kYXRhTGFiZWxPdmVycmlkZXMsYyl9O3JldHVybntwb2ludHM6byxjYXRlZ29yaWVzOmwsb3JkZXJlZFNlcmllczp7Li4udSx2YWx1ZXM6by5tYXAoZT0+ZS52YWx1ZSl9LHNlcmllczp7Li4udSx2YWx1ZXM6by5tYXAoZT0+ZS5jdW11bGF0aXZlRnJhY3Rpb24pfX19cHQoKTtjb25zdCBLdD0xZTQ7ZnVuY3Rpb24gcXQoZSl7cmV0dXJuIGU9PT1gZGF5c2B8fGU9PT1gbW9udGhzYHx8ZT09PWB5ZWFyc2A/ZTpudWxsfWZ1bmN0aW9uIEp0KGUsdCl7c3dpdGNoKHQpe2Nhc2VgeWVhcnNgOnJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyhlLmdldFVUQ0Z1bGxZZWFyKCksMCwxKSk7Y2FzZWBtb250aHNgOnJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyhlLmdldFVUQ0Z1bGxZZWFyKCksZS5nZXRVVENNb250aCgpLDEpKTtjYXNlYGRheXNgOnJldHVybiBuZXcgRGF0ZShEYXRlLlVUQyhlLmdldFVUQ0Z1bGxZZWFyKCksZS5nZXRVVENNb250aCgpLGUuZ2V0VVRDRGF0ZSgpKSl9fWZ1bmN0aW9uIFl0KGUsdCxuKXtpZihuPT09YGRheXNgKXJldHVybiBuZXcgRGF0ZShlLmdldFRpbWUoKSt0Kjg2NGU1KTtsZXQgcj1uZXcgRGF0ZShlLmdldFRpbWUoKSk7cmV0dXJuIG49PT1gbW9udGhzYD9yLnNldFVUQ01vbnRoKHIuZ2V0VVRDTW9udGgoKSt0KTpyLnNldFVUQ0Z1bGxZZWFyKHIuZ2V0VVRDRnVsbFllYXIoKSt0KSxyfWZ1bmN0aW9uIFh0KGUsdCl7c3dpdGNoKHQpe2Nhc2VgeWVhcnNgOnJldHVybiBlLmdldFVUQ0Z1bGxZZWFyKCk7Y2FzZWBtb250aHNgOnJldHVybiBlLmdldFVUQ0Z1bGxZZWFyKCkqMTIrZS5nZXRVVENNb250aCgpO2Nhc2VgZGF5c2A6cmV0dXJuIE1hdGguZmxvb3IoZS5nZXRUaW1lKCkvODY0ZTUpfX1mdW5jdGlvbiBadChlKXtsZXQgdD1lLmNhdGVnb3JpZXMubWFwKGU9Pk51bWJlcihlKSk7aWYodC5sZW5ndGg9PT0wfHx0LnNvbWUoZT0+IU51bWJlci5pc0Zpbml0ZShlKSkpcmV0dXJuIG51bGw7bGV0IG49ZS5kYXRlMTkwND09PSEwLHI9cXQoZS5iYXNlVGltZVVuaXQpPz9gZGF5c2AsaT1xdChlLm1ham9yVGltZVVuaXQpPz9yLGE9cXQoZS5taW5vclRpbWVVbml0KT8/cixvPShlLHQpPT5lPT1udWxsfHwhKGU+MCl8fCFOdW1iZXIuaXNGaW5pdGUoZSl8fHQhPT1gZGF5c2AmJiFOdW1iZXIuaXNJbnRlZ2VyKGUpP251bGw6ZSxzPW8oZS5tYWpvclVuaXQsaSksYz1vKGUubWlub3JVbml0LGEpLGw9ZT0+WHQoY3QoZSxuKSxyKSx1PUFycmF5KHQubGVuZ3RoKSxkPTEvMCxmPS0xLzAscD0xLzAsbT0tMS8wO2ZvcihsZXQgZT0wO2U8dC5sZW5ndGg7ZSsrKXtsZXQgbj10W2VdLHI9bChuKTt1W2VdPXIsZD1NYXRoLm1pbihkLHIpLGY9TWF0aC5tYXgoZixyKSxwPU1hdGgubWluKHAsbiksbT1NYXRoLm1heChtLG4pfWxldCBoPWUuZXhwbGljaXRNaW4sZz1lLmV4cGxpY2l0TWF4LF89aCE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKGgpP2woaCk6bnVsbCx2PWchPW51bGwmJk51bWJlci5pc0Zpbml0ZShnKT9sKGcpOm51bGwseT1lLmNyb3NzQmV0d2VlbiE9PSExLGI9Xz8/ZCx4PSh2Pz9mKSsgKyEheTt4PmJ8fChiLT0uNSx4Kz0uNSk7bGV0IFM9eC1iLEM9ZT0+KGwoZSktYikvUyx3PWUucmV2ZXJzZWQ/ZT0+MS1DKGUpOkMsVD1lPT4obChlKSsoeT8uNTowKS1iKS9TLEU9ZS5yZXZlcnNlZD9lPT4xLVQoZSk6VCxEPXQubWFwKEUpLE89dC5tYXAoKCk9PjEvUyksaz1oIT1udWxsJiZOdW1iZXIuaXNGaW5pdGUoaCk/aDpwLEE9ZyE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKGcpP2c6bSxqPShlLHQpPT57aWYodD09bnVsbClyZXR1cm5bXTtsZXQgcj1KdChjdChrLG4pLGUpLGk9bHQocixuKTtmb3IobGV0IGE9MDtpPGsmJmE8S3Q7YSsrKXtsZXQgYT1ZdChyLHQsZSksbz1sdChhLG4pO2lmKCEobz5pKSlyZXR1cm5bXTtyPWEsaT1vfWlmKGk8aylyZXR1cm5bXTtsZXQgYT1bXTtmb3IobGV0IG89MDtpPD1BJiZvPEt0O28rKyl7YS5wdXNoKHtzZXJpYWw6aSxmcmFjdGlvbjp3KGkpfSk7bGV0IG89WXQocix0LGUpLHM9bHQobyxuKTtpZighKHM+aSkpYnJlYWs7cj1vLGk9c31yZXR1cm4gYX0sTT1qKGkscyksTj1uZXcgU2V0KE0ubWFwKGU9PmwoZS5zZXJpYWwpKSk7cmV0dXJue3Bvc2l0aW9uczpELGNhdGVnb3J5QmFuZEZyYWN0aW9uczpPLG1ham9yVGlja3M6TSxtaW5vclRpY2tzOmM9PW51bGw/W106aihhLGMpLmZpbHRlcihlPT4hTi5oYXMobChlLnNlcmlhbCkpKX19ZnVuY3Rpb24gUXQoZSx0LG4scil7bGV0IGk9W1tdXSxhPTAsbz1lPT57aWYoIWUpcmV0dXJuIG51bGw7bGV0IHQ9ZS5zdGFydHNXaXRoKGAjYCk/ZS5zbGljZSgxKTplO3JldHVybi9eWzAtOUEtRmEtZl17Nn0oWzAtOUEtRmEtZl17Mn0pPyQvLnRlc3QodCk/YCMke3R9YDpudWxsfTtvdXRlcjpmb3IobGV0IHM9MDtzPHQucnVucy5sZW5ndGgmJnM8bm47cysrKXtsZXQgYz10LnJ1bnNbc10sbD1oZShjLmZvbnRTaXplSHB0LHQucHRUb1B4KT8/bix1PWMuZm9udEZhY2U/LnRyaW0oKS5yZXBsYWNlQWxsKGAiYCxgYCksZD11JiYhdS5zdGFydHNXaXRoKGArYCk/dTpudWxsLGY9dSYmdC5mb250RmFtaWx5Rm9yRmFjZT90LmZvbnRGYW1pbHlGb3JGYWNlKHUpOmQ/YCIke2R9IiwgQ2FsaWJyaSwgQXJpYWwsIHNhbnMtc2VyaWZgOnQuZm9udEZhbWlseSxwPWAke2MuYm9sZD8/dC5mYWxsYmFja0JvbGQ/YGJvbGQgYDpgYH0ke2x9cHggJHtmfWAsbT1vKGMuY29sb3IpPz9yLGg9YGAsZz0oKT0+e2gmJj0oZS5mb250PXAsaVtpLmxlbmd0aC0xXS5wdXNoKHt0ZXh0OmgsZm9udDpwLGZpbGxTdHlsZTptLHdpZHRoOmUubWVhc3VyZVRleHQoaCkud2lkdGgsZm9udFNpemVQeDpsfSksYGApfSxfPSExO2ZvcihsZXQgZSBvZiBjLnRleHQpe2lmKF8mJmU9PT1gCmApe189ITE7Y29udGludWV9Xz0hMTtsZXQgdD1lPT09YFxyYD9gCmA6ZTtpZihlPT09YFxyYCYmKF89ITApLGE+PWVuKXtnKCk7YnJlYWsgb3V0ZXJ9aWYoYSsrLHQ9PT1gCmApe2lmKGcoKSxpLmxlbmd0aD49dG4pYnJlYWsgb3V0ZXI7aS5wdXNoKFtdKX1lbHNlIGgrPXR9ZygpfWlmKCFpLnNvbWUoZT0+ZS5sZW5ndGg+MCkpcmV0dXJuIG51bGw7bGV0IHM9aS5tYXAoZT0+TWF0aC5tYXgobiwuLi5lLm1hcChlPT5lLmZvbnRTaXplUHgpKSoxLjE1KSxjPWkubWFwKGU9PmUucmVkdWNlKChlLHQpPT5lK3Qud2lkdGgsMCkpO3JldHVybntsaW5lczppLGxpbmVIZWlnaHRzOnMsbGluZVdpZHRoczpjLHdpZHRoOk1hdGgubWF4KDAsLi4uYyksaGVpZ2h0OnMucmVkdWNlKChlLHQpPT5lK3QsMCl9fWZ1bmN0aW9uICR0KGUsdCxuLHIsaT1gY2VudGVyYCxhPWBtaWRkbGVgKXtsZXQgbz1hPT09YHRvcGA/cjphPT09YGJvdHRvbWA/ci10LmhlaWdodDpyLXQuaGVpZ2h0LzI7Zm9yKGxldCByPTA7cjx0LmxpbmVzLmxlbmd0aDtyKyspe2xldCBzPXQubGluZXNbcl0sYz10LmxpbmVXaWR0aHNbcl0sbD1pPT09YGxlZnRgP246aT09PWByaWdodGA/bi1jOm4tYy8yLHU9YT09PWB0b3BgP286YT09PWBib3R0b21gP28rdC5saW5lSGVpZ2h0c1tyXTpvK3QubGluZUhlaWdodHNbcl0vMjtmb3IobGV0IHQgb2YgcyllLmZvbnQ9dC5mb250LGUuZmlsbFN0eWxlPXQuZmlsbFN0eWxlLGUudGV4dEFsaWduPWBsZWZ0YCxlLnRleHRCYXNlbGluZT1hLGUuZmlsbFRleHQodC50ZXh0LGwsdSksbCs9dC53aWR0aDtvKz10LmxpbmVIZWlnaHRzW3JdfX12YXIgZW4sdG4sbm4scm49dCgoKCk9PntGZSgpLGVuPTQwOTYsdG49NCxubj1lbn0pKTtmdW5jdGlvbiBhbihlKXtpZihlLmN1c3RvbVRleHQpcmV0dXJuIGUuY3VzdG9tVGV4dDtsZXQgdD1bXTtpZihlLnNob3dDYXRlZ29yeSYmZS5jYXRlZ29yeSYmdC5wdXNoKGUuY2F0ZWdvcnkpLGUuc2hvd1NlcmllcyYmZS5zZXJpZXNOYW1lJiZ0LnB1c2goZS5zZXJpZXNOYW1lKSxlLnNob3dWYWx1ZSYmZS5zb3VyY2VWYWx1ZSE9bnVsbCl7bGV0IG49ZS52YWx1ZURpdmlzb3IhPW51bGwmJk51bWJlci5pc0Zpbml0ZShlLnZhbHVlRGl2aXNvcikmJmUudmFsdWVEaXZpc29yPjA/ZS52YWx1ZURpdmlzb3I6MTt0LnB1c2goeXQoZS5zb3VyY2VWYWx1ZS9uLGUuZm9ybWF0Q29kZT8/bnVsbCxlLmRhdGUxOTA0KSl9cmV0dXJuIGUuc2hvd1BlcmNlbnQmJmUucGVyY2VudFJhdGlvIT1udWxsJiZ0LnB1c2goeXQoZS5wZXJjZW50UmF0aW8sZS5wZXJjZW50Rm9ybWF0Q29kZT8/ZS5mb3JtYXRDb2RlPz9gMCVgLGUuZGF0ZTE5MDQpKSx0LmZpbHRlcihlPT5lIT09YGApLmpvaW4oZS5zZXBhcmF0b3I/P2UuZGVmYXVsdFNlcGFyYXRvcj8/YCBgKX12YXIgb249dCgoKCk9PntEdCgpfSkpO0ZlKCk7ZnVuY3Rpb24gc24oZSx0LG4scixpLGEsbyl7aWYoIVtuLHIsaV0uZXZlcnkoTnVtYmVyLmlzRmluaXRlKXx8bjw9MHx8cjw9MHx8dC53PD0wfHx0Lmg8PTApcmV0dXJuIG51bGw7bGV0IHM9TWF0aC5tYXgoNCxpKi41KSxjPU1hdGgubWluKG4sTWF0aC5tYXgoMCx0LnctcyoyKSksbD1NYXRoLm1pbihyLHQuaCksdT10LngrdC53Ki43NSxkPXt4Om8/TWF0aC5tYXgodC54LE1hdGgubWluKHQueCt0LnctYyx1LWMpKTpNYXRoLm1heCh0LngsdC54K3Qudy1zLWMpLHk6bz9NYXRoLm1heCh0LnksTWF0aC5taW4odC55K3QuaC1sLG8ueS1sK2kqLjI1KSk6TWF0aC5taW4odC55K3QuaC1sLHQueStzKSx3OmMsaDpsfTtpZihhKXtsZXQgdD1PZShhLGUsZCk7aWYodClyZXR1cm57Li4udCxhdXRvbWF0aWM6ITF9fXJldHVybnsuLi5kLGF1dG9tYXRpYzohMH19ZnVuY3Rpb24gY24oZSx0LG4scil7aWYoISghdC5sZWdlbmRGaWxsQ29sb3ImJiF0LmxlZ2VuZExpbmVDb2xvcikpe2lmKGUuc2F2ZSgpLHQubGVnZW5kRmlsbENvbG9yJiYoZS5maWxsU3R5bGU9YCMke3QubGVnZW5kRmlsbENvbG9yfWAsZS5maWxsUmVjdChuLngsbi55LG4udyxuLmgpKSx0LmxlZ2VuZExpbmVDb2xvciYmbi53PjAmJm4uaD4wKXtsZXQgaT1ydCh0LmxlZ2VuZExpbmVXaWR0aEVtdSxyKTtlLnN0cm9rZVN0eWxlPWAjJHt0LmxlZ2VuZExpbmVDb2xvcn1gLGUubGluZVdpZHRoPWksZS5saW5lQ2FwPWBidXR0YCxlLmxpbmVKb2luPWBtaXRlcmAsZS5zZXRMaW5lRGFzaChbXSksZS5zdHJva2VSZWN0KG4ueCtpLzIsbi55K2kvMixNYXRoLm1heCgwLG4udy1pKSxNYXRoLm1heCgwLG4uaC1pKSl9ZS5yZXN0b3JlKCl9fXZhciBsbj10KCgoKT0+e3N0KCl9KSk7ZnVuY3Rpb24gdW4oZSx0KXtsZXQgbj1NYXRoLm1heChlLngsdC54KSxyPU1hdGgubWF4KGUueSx0LnkpLGk9TWF0aC5taW4oZS54K2Uudyx0LngrdC53KSxhPU1hdGgubWluKGUueStlLmgsdC55K3QuaCk7cmV0dXJuIGk+biYmYT5yP3t4Om4seTpyLHc6aS1uLGg6YS1yfTpudWxsfWZ1bmN0aW9uIGRuKGUsdCxuKXtyZXR1cm4gTWF0aC5taW4oTWF0aC5tYXgoZSx0KSxuKX1mdW5jdGlvbiBmbihlLHQsbixyLGksYT10KXtpZighZ24odCl8fCFnbihhKXx8IU51bWJlci5pc0Zpbml0ZShyKXx8cjw9MHx8IVtuLncsbi5oXS5ldmVyeShOdW1iZXIuaXNGaW5pdGUpfHxuLnc8MHx8bi5oPD0wKXJldHVybiBudWxsO2xldCBvPXIqLjUscz10LGMsbCx1PSExLGQ9YGNlbnRlcmAsZj1gbWlkZGxlYDtpZihlLmtpbmQ9PT1gcG9pbnRgKXtpZighW2UueCxlLnksZS5tYXJrZXJHYXA/PzBdLmV2ZXJ5KE51bWJlci5pc0Zpbml0ZSkpcmV0dXJuIG51bGw7bGV0IHQ9bytNYXRoLm1heCgwLGUubWFya2VyR2FwPz8wKTtzd2l0Y2goYz1lLngsbD1lLnksZS5wb3NpdGlvbj8/YHJgKXtjYXNlYGxgOmMtPXQrbi53LzIsZD1gcmlnaHRgO2JyZWFrO2Nhc2VgdGA6bC09dCtuLmgvMixmPWBib3R0b21gO2JyZWFrO2Nhc2VgYmA6bCs9dCtuLmgvMixmPWB0b3BgO2JyZWFrO2Nhc2VgY3RyYDpjYXNlYGluRW5kYDpjYXNlYGJlc3RGaXRgOmJyZWFrO2RlZmF1bHQ6Yys9dCtuLncvMixkPWBsZWZ0YDticmVha319ZWxzZSBpZihlLmtpbmQ9PT1gYm94YCl7aWYoIVtlLnJlY3QueCxlLnJlY3QueSxlLnJlY3QudyxlLnJlY3QuaF0uZXZlcnkoTnVtYmVyLmlzRmluaXRlKXx8ZS5yZWN0Lnc8PTB8fGUucmVjdC5oPD0wKXJldHVybiBudWxsO2xldCByPXVuKGUucmVjdCx0KTtpZighcilyZXR1cm4gbnVsbDtsZXQgaT1lLnBvc2l0aW9uPz9gY3RyYDtjPXIueCtyLncvMixsPXIueStyLmgvMixpPT09YGluQmFzZWA/KHM9e3g6ci54K28seTpyLnkrbyx3OnIudy1vLGg6ci5oLW99LGM9cy54K24udy8yLGw9cy55K24uaC8yLGQ9YGxlZnRgLGY9YHRvcGApOmk9PT1gaW5FbmRgPyhzPXt4OnIueCtvLHk6ci55LHc6ci53LW8saDpyLmgtb30sYz1zLngrbi53LzIsbD1zLnkrcy5oLW4uaC8yLGQ9YGxlZnRgLGY9YGJvdHRvbWApOmk9PT1gbGA/KHM9e3g6ci54K28seTpyLnkrbyx3OnIudy1vLGg6ci5oLW8qMn0sYz1zLngrbi53LzIsZD1gbGVmdGApOmk9PT1gcmB8fGk9PT1gb3V0RW5kYD8ocz17eDpyLngseTpyLnkrbyx3OnIudy1vLGg6ci5oLW8qMn0sYz1zLngrcy53LW4udy8yLGQ9YHJpZ2h0YCk6aT09PWB0YD8ocz17eDpyLngrbyx5OnIueStvLHc6ci53LW8qMixoOnIuaC1vfSxsPXMueStuLmgvMixmPWB0b3BgKTppPT09YGJgPyhzPXt4OnIueCtvLHk6ci55LHc6ci53LW8qMixoOnIuaC1vfSxsPXMueStzLmgtbi5oLzIsZj1gYm90dG9tYCk6cz17eDpyLngrbyx5OnIueStvLHc6ci53LW8qMixoOnIuaC1vKjJ9fWVsc2V7aWYoIVtlLnJlY3QueCxlLnJlY3QueSxlLnJlY3QudyxlLnJlY3QuaF0uZXZlcnkoTnVtYmVyLmlzRmluaXRlKXx8ZS5yZWN0Lnc8MHx8ZS5yZWN0Lmg8MClyZXR1cm4gbnVsbDtsZXQgcj1lLnBvc2l0aW9uPz9gb3V0RW5kYCxpPXI9PT1gaW5CYXNlYHx8cj09PWBpbkVuZGB8fHI9PT1gY3RyYDtpZih1PSFpLGkpe2xldCBuPXVuKGUucmVjdCx0KTtpZighbilyZXR1cm4gbnVsbDtzPW59ZWxzZSBpZihlLm9yaWVudGF0aW9uPT09YHZlcnRpY2FsYCYmZS5yZWN0Lnc8PTB8fGUub3JpZW50YXRpb249PT1gaG9yaXpvbnRhbGAmJmUucmVjdC5oPD0wKXJldHVybiBudWxsO2xldCBhPWUucmVjdC54K2UucmVjdC53LzIscD1lLnJlY3QueStlLnJlY3QuaC8yO2lmKGM9YSxsPXAsZS5vcmllbnRhdGlvbj09PWB2ZXJ0aWNhbGApe2xldCB0PWUubmVnYXRpdmU/ZS5yZWN0LnkrZS5yZWN0Lmg6ZS5yZWN0LnksaT1lLm5lZ2F0aXZlP2UucmVjdC55OmUucmVjdC55K2UucmVjdC5oO3I9PT1gaW5CYXNlYD8obD1pKyhlLm5lZ2F0aXZlPzE6LTEpKihvK24uaC8yKSxmPWUubmVnYXRpdmU/YHRvcGA6YGJvdHRvbWApOnI9PT1gaW5FbmRgPyhsPXQrKGUubmVnYXRpdmU/LTE6MSkqKG8rbi5oLzIpLGY9ZS5uZWdhdGl2ZT9gYm90dG9tYDpgdG9wYCk6ciE9PWBjdHJgJiYobD10KyhlLm5lZ2F0aXZlPzE6LTEpKihvK24uaC8yKSxmPWUubmVnYXRpdmU/YHRvcGA6YGJvdHRvbWApfWVsc2V7bGV0IHQ9ZS5uZWdhdGl2ZT9lLnJlY3QueDplLnJlY3QueCtlLnJlY3QudyxpPWUubmVnYXRpdmU/ZS5yZWN0LngrZS5yZWN0Lnc6ZS5yZWN0Lng7cj09PWBpbkJhc2VgPyhjPWkrKGUubmVnYXRpdmU/LTE6MSkqKG8rbi53LzIpLGQ9ZS5uZWdhdGl2ZT9gcmlnaHRgOmBsZWZ0YCk6cj09PWBpbkVuZGA/KGM9dCsoZS5uZWdhdGl2ZT8xOi0xKSoobytuLncvMiksZD1lLm5lZ2F0aXZlP2BsZWZ0YDpgcmlnaHRgKTpyIT09YGN0cmAmJihjPXQrKGUubmVnYXRpdmU/LTE6MSkqKG8rbi53LzIpLGQ9ZS5uZWdhdGl2ZT9gcmlnaHRgOmBsZWZ0YCl9fWxldCBwPU1hdGgubWF4KDIsciouNSksbT1NYXRoLm1heCgyLHIqLjkpO2lmKHMudzxwfHxzLmg8bSlyZXR1cm4gbnVsbDtsZXQgaD17eDpjLU1hdGgubWluKG4udyxzLncpLzIseTpsLU1hdGgubWluKG4uaCxzLmgpLzIsdzpNYXRoLm1pbihuLncscy53KSxoOk1hdGgubWluKG4uaCxzLmgpfTtpZihpKXtsZXQgZT1PZShpLGEsaCk7aWYoIWUpcmV0dXJuIG51bGw7aD1lLGQ9YGNlbnRlcmAsZj1gbWlkZGxlYDtsZXQgbj11bihlLHQpO2lmKCFufHwocz1uLHMudzxwfHxzLmg8bSkpcmV0dXJuIG51bGx9bGV0IGc9TWF0aC5taW4oTWF0aC5tYXgocCxoLncpLHMudyksXz1NYXRoLm1pbihNYXRoLm1heChtLGguaCkscy5oKSx2PWcvMix5PV8vMixiPXV8fGk/aC54K2gudy8yOmRuKGgueCtoLncvMixzLngrdixzLngrcy53LXYpLHg9dXx8aT9oLnkraC5oLzI6ZG4oaC55K2guaC8yLHMueSt5LHMueStzLmgteSk7cmV0dXJuW2IseF0uZXZlcnkoTnVtYmVyLmlzRmluaXRlKT97eDpkPT09YGxlZnRgP2ItdjpkPT09YHJpZ2h0YD9iK3Y6Yix5OmY9PT1gdG9wYD94LXk6Zj09PWBib3R0b21gP3greTp4LHRleHRBbGlnbjpkLHRleHRCYXNlbGluZTpmLG1heFdpZHRoOnMudyxtYXhIZWlnaHQ6cy5oLGNsaXA6cyxyZWN0Omh9Om51bGx9ZnVuY3Rpb24gcG4oZSx0LG4pe2lmKG4oZSk8PXQpcmV0dXJuIGU7aWYobihg4oCmYCk+dClyZXR1cm5gYDtsZXQgcj0wLGk9QXJyYXkuZnJvbShlKSxhPWkubGVuZ3RoO2Zvcig7cjxhOyl7bGV0IGU9TWF0aC5jZWlsKChyK2EpLzIpO24oYCR7aS5zbGljZSgwLGUpLmpvaW4oYGApfeKApmApPD10P3I9ZTphPWUtMX1yZXR1cm5gJHtpLnNsaWNlKDAscikuam9pbihgYCl94oCmYH1mdW5jdGlvbiBtbihlKXtsZXQgdD1gYCxuPTA7Zm9yKGxldCByIG9mIGUpe2lmKG4+PV9uKXJldHVybnt2YWx1ZTp0LHRydW5jYXRlZDohMH07dCs9cixuKyt9cmV0dXJue3ZhbHVlOnQsdHJ1bmNhdGVkOiExfX1mdW5jdGlvbiBobihlLHQsbixyLGkpe2lmKCFbdCxuLHJdLmV2ZXJ5KE51bWJlci5pc0Zpbml0ZSl8fHQ8PTB8fG48cnx8cjw9MClyZXR1cm5bXTtsZXQgYT1NYXRoLm1heCgxLE1hdGgubWluKHZuLE1hdGguZmxvb3Iobi9yKSkpLG89bW4oZSkscz1vLnZhbHVlLnNwbGl0KC9ccj9cbi8pLGM9W10sbD1vLnRydW5jYXRlZCx1PWU9PntsZXQgbj1bXSxyPWBgO2ZvcihsZXQgYSBvZiBBcnJheS5mcm9tKGUpKXtsZXQgZT1gJHtyfSR7YX1gO3ImJmkoZSk+dD8obi5wdXNoKHIpLHI9YSk6cj1lfXJldHVybiByJiZuLnB1c2gociksbi5maWx0ZXIoZT0+aShlKTw9dCl9O2ZvcihsZXQgZSBvZiBzKXtpZihpKGUpPD10KXtjLnB1c2goZSk7Y29udGludWV9bGV0IG49ZS5tYXRjaCgvXFMrXHMqfFxzKy9nKT8/W107aWYobi5sZW5ndGg8PTEpYy5wdXNoKC4uLnUoZSkpO2Vsc2V7bGV0IGU9YGA7Zm9yKGxldCByIG9mIG4pe2xldCBuPWAke2V9JHtyfWA7aWYoaShuKTw9dCllPW47ZWxzZXtlJiZjLnB1c2goZSk7bGV0IHQ9dShyKTtlPXQucG9wKCk/P2BgLGMucHVzaCguLi50KX19ZSYmYy5wdXNoKGUpfX1sfHw9Yy5sZW5ndGg+YTtsZXQgZD1jLnNsaWNlKDAsYSk7cmV0dXJuIGwmJmQubGVuZ3RoPjAmJiFkW2QubGVuZ3RoLTFdLmVuZHNXaXRoKGDigKZgKSYmKGRbZC5sZW5ndGgtMV09cG4oYCR7ZFtkLmxlbmd0aC0xXX3igKZgLHQsaSkpLGR9dmFyIGduLF9uLHZuLHluPXQoKCgpPT57RmUoKSxnbj1lPT5bZS54LGUueSxlLncsZS5oXS5ldmVyeShOdW1iZXIuaXNGaW5pdGUpJiZlLnc+MCYmZS5oPjAsX249NDA5Nix2bj00fSkpO2Z1bmN0aW9uIGJuKGUsdCl7cmV0dXJuW01hdGgubWF4KDEsTWF0aC5jZWlsKGUpKSxNYXRoLm1heCgxLE1hdGguY2VpbCh0KSldfWZ1bmN0aW9uIHhuKGUsdCl7bGV0W24scl09Ym4oZSx0KTtpZih0eXBlb2YgT2Zmc2NyZWVuQ2FudmFzPGB1YClyZXR1cm4gbmV3IE9mZnNjcmVlbkNhbnZhcyhuLHIpO2lmKHR5cGVvZiBkb2N1bWVudDxgdWApe2xldCBlPWRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoYGNhbnZhc2ApO3JldHVybiBlLndpZHRoPW4sZS5oZWlnaHQ9cixlfXJldHVybiBudWxsfWZ1bmN0aW9uIFNuKGUsdCxuKXtsZXRbcixpXT1ibih0LG4pO2lmKHR5cGVvZiBPZmZzY3JlZW5DYW52YXM8YHVgKXRyeXtyZXR1cm4gbmV3IE9mZnNjcmVlbkNhbnZhcyhyLGkpfWNhdGNoe31pZih0eXBlb2YgZG9jdW1lbnQ8YHVgKXRyeXtsZXQgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBjYW52YXNgKTtyZXR1cm4gZS53aWR0aD1yLGUuaGVpZ2h0PWksZX1jYXRjaHt9dHJ5e2xldCB0PWUuY2FudmFzPy5jb25zdHJ1Y3RvcjtyZXR1cm4gdHlwZW9mIHQ9PWBmdW5jdGlvbmA/bmV3IHQocixpKTpudWxsfWNhdGNoe3JldHVybiBudWxsfX1jb25zdCBDbj17cGN0NTpbMCwxNiwwLDAsMCwxLDAsMF0scGN0MTA6WzEzNiwwLDM0LDAsMTM2LDAsMzQsMF0scGN0MjA6WzEzNiwzNCwxMzYsMzQsMTM2LDM0LDEzNiwzNF0scGN0MjU6WzEzNiw4NSwzNCw4NSwxMzYsODUsMzQsODVdLHBjdDMwOlsxNzAsODUsMTcwLDg1LDE3MCw4NSwxNzAsODVdLHBjdDQwOlsxNzAsMTE5LDE3MCwyMjEsMTcwLDExOSwxNzAsMjIxXSxwY3Q1MDpbMTcwLDg1LDE3MCw4NSwxNzAsODUsMTcwLDg1XSxwY3Q2MDpbMjIxLDg1LDExOSw4NSwyMjEsODUsMTE5LDg1XSxwY3Q3MDpbMjM4LDg1LDE4Nyw4NSwyMzgsODUsMTg3LDg1XSxwY3Q3NTpbMjM4LDE3MCwxODcsMTcwLDIzOCwxNzAsMTg3LDE3MF0scGN0ODA6WzI1NCwyMzksMjUxLDE5MSwyNTQsMjM5LDI1MSwxOTFdLHBjdDkwOlsyNTUsMjM5LDI1NSwyNTEsMjU1LDIzOSwyNTUsMjUxXSxob3J6OlsyNTUsMCwwLDAsMjU1LDAsMCwwXSx2ZXJ0OlsxMzYsMTM2LDEzNiwxMzYsMTM2LDEzNiwxMzYsMTM2XSxsdEhvcno6WzAsMjU1LDAsMCwwLDAsMCwwXSxsdFZlcnQ6WzMyLDMyLDMyLDMyLDMyLDMyLDMyLDMyXSxka0hvcno6WzI1NSwyNTUsMCwwLDI1NSwyNTUsMCwwXSxka1ZlcnQ6WzIwNCwyMDQsMjA0LDIwNCwyMDQsMjA0LDIwNCwyMDRdLG5hckhvcno6WzI1NSwwLDI1NSwwLDI1NSwwLDI1NSwwXSxuYXJWZXJ0OlsxNzAsMTcwLDE3MCwxNzAsMTcwLDE3MCwxNzAsMTcwXSxjcm9zczpbMjU1LDEzNiwxMzYsMTM2LDI1NSwxMzYsMTM2LDEzNl0sbGdHcmlkOlsyNTUsMTI4LDEyOCwxMjgsMTI4LDEyOCwxMjgsMTI4XSxzbUdyaWQ6WzI1NSwxMzYsMTM2LDEzNiwyNTUsMTM2LDEzNiwxMzZdLGRvdEdyaWQ6WzEzNiwwLDAsMCwxMzYsMCwwLDBdLGRuRGlhZzpbMTI4LDY0LDMyLDE2LDgsNCwyLDFdLHVwRGlhZzpbMSwyLDQsOCwxNiwzMiw2NCwxMjhdLGx0RG5EaWFnOlsxMzYsNjgsMzQsMTcsMTM2LDY4LDM0LDE3XSxsdFVwRGlhZzpbMTcsMzQsNjgsMTM2LDE3LDM0LDY4LDEzNl0sZGtEbkRpYWc6WzE5NSwxMjksMCwxMjksMTk1LDEyOSwwLDEyOV0sZGtVcERpYWc6WzE5NSwxMjksMCwxMjksMTk1LDEyOSwwLDEyOV0sd2REbkRpYWc6WzEyOCw2NCwzMiwxNiw4LDQsMiwxMjldLHdkVXBEaWFnOlsxLDIsNCw4LDE2LDMyLDY0LDEyOV0sZGlhZ0Nyb3NzOlsxMjksNjYsMzYsMjQsMjQsMzYsNjYsMTI5XSxob3J6QnJpY2s6WzI1NSwxNiwxNiwxNiwyNTUsMSwxLDFdLGRpYWdCcmljazpbMTI5LDY2LDM2LDI0LDM2LDY2LDEyOSwwXSxsZ0NoZWNrOlsyNDAsMjQwLDI0MCwyNDAsMTUsMTUsMTUsMTVdLHNtQ2hlY2s6WzIwNCwyMDQsNTEsNTEsMjA0LDIwNCw1MSw1MV0sdHJlbGxpczpbMTY1LDkwLDE2NSw5MCwxNjUsOTAsMTY1LDkwXX07ZnVuY3Rpb24gd24oZSx0LG4pe2xldCByPUNuW2VdO2lmKCFyKXJldHVybiBudWxsO2xldCBpPXhuKDgsOCk7aWYoIWkpcmV0dXJuIG51bGw7bGV0IGE9aS5nZXRDb250ZXh0KGAyZGApO2lmKCFhKXJldHVybiBudWxsO2EuZmlsbFN0eWxlPVRuKG4pLGEuZmlsbFJlY3QoMCwwLDgsOCksYS5maWxsU3R5bGU9VG4odCk7Zm9yKGxldCBlPTA7ZTw4O2UrKyl7bGV0IHQ9cltlXTtmb3IobGV0IG49MDtuPDg7bisrKXQmMTw8Ny1uJiZhLmZpbGxSZWN0KG4sZSwxLDEpfXJldHVybiBpfWZ1bmN0aW9uIFRuKGUpe3JldHVybmByZ2JhKCR7cGFyc2VJbnQoZS5zbGljZSgwLDIpLDE2KX0sJHtwYXJzZUludChlLnNsaWNlKDIsNCksMTYpfSwke3BhcnNlSW50KGUuc2xpY2UoNCw2KSwxNil9LCR7ZS5sZW5ndGg+PTg/cGFyc2VJbnQoZS5zbGljZSg2LDgpLDE2KS8yNTU6MX0pYH1mdW5jdGlvbiBFbihlLHQpe3JldHVybiBlLm1hcChlPT5lKnQpfWZ1bmN0aW9uIERuKGUsdCl7bGV0IG49QW5bZV07cmV0dXJuIG4/RW4obix0KTpbXX1mdW5jdGlvbiBPbihlLHQpe2xldCBuPWpuW2VdO3JldHVybiBuP0VuKG4sdCk6W119ZnVuY3Rpb24ga24oZSx0KXtsZXQgbj1PbihlLHQpO2lmKG4ubGVuZ3RoPjApcmV0dXJuIG47bGV0IHI9ZS50cmltKCkuc3BsaXQoL1tccyxdKy8pLm1hcChOdW1iZXIpO3JldHVybiByLmxlbmd0aD49MiYmci5ldmVyeShlPT5OdW1iZXIuaXNGaW5pdGUoZSkmJmU+PTApJiZyLnNvbWUoZT0+ZT4wKT8oci5sZW5ndGglMiE9MCYmci5wb3AoKSxFbihyLHQpKTpbXX12YXIgQW4sam4sTW49dCgoKCk9PntBbj17ZG90dGVkOlsxLDJdLGRhc2hlZDpbMywyXSxkYXNoU21hbGxHYXA6WzMsMV0sZG90RGFzaDpbMSwyLDMsMl0sZG90RG90RGFzaDpbMSwyLDEsMiwzLDJdLGRhc2hEb3RTdHJva2VkOlsxLDIsMywyXX0sam49e2Rhc2g6WzYsM10sZG90OlsxLjUsM10sZGFzaERvdDpbNiwzLDEuNSwzXSxsZ0Rhc2g6WzEwLDRdLGxnRGFzaERvdDpbMTAsNCwxLjUsNF0sbGdEYXNoRG90RG90OlsxMCw0LDEuNSw0LDEuNSw0XSxzeXNEYXNoOls0LDJdLHN5c0RvdDpbMSwyXSxzeXNEYXNoRG90Ols0LDIsMSwyXSxzeXNEYXNoRG90RG90Ols0LDIsMSwyLDEsMl19fSkpO01uKCk7ZnVuY3Rpb24gTm4oZSx0LG4scixpLGEsbyl7bGV0IHM9ZS50aWxlUmVjdDtpZighc3x8KHMubD8/MCk9PT0wJiYocy50Pz8wKT09PTAmJihzLnI/PzApPT09MCYmKHMuYj8/MCk9PT0wKXJldHVybiBudWxsO2xldCBjPW4raSoocy5sPz8wKSxsPXIrYSoocy50Pz8wKSx1PWkqKDEtKHMubD8/MCktKHMucj8/MCkpLGQ9YSooMS0ocy50Pz8wKS0ocy5iPz8wKSk7aWYoIU51bWJlci5pc0Zpbml0ZSh1KXx8IU51bWJlci5pc0Zpbml0ZShkKXx8TWF0aC5hYnModSk8MWUtOXx8TWF0aC5hYnMoZCk8MWUtOSlyZXR1cm4gbnVsbDtsZXQgZj1NYXRoLm1pbigxLDUxMi9NYXRoLmFicyh1KSw1MTIvTWF0aC5hYnMoZCkpLHA9TWF0aC5tYXgoMSxNYXRoLmNlaWwoTWF0aC5hYnModSkqZikpLG09TWF0aC5tYXgoMSxNYXRoLmNlaWwoTWF0aC5hYnMoZCkqZikpLGg9U24odCxwLG0pLGc9aD8uZ2V0Q29udGV4dChgMmRgKTtpZighaHx8IWcpcmV0dXJuIG51bGw7bGV0IF89TG4oey4uLmUsdGlsZVJlY3Q6dm9pZCAwLGZsaXA6dm9pZCAwfSxnLDAsMCxwLG0sbyk7aWYoIV8pcmV0dXJuIG51bGw7Zy5maWxsU3R5bGU9XyxnLmZpbGxSZWN0KDAsMCxwLG0pO2xldCB2PWUuZmxpcD09PWB4YHx8ZS5mbGlwPT09YHh5YCx5PWUuZmxpcD09PWB5YHx8ZS5mbGlwPT09YHh5YCxiPWg7aWYodnx8eSl7bGV0IGU9U24odCxwKih2PzI6MSksbSooeT8yOjEpKSxuPWU/LmdldENvbnRleHQoYDJkYCk7aWYoIWV8fCFuKXJldHVybiBudWxsO2ZvcihsZXQgZT0wO2U8KHk/MjoxKTtlKz0xKWZvcihsZXQgdD0wO3Q8KHY/MjoxKTt0Kz0xKW4uc2F2ZSgpLG4udHJhbnNsYXRlKHQqcCxlKm0pLG4uc2NhbGUodD09PTE/LTE6MSxlPT09MT8tMToxKSxuLmRyYXdJbWFnZShoLHQ9PT0xPy1wOjAsZT09PTE/LW06MCksbi5yZXN0b3JlKCk7Yj1lfWxldCB4PXQuY3JlYXRlUGF0dGVybihiLGByZXBlYXRgKTtyZXR1cm4heHx8dHlwZW9mIHguc2V0VHJhbnNmb3JtIT1gZnVuY3Rpb25gP251bGw6KHguc2V0VHJhbnNmb3JtKHthOnUvcCxiOjAsYzowLGQ6ZC9tLGU6YyxmOmx9KSx4KX1mdW5jdGlvbiBQbihlLHQ9MSl7bGV0IG49ZS5jaGFyQ29kZUF0KDApPT09MzU/ZS5zbGljZSgxKTplO3JldHVybmByZ2JhKCR7cGFyc2VJbnQobi5zbGljZSgwLDIpLDE2KX0sJHtwYXJzZUludChuLnNsaWNlKDIsNCksMTYpfSwke3BhcnNlSW50KG4uc2xpY2UoNCw2KSwxNil9LCR7bi5sZW5ndGg+PTg/cGFyc2VJbnQobi5zbGljZSg2LDgpLDE2KS8yNTU6dH0pYH1mdW5jdGlvbiBGbihlKXtsZXQgdD1lLmNoYXJDb2RlQXQoMCk9PT0zNT9lLnNsaWNlKDEpOmUsbj1wYXJzZUludCh0LnNsaWNlKDAsMiksMTYpLHI9cGFyc2VJbnQodC5zbGljZSgyLDQpLDE2KSxpPXBhcnNlSW50KHQuc2xpY2UoNCw2KSwxNik7cmV0dXJuIC4yOTkqbisuNTg3KnIrLjExNCppfWZ1bmN0aW9uIEluKGUpe3JldHVybiBlJiZGbihlKTwxMjg/YCNGRkZGRkZgOmAjMDAwMDAwYH1mdW5jdGlvbiBMbihlLHQsbixyLGksYSxvPTApe2lmKCFlfHxlLmZpbGxUeXBlPT09YG5vbmVgKXJldHVybiBudWxsO2lmKGUuZmlsbFR5cGU9PT1gc29saWRgKXJldHVybiBQbihlLmNvbG9yKTtpZihlLmZpbGxUeXBlPT09YHBhdHRlcm5gKXJldHVybiB6bihlLHQpO2lmKGUuZmlsbFR5cGU9PT1gZ3JhZGllbnRgKXtsZXQgcz1lLnN0b3BzO2lmKHMubGVuZ3RoPT09MClyZXR1cm4gbnVsbDtpZihzLmxlbmd0aD09PTEpcmV0dXJuIFBuKHNbMF0uY29sb3IpO2xldCBjPU5uKGUsdCxuLHIsaSxhLG8pO2lmKGMpcmV0dXJuIGM7bGV0IGwsdT1lLnRpbGVSZWN0LGQ9bitpKih1Py5sPz8wKSxmPXIrYSoodT8udD8/MCkscD1pKigxLSh1Py5sPz8wKS0odT8ucj8/MCkpLG09YSooMS0odT8udD8/MCktKHU/LmI/PzApKTtpZihlLmdyYWRUeXBlPT09YHJhZGlhbGApe2xldCBuPWUuZmlsbFRvUmVjdCxyPWQrcCoobj8ubD8/MCksaT1mK20qKG4/LnQ/PzApLGE9cCooMS0obj8ubD8/MCktKG4/LnI/PzApKSxvPW0qKDEtKG4/LnQ/PzApLShuPy5iPz8wKSkscz1yK2EvMixjPWkrby8yLHU9TWF0aC5tYXgoTWF0aC5hYnMocy1kKSxNYXRoLmFicyhkK3AtcykpLGg9TWF0aC5tYXgoTWF0aC5hYnMoYy1mKSxNYXRoLmFicyhmK20tYykpLGc9ZS5wYXRoPT09YHJlY3RgP01hdGgubWF4KHUsaCk6TWF0aC5zcXJ0KHUqdStoKmgpO2w9dC5jcmVhdGVSYWRpYWxHcmFkaWVudChzLGMsMCxzLGMsTWF0aC5tYXgoZywxZS05KSl9ZWxzZXtsZXQgbj0oZS5yb3RXaXRoU2hhcGU9PT0hMT9lLmFuZ2xlLW86ZS5hbmdsZSkqTWF0aC5QSS8xODAscj1NYXRoLmNvcyhuKSxpPU1hdGguc2luKG4pO2lmKGUuc2NhbGVkPT09ITApe3IqPXAsaSo9bTtsZXQgZT1NYXRoLmh5cG90KHIsaSk7ZT4wJiYoci89ZSxpLz1lKX1sZXQgYT1kK3AvMixzPWYrbS8yLGM9KE1hdGguYWJzKHIpKnArTWF0aC5hYnMoaSkqbSkvMjtsPXQuY3JlYXRlTGluZWFyR3JhZGllbnQoYS1yKmMscy1pKmMsYStyKmMscytpKmMpfWZvcihsZXQgZSBvZiBzKWwuYWRkQ29sb3JTdG9wKE1hdGgubWluKDEsTWF0aC5tYXgoMCxlLnBvc2l0aW9uKSksUG4oZS5jb2xvcikpO3JldHVybiBsfXJldHVybiBudWxsfWNvbnN0IFJuPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIHpuKGUsdCl7bGV0IG49YCR7ZS5wcmVzZXR9fCR7ZS5mZ318JHtlLmJnfWAscj1Sbi5nZXQodCk7cnx8KHI9bmV3IE1hcCxSbi5zZXQodCxyKSk7bGV0IGk9ci5nZXQobik7aWYoaSlyZXR1cm4gaTtsZXQgYT13bihlLnByZXNldCxlLmZnLGUuYmcpO2lmKCFhKXJldHVybiBQbihlLmZnKTtsZXQgbz10LmNyZWF0ZVBhdHRlcm4oYSxgcmVwZWF0YCk7cmV0dXJuIG8/KHIuc2V0KG4sbyksbyk6UG4oZS5mZyl9ZnVuY3Rpb24gQm4oZSx0LG4pe2lmKCF0KXtlLnN0cm9rZVN0eWxlPWB0cmFuc3BhcmVudGAsZS5saW5lV2lkdGg9MCxlLnNldExpbmVEYXNoKFtdKSxlLmxpbmVDYXA9YGJ1dHRgLGUubGluZUpvaW49YG1pdGVyYCxlLm1pdGVyTGltaXQ9MTA7cmV0dXJufWUuc3Ryb2tlU3R5bGU9UG4odC5jb2xvcik7bGV0IHI9TWF0aC5tYXgoLjUsdC53aWR0aCpuKTtlLmxpbmVXaWR0aD1yO2xldCBpPXQuY3VzdG9tRGFzaD90LmN1c3RvbURhc2guZmxhdE1hcChlPT5bTWF0aC5tYXgoMCxlLmRhc2gpKnIsTWF0aC5tYXgoMCxlLnNwYWNlKSpyXSk6dC5kYXNoU3R5bGU/a24odC5kYXNoU3R5bGUscik6W10sYT10LmxpbmVDYXA/P2BidXR0YCxvPWkuc29tZSgoZSx0KT0+dCUyPT0wJiZlPT09MCk7ZS5saW5lQ2FwPWE9PT1gYnV0dGAmJm8/YHNxdWFyZWA6YSxlLmxpbmVKb2luPXQubGluZUpvaW4/P2BtaXRlcmAsZS5taXRlckxpbWl0PXQubWl0ZXJMaW1pdD8/MTAsZS5zZXRMaW5lRGFzaChpKX1mdW5jdGlvbiBWbihlKXtyZXR1cm4gZS5yb3RhdGlvblg9PT0xNSYmZS5yb3RhdGlvblk9PT0yMCYmZS5yaWdodEFuZ2xlQXhlcz09PSExJiZlLnBlcnNwZWN0aXZlPT09MzB9ZnVuY3Rpb24gSG4oZSl7cmV0dXJuIFZuKGUpPzI6MX1mdW5jdGlvbiBVbihlLHQpe2xldCBuPWUucmVwbGFjZSgvXiMvLGBgKTtpZighL15bMC05YS1mXXs2fSQvaS50ZXN0KG4pfHwhTnVtYmVyLmlzRmluaXRlKHQpKXJldHVybiBlO2xldCByPU1hdGgubWF4KDAsdCksaT1lPT5NYXRoLm1heCgwLE1hdGgubWluKDI1NSxNYXRoLnJvdW5kKE51bWJlci5wYXJzZUludChuLnNsaWNlKGUsZSsyKSwxNikqcikpKS50b1N0cmluZygxNikucGFkU3RhcnQoMixgMGApO3JldHVybmAjJHtpKDApfSR7aSgyKX0ke2koNCl9YC50b1VwcGVyQ2FzZSgpfWZ1bmN0aW9uIFduKGUsdCl7bGV0IG49ZS5yZXBsYWNlKC9eIy8sYGApO2lmKCEvXlswLTlhLWZdezZ9JC9pLnRlc3Qobil8fCFOdW1iZXIuaXNGaW5pdGUodCkpcmV0dXJuIGU7bGV0IHI9TWF0aC5tYXgoLTEsTWF0aC5taW4oMSx0KSksaT1lPT57bGV0IHQ9cW4oTnVtYmVyLnBhcnNlSW50KG4uc2xpY2UoZSxlKzIpLDE2KS8yNTUpLGk9cjwwP3QqKDErcik6dCooMS1yKStyO3JldHVybiBNYXRoLnJvdW5kKE1hdGgubWF4KDAsTWF0aC5taW4oMSxKbihpKSkpKjI1NSkudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDIsYDBgKX07cmV0dXJuYCMke2koMCl9JHtpKDIpfSR7aSg0KX1gLnRvVXBwZXJDYXNlKCl9ZnVuY3Rpb24gR24oZSx0LG4scil7aWYoZS5sZW5ndGg8Nnx8dDwwfHxuPD0wKXJldHVybiBudWxsO2xldCBpPWVbdCU2XTtpZighaSlyZXR1cm4gbnVsbDtpZighWzIsMTAsMTgsMjYsMzQsNDJdLmluY2x1ZGVzKHI/Py0xKSlyZXR1cm5gIyR7aX1gLnRvVXBwZXJDYXNlKCk7bGV0IGE9TWF0aC5mbG9vcihuLzYpO3JldHVybiBXbihpLC0uNysxLjQqKChNYXRoLmZsb29yKHQvNikrMSkvKGErMikpKX1mdW5jdGlvbiBLbihlKXtpZighZSlyZXR1cm4gMTtsZXQgdD1lLno8MD97eDotZS54LHk6LWUueSx6Oi1lLnp9OmUsbj17eDouMjQseTouNDIsejouODh9LHI9TWF0aC5oeXBvdChuLngsbi55LG4ueiksaT1NYXRoLm1heCgwLCh0Lngqbi54K3QueSpuLnkrdC56Km4ueikvcik7cmV0dXJuIE1hdGgubWF4KC40OCxNYXRoLm1pbigxLjIyLC40OCsuNzgqaSkpfXZhciBxbixKbixZbj10KCgoKT0+e3FuPWU9PmU8PS4wNDA0NT9lLzEyLjkyOigoZSsuMDU1KS8xLjA1NSkqKjIuNCxKbj1lPT5lPD0uMDAzMTMwOD9lKjEyLjkyOjEuMDU1KmUqKigxLzIuNCktLjA1NX0pKTtmdW5jdGlvbiBYbihlLHQsbixyLGkpe2xldCBhPU51bWJlci5pc0Zpbml0ZShlKSYmZT4wP2U6MCxvPU51bWJlci5pc0Zpbml0ZSh0KT90cih0LDAsNTAwKToxNTAscz1NYXRoLm1heCgxLE1hdGgudHJ1bmMocikpLGM9dHIoTWF0aC50cnVuYyhuKSwwLHMtMSksbD1pPzE6cyx1PWEvKGwrby8xMDApO3JldHVybntvZmZzZXQ6KGEtdSpsKS8yKyhpPzA6Yyp1KSxzaXplOnV9fWZ1bmN0aW9uIFpuKGUsdCxuKXtpZighW2UsdCxuXS5ldmVyeShOdW1iZXIuaXNGaW5pdGUpKXJldHVybiAxO2xldCByPWU+PTA/bjp0O3JldHVybiAxLU1hdGgubWluKDEsTWF0aC5hYnMoZSkvTWF0aC5tYXgoTnVtYmVyLk1JTl9WQUxVRSxNYXRoLmFicyhyKSkpfWZ1bmN0aW9uIFFuKGUsdCxuLHI9LjA2KXtpZighdC5sZW5ndGh8fHQubGVuZ3RoPjFlNXx8IVtuLngsbi55LG4udyxuLmhdLmV2ZXJ5KE51bWJlci5pc0Zpbml0ZSl8fG4udzw9MHx8bi5oPD0wKXJldHVybiBlO2xldCBpPXQubWFwKHQ9PmUucHJvamVjdCh0LngsdC55LHQuZGVwdGgpKTtpZighaS5ldmVyeShlPT5OdW1iZXIuaXNGaW5pdGUoZS54KSYmTnVtYmVyLmlzRmluaXRlKGUueSkpKXJldHVybiBlO2xldCBhPTEvMCxvPS0xLzAscz0xLzAsYz0tMS8wO2ZvcihsZXQgZSBvZiBpKWE9TWF0aC5taW4oYSxlLngpLG89TWF0aC5tYXgobyxlLngpLHM9TWF0aC5taW4ocyxlLnkpLGM9TWF0aC5tYXgoYyxlLnkpO2xldCBsPW8tYSx1PWMtcztpZighKGw+MioqLTUyKXx8ISh1PjIqKi01MikpcmV0dXJuIGU7bGV0IGQ9dHIoZXIociwuMDYpLDAsLjQ1KSxmPW4udyooMS0yKmQpLHA9bi5oKigxLTIqZCksbT1NYXRoLm1pbihmL2wscC91KTtpZighKG0+MCl8fCFOdW1iZXIuaXNGaW5pdGUobSkpcmV0dXJuIGU7bGV0IGg9e3g6KGErbykvMix5OihzK2MpLzJ9LGc9e3g6bi54K24udy8yLHk6bi55K24uaC8yfSxfPWUucHJvamVjdCx2PShlLHQsbik9PntsZXQgcj1fKGUsdCxuKTtyZXR1cm57eDpnLngrKHIueC1oLngpKm0seTpnLnkrKHIueS1oLnkpKm19fTtyZXR1cm57Li4uZSxwcm9qZWN0OnYsZGVwdGhYOmUuZGVwdGhYKm0sZGVwdGhZOmUuZGVwdGhZKm19fWZ1bmN0aW9uICRuKGUsdCxuPXt9KXtpZighW3QueCx0LnksdC53LHQuaF0uZXZlcnkoTnVtYmVyLmlzRmluaXRlKXx8dC53PD0wfHx0Lmg8PTApcmV0dXJuIG51bGw7bGV0IHI9dHIoZXIoZS5yb3RhdGlvblgsMTUpLC05MCw5MCksaT0odHIoZXIoZS5yb3RhdGlvblksMjApLDAsMzYwKSsxODApJTM2MC0xODAsYT10cihlcihlLmRlcHRoUGVyY2VudCwxMDApLDIwLDJlMyksbz10cihlcihlLnBlcnNwZWN0aXZlLDMwKSwwLDI0MCkscz10cihlcihlLmdhcERlcHRoUGVyY2VudCwxNTApLDAsNTAwKSxjPWUuaGVpZ2h0UGVyY2VudCE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKGUuaGVpZ2h0UGVyY2VudCk/dHIoZS5oZWlnaHRQZXJjZW50LDUsNTAwKTpudWxsLGw9bi5zY2VuZUhlaWdodFNjYWxlIT1udWxsJiZOdW1iZXIuaXNGaW5pdGUobi5zY2VuZUhlaWdodFNjYWxlKT90cihuLnNjZW5lSGVpZ2h0U2NhbGUqMTAwLDUsNTAwKTpudWxsLHU9Yz8/bCxkPXQ7aWYodSE9bnVsbCl7bGV0IGU9dS8xMDAsbj1NYXRoLm1pbih0LncsdC5oL2UpLHI9biplO2Q9e3g6dC54Kyh0LnctbikvMix5OnQueSsodC5oLXIpLzIsdzpuLGg6cn19bGV0IGY9TWF0aC5QSS8xODAscD10cihlcihuLnNjZW5lRGVwdGhTY2FsZSwuMSksLjAxLDIpLG09ZC53KnAqKGEvMTAwKSxoPWQueCtkLncvMixnPWQueStkLmgvMixfPS1pKmYsdj1yKmYseT1NYXRoLmNvcyhfKSxiPU1hdGguc2luKF8pLHg9TWF0aC5jb3ModiksUz1NYXRoLnNpbih2KSxDPWUucmlnaHRBbmdsZUF4ZXMhPT0hMCYmbz4wLHc9dHIobyouMjUsLjI1LDYwKSpmLFQ9dHIoZXIobi5wZXJzcGVjdGl2ZVRhbmdlbnRHYWluLDIpLC4yNSw0KSxFPU1hdGguYXRhbihUKk1hdGgudGFuKHcpKSxEPU1hdGguaHlwb3QoZC53LGQuaCxtKSxPPUM/RCouNS9NYXRoLnRhbihFKToxLzAsaz0oZSx0LG4pPT57bGV0IHI9ZS1oLGk9Zy10LGE9KC41LXRyKE51bWJlci5pc0Zpbml0ZShuKT9uOjAsMCwxKSkqbSxvPXkqcitiKmEscz0tYipyK3kqYTtyZXR1cm57eDpvLHk6eCppLVMqcyx6OlMqaSt4KnN9fSxBPWU9PntpZihlLmxlbmd0aDwzKXJldHVybiBudWxsO2xldCB0PWUubWFwKGU9PmsoZS54LGUueSxlLmRlcHRoKSksbj10WzBdLHI9bnVsbDtmb3IobGV0IGU9MTtlKzE8dC5sZW5ndGgmJiFyO2UrKylmb3IobGV0IGk9ZSsxO2k8dC5sZW5ndGg7aSsrKXtsZXQgYT10W2VdLG89dFtpXSxzPXt4OmEueC1uLngseTphLnktbi55LHo6YS56LW4uen0sYz17eDpvLngtbi54LHk6by55LW4ueSx6Om8uei1uLnp9LGw9e3g6cy55KmMuei1zLnoqYy55LHk6cy56KmMueC1zLngqYy56LHo6cy54KmMueS1zLnkqYy54fSx1PU1hdGguaHlwb3QobC54LGwueSxsLnopO2lmKHU+MioqLTUyKXtyPXt4OmwueC91LHk6bC55L3UsejpsLnovdX07YnJlYWt9fXJldHVybiByP3tub3JtYWw6cixjZW50cm9pZDp0LnJlZHVjZSgoZSxuKT0+KHt4OmUueCtuLngvdC5sZW5ndGgseTplLnkrbi55L3QubGVuZ3RoLHo6ZS56K24uei90Lmxlbmd0aH0pLHt4OjAseTowLHo6MH0pfTpudWxsfSxqPS0xLzA7Zm9yKGxldCBlIG9mW2QueCxkLngrZC53XSlmb3IobGV0IHQgb2ZbZC55LGQueStkLmhdKWZvcihsZXQgbiBvZlswLDFdKWo9TWF0aC5tYXgoaixrKGUsdCxuKS56KTtsZXQgTT1DP01hdGgubWF4KE8saitEKi4wMSk6MS8wLE49KGUsdCxuKT0+e2xldCByPWsoZSx0LG4pO2lmKCFDKXJldHVybnt4OnIueCx5Oi1yLnl9O2xldCBpPU0vTWF0aC5tYXgoTSoxZS05LE0tci56KTtyZXR1cm57eDpyLngqaSx5Oi1yLnkqaX19LFA9W107Zm9yKGxldCBlIG9mW2QueCxkLngrZC53XSlmb3IobGV0IHQgb2ZbZC55LGQueStkLmhdKWZvcihsZXQgbiBvZlswLDFdKVAucHVzaChOKGUsdCxuKSk7bGV0IEY9TWF0aC5taW4oLi4uUC5tYXAoZT0+ZS54KSksST1NYXRoLm1heCguLi5QLm1hcChlPT5lLngpKSxMPU1hdGgubWluKC4uLlAubWFwKGU9PmUueSkpLFI9TWF0aC5tYXgoLi4uUC5tYXAoZT0+ZS55KSksej1NYXRoLm1heChOdW1iZXIuTUlOX1ZBTFVFLEktRiksZWU9TWF0aC5tYXgoTnVtYmVyLk1JTl9WQUxVRSxSLUwpLEI9TWF0aC5taW4odC53L3osdC5oL2VlKSouOTQsVj10LngrKHQudy16KkIpLzItRipCLEg9dC55Kyh0LmgtZWUqQikvMi1MKkIsVT0oZSx0LG4pPT57bGV0IHI9TihlLHQsbik7cmV0dXJue3g6VityLngqQix5Okgrci55KkJ9fSx0ZT17Li4uZH0sVz1VKGgsZywwKSxuZT1VKGgsZywxKSxHPW5lLngtVy54LEs9bmUueS1XLnkscT0oZSx0KT0+ayhlPT09YHhgP3Q9PT1gbWluYD9kLng6ZC54K2QudzpoLGU9PT1geWA/dD09PWBtaW5gP2QueTpkLnkrZC5oOmcsZT09PWBkZXB0aGA/dD09PWBtaW5gPzA6MTouNSkueixKPXEoYHhgLGBtaW5gKTw9cShgeGAsYG1heGApP2BtaW5gOmBtYXhgLFk9cShgeWAsYG1pbmApPD1xKGB5YCxgbWF4YCk/YG1pbmA6YG1heGAscmU9cShgZGVwdGhgLGBtaW5gKT49cShgZGVwdGhgLGBtYXhgKT8wOjEsaWU9KyhyZT09PTApLGFlPWU9PntsZXQgdD1lPT09YG1pbmA/ZC54OmQueCtkLncsbj1VKHQsZC55LHJlKSxyPVUodCxkLnkrZC5oLHJlKTtyZXR1cm4obi54K3IueCkvMn0sb2U9ZT0+e2xldCB0PWU9PT1gbWluYD9kLnk6ZC55K2QuaCxuPVUoZC54LHQscmUpLHI9VShkLngrZC53LHQscmUpO3JldHVybihuLnkrci55KS8yfSxzZT1hZShgbWluYCk8PWFlKGBtYXhgKT9gbWluYDpgbWF4YCxjZT1vZShgbWluYCk+PW9lKGBtYXhgKT9gbWluYDpgbWF4YCxsZT1lPT4xL01hdGgubWF4KDEsTWF0aC50cnVuYyhlKSkvKDErcy8xMDApLHVlPShlLHQsbj0hMSk9Pm58fHQ8PTE/LjU6KHRyKE1hdGgudHJ1bmMoZSksMCxNYXRoLm1heCgwLHQtMSkpKy41KS90O3JldHVybntzY2VuZTpkLGZyb250OnRlLGRlcHRoWDpHLGRlcHRoWTpLLG1vZGVsRGVwdGg6bSxwaWVTY2FsZVk6dHIoTWF0aC5zaW4oTWF0aC5tYXgoMSxNYXRoLmFicyhyKSkqZikqKjEuMTUsLjIsMSkscGllVGhpY2tuZXNzRnJhY3Rpb246LjMqTWF0aC5tYXgoMCxNYXRoLmNvcyhNYXRoLmFicyhyKSpmKSkscHJvamVjdDpVLGNhbWVyYURlcHRoKGUsdCxuKXtyZXR1cm4gayhlLHQsbikuen0sY2FtZXJhUHJvamVjdGlvbldlaWdodChlLHQsbil7aWYoIUMpcmV0dXJuIDE7bGV0IHI9ayhlLHQsbikuejtyZXR1cm4gMS9NYXRoLm1heChNKjFlLTksTS1yKX0sY2FtZXJhRmFjaW5nKGUpe2xldCB0PUEoZSk7aWYoIXQpcmV0dXJuITE7bGV0e25vcm1hbDpuLGNlbnRyb2lkOnJ9PXQsaT1DP3t4Oi1yLngseTotci55LHo6TS1yLnp9Ont4OjAseTowLHo6MX0sYT1uLngqaS54K24ueSppLnkrbi56KmkueixvPU1hdGguaHlwb3QoaS54LGkueSxpLnopO3JldHVybiBvPjAmJmE+byoxZS0xMH0sY2FtZXJhTm9ybWFsKGUpe3JldHVybiBBKGUpPy5ub3JtYWw/P251bGx9LHRvcG9sb2d5OntmYXJYOkosZmFyWTpZLGF4aXNYOnNlLGF4aXNZOmNlLG5lYXJEZXB0aDpyZSxmYXJEZXB0aDppZX0sc2VyaWVzRGVwdGg6dWUscHJpc21EZXB0aDpsZSxwcmlzbUludGVydmFsKGUsdCxuPSExKXtsZXQgcj11ZShlLHQsbiksaT1sZShuPzE6dCkvMjtyZXR1cm57bmVhcjp0cihyLWksMCwxKSxmYXI6dHIocitpLDAsMSl9fX19dmFyIGVyLHRyLG5yPXQoKCgpPT57ZXI9KGUsdCk9PnR5cGVvZiBlPT1gbnVtYmVyYCYmTnVtYmVyLmlzRmluaXRlKGUpP2U6dCx0cj0oZSx0LG4pPT5NYXRoLm1pbihuLE1hdGgubWF4KHQsZSkpfSkpO0ZlKCksJGUoKSxzdCgpLER0KCksQXQoKSxOdCgpLHJuKCksb24oKSxsbigpLHluKCksTW4oKSxZbigpLG5yKCksbnQoKTtjb25zdCBycj1bYDQ0NzJDNGAsYEVEN0QzMWAsYEE5RDE4RWAsYEZGMDAwMGAsYDcwQUQ0N2AsYDRCQUNDNmAsYEZGQzAwMGAsYDlFNDgwRWAsYDg0M0MwQ2AsYDYzNjM2M2AsYDI1NUU5MWAsYDk2NzMwMGBdLGlyPVtgNUI5QkQ1YCxgRUQ3RDMxYCxgQTVBNUE1YCxgRkZDMDAwYCxgNDQ3MkM0YCxgNzBBRDQ3YF07ZnVuY3Rpb24gYXIoZSx0KXtyZXR1cm4gdD8uY29sb3I/YCMke3QuY29sb3J9YDpgIyR7cnJbZSVyci5sZW5ndGhdfWB9ZnVuY3Rpb24gb3IoZSl7bGV0IHQ9bmV3IE1hcDtmb3IobGV0IG4gb2YgZT8/W10pdC5oYXMobi5pZHgpfHx0LnNldChuLmlkeCxuKTtyZXR1cm4gdH1mdW5jdGlvbiBzcihlLHQsbj0hMCl7bGV0IHI9dC5kYXRhUG9pbnRDb2xvcnM/LltlXTtyZXR1cm4gcj9gIyR7cn1gOnQuY29sb3I9PT1gMDAwMDAwMDBgP2AjMDAwMDAwMDBgOm4/YCMke3JyW2UlcnIubGVuZ3RoXX1gOmFyKGUsdCl9ZnVuY3Rpb24gY3IoZSx0KXtyZXR1cm4gdCYmKHQuc3RhcnRzV2l0aChgK21qYCk/ZS50aGVtZU1ham9yRm9udExhdGluPz9udWxsOnQuc3RhcnRzV2l0aChgK21uYCk/ZS50aGVtZU1pbm9yRm9udExhdGluPz9udWxsOnQpfWZ1bmN0aW9uIGxyKGUsdCxuKXtsZXQgcj1uPT09YG1ham9yYD9lLnRoZW1lTWFqb3JGb250TGF0aW46ZS50aGVtZU1pbm9yRm9udExhdGluLGk9Y3IoZSx0KT8/cjtyZXR1cm4gaT9gIiR7aX0iLCBDYWxpYnJpLCBBcmlhbCwgc2Fucy1zZXJpZmA6YHNhbnMtc2VyaWZgfWZ1bmN0aW9uIHVyKGUsdCxuPSExLHI9ITEpe3JldHVybmAke3I/YGl0YWxpYyBgOmBgfSR7bj9gYm9sZCBgOmBgfSR7ZX1weCAke3R9YH1mdW5jdGlvbiBkcihlKXtyZXR1cm4gZT09PWBwaWVgfHxlPT09YGRvdWdobnV0YH1mdW5jdGlvbiBmcihlKXtyZXR1cm4hIWUudmFyeUNvbG9ycyYmZS5zZXJpZXMubGVuZ3RoPT09MSYmdHlwZW9mIGUuY2hhcnRUeXBlPT1gc3RyaW5nYCYmL0Jhci8udGVzdChlLmNoYXJ0VHlwZSl9ZnVuY3Rpb24gcHIoZSx0LG4scj0hMSl7aWYocnx8ZHIoZSkpe2xldCBlPXRbMF07cmV0dXJuIGU/c3IobixlKTpgIyR7cnJbbiVyci5sZW5ndGhdfWB9cmV0dXJuIGFyKG4sdFtuXSl9ZnVuY3Rpb24gbXIoZSx0LG4scixpLGEsbyxzLGMsbCx1PWBzYW5zLXNlcmlmYCxkLGYscCxtKXtlLnNhdmUoKSxlLmZvbnQ9dXIoYSx1LG8scyksZS5maWxsU3R5bGU9YztsZXQgaD1wP3Q6T3QoZSx0LGwpLGc9eGUoaSxkLGYpLF89bix2PXI7aWYocCYmbSl7bGV0IHQ9ZS5tZWFzdXJlVGV4dChoKS53aWR0aCxpPU1hdGguYWJzKE1hdGguY29zKGcpKSxvPU1hdGguYWJzKE1hdGguc2luKGcpKSxzPXQqaSthKm8sYz10Km8rYSppLGw9e3g6bi1zLzIseTpyLWMvMix3OnMsaDpjfSx1PU9lKHsuLi5wLHc6dm9pZCAwLGg6dm9pZCAwfSxtLGwpO3UmJihfPXUueCt1LncvMix2PXUueSt1LmgvMil9ZS50cmFuc2xhdGUoXyx2KSxnIT09MCYmZS5yb3RhdGUoZyksZS50ZXh0QWxpZ249YGNlbnRlcmAsZS50ZXh0QmFzZWxpbmU9YG1pZGRsZWAsZS5maWxsVGV4dChoLDAsMCksZS5yZXN0b3JlKCl9ZnVuY3Rpb24gaHIoZSl7cmV0dXJuIGU/YCMke2V9YDpgIzU1NWB9ZnVuY3Rpb24gZ3IoZSx0LG4scixpLGEsbyxzLGMsbCx1LGQsZixwLG09ITEpe2xldCBoPSh0LGYscCxtLGgsZyxfLHYseSxiKT0+e2lmKGY9PT1gbGVmdGApe21yKGUsdCxuK3UrWChpKStwLzIscytsLzIsZixwLG0saCxnLGwsXyx2LHksYix7eDpuLHk6cix3OmksaDphfSk7cmV0dXJufW1yKGUsdCxvK2MvMixyK2EtZC1YKGEpLXAvMixmLHAsbSxoLGcsYyxfLHYseSxiLHt4Om4seTpyLHc6aSxoOmF9KX07dC52YWxBeGlzVGl0bGUmJmgodC52YWxBeGlzVGl0bGUsbT9gaG9yaXpvbnRhbGA6YGxlZnRgLHAsdC52YWxBeGlzVGl0bGVGb250Qm9sZD8/ITAsdC52YWxBeGlzVGl0bGVGb250SXRhbGljPz8hMSxocih0LnZhbEF4aXNUaXRsZUZvbnRDb2xvciksbHIodCx0LnZhbEF4aXNUaXRsZUZvbnRGYWNlLGBtYWpvcmApLHQudmFsQXhpc1RpdGxlUm90YXRpb24sdC52YWxBeGlzVGl0bGVWZXJ0aWNhbE1vZGUsdC52YWxBeGlzVGl0bGVNYW51YWxMYXlvdXQpLHQuY2F0QXhpc1RpdGxlJiZoKHQuY2F0QXhpc1RpdGxlLG0/YGxlZnRgOmBob3Jpem9udGFsYCxmLHQuY2F0QXhpc1RpdGxlRm9udEJvbGQ/PyEwLHQuY2F0QXhpc1RpdGxlRm9udEl0YWxpYz8/ITEsaHIodC5jYXRBeGlzVGl0bGVGb250Q29sb3IpLGxyKHQsdC5jYXRBeGlzVGl0bGVGb250RmFjZSxgbWFqb3JgKSx0LmNhdEF4aXNUaXRsZVJvdGF0aW9uLHQuY2F0QXhpc1RpdGxlVmVydGljYWxNb2RlLHQuY2F0QXhpc1RpdGxlTWFudWFsTGF5b3V0KX1mdW5jdGlvbiBfcihlLHQpe2lmKCFlLmRhdGFUYWJsZSlyZXR1cm4gMDtsZXQgbj1oZShlLmRhdGFUYWJsZS5mb250U2l6ZUhwdCx0KT8/OSp0LHI9TWF0aC5tYXgoMSxuKjEuMikrNCp0O3JldHVybihlLnNlcmllcy5sZW5ndGgrMSkqcn1mdW5jdGlvbiB2cihlLHQsbil7bGV0IHI9dC5kYXRhVGFibGU7aWYoIXIpcmV0dXJuIDA7bGV0IGk9aGUoci5mb250U2l6ZUhwdCxuKT8/OSpuLGE9bHIodCxyLmZvbnRGYWNlLGBtaW5vcmApO2Uuc2F2ZSgpLGUuZm9udD11cihpLGEsci5mb250Qm9sZD8/ITEsci5mb250SXRhbGljPz8hMSk7bGV0IG89dC5zZXJpZXMucmVkdWNlKCh0LG4pPT5NYXRoLm1heCh0LGUubWVhc3VyZVRleHQobi5uYW1lKS53aWR0aCksMCk7ZS5yZXN0b3JlKCk7bGV0IHM9ci5zaG93S2V5cz9NYXRoLm1heCgxMipuLGkqMS43KTowLGM9ci5zaG93S2V5cz80Km46MDtyZXR1cm4gbytzK2MrNipufWZ1bmN0aW9uIHlyKGUsdCxuLHIpe2xldCBpPXQuZGF0YVRhYmxlO2lmKCFpKXJldHVybiBudWxsO2xldCBhPWhlKGkuZm9udFNpemVIcHQscik/PzkqcixvPU1hdGgubWF4KDEsYSoxLjIpLHM9bys0KnIsYz1scih0LGkuZm9udEZhY2UsYG1pbm9yYCk7ZS5zYXZlKCksZS5mb250PXVyKGEsYyxpLmZvbnRCb2xkPz8hMSxpLmZvbnRJdGFsaWM/PyExKTtsZXQgbD10LnNlcmllcy5maW5kKGU9PmUuY2F0Rm9ybWF0Q29kZSk/LmNhdEZvcm1hdENvZGU/P3QuY2F0QXhpc0Zvcm1hdENvZGUsdT10LnNlcmllcy5maW5kKGU9PmUuY2F0Rm9ybWF0QnVpbHRpbklkIT1udWxsKT8uY2F0Rm9ybWF0QnVpbHRpbklkLGQ9RGkodCkubWFwKGk9PntsZXQgYT1pLnRyaW0oKT09PWBgP05hTjpOdW1iZXIoaSk7cmV0dXJuIHVpKGUsdT09PTE0JiZOdW1iZXIuaXNGaW5pdGUoYSk/X3QoYSx0LmRhdGUxOTA0KTpidChpLGwsdC5kYXRlMTkwNCksTWF0aC5tYXgoMSxuLTQqcikpfSk7ZS5yZXN0b3JlKCk7bGV0IGY9TWF0aC5tYXgoMSwuLi5kLm1hcChlPT5lLmxlbmd0aCkpKm8rNCpyO3JldHVybntmb250UHg6YSxsaW5lSGVpZ2h0Om8saGVhZGVyTGluZXM6ZCxoZWFkZXJIZWlnaHQ6Zixyb3dIZWlnaHQ6cyx0b3RhbEhlaWdodDpmK3Quc2VyaWVzLmxlbmd0aCpzfX1mdW5jdGlvbiBicihlLHQsbixyLGksYSxvLHMpe2xldCBjPXQuZGF0YVRhYmxlO2lmKCFjfHwhbnx8dC5jYXRlZ29yaWVzLmxlbmd0aD09PTApcmV0dXJuO2xldCBsPURpKHQpLHU9YS9sLmxlbmd0aCxkPWxyKHQsYy5mb250RmFjZSxgbWlub3JgKSxmPXVyKG4uZm9udFB4LGQsYy5mb250Qm9sZD8/ITEsYy5mb250SXRhbGljPz8hMSkscD1jLnNob3dLZXlzP01hdGgubWF4KDEyKnMsbi5mb250UHgqMS43KTowLG09Yy5zaG93S2V5cz80KnM6MDtlLnNhdmUoKSxlLmZvbnQ9ZjtsZXQgaD10LnNlcmllcy5yZWR1Y2UoKHQsbik9Pk1hdGgubWF4KHQsZS5tZWFzdXJlVGV4dChuLm5hbWUpLndpZHRoKSwwKStwK20rNipzLGc9TWF0aC5taW4oTWF0aC5tYXgoMCxyLW8pLGgpLF89ci1nLHY9ZythLHk9aStuLnRvdGFsSGVpZ2h0O2UuYmVnaW5QYXRoKCksZS5yZWN0KF8saSx2LG4udG90YWxIZWlnaHQpLGUuY2xpcCgpLGUuZmlsbFN0eWxlPWMuZm9udENvbG9yP2AjJHtjLmZvbnRDb2xvcn1gOmAjMDAwMDAwYCxlLnRleHRBbGlnbj1gY2VudGVyYCxlLnRleHRCYXNlbGluZT1gbWlkZGxlYDtmb3IobGV0IHQ9MDt0PGwubGVuZ3RoO3QrKyl7bGV0IGE9cisodCsuNSkqdSxvPW4uaGVhZGVyTGluZXNbdF0/P1tgYF0scz1vLmxlbmd0aCpuLmxpbmVIZWlnaHQsYz1pKyhuLmhlYWRlckhlaWdodC1zKS8yK24ubGluZUhlaWdodC8yO28uZm9yRWFjaCgodCxyKT0+e2UuZmlsbFRleHQodCxhLGMrcipuLmxpbmVIZWlnaHQpfSl9Zm9yKGxldCBhPTA7YTx0LnNlcmllcy5sZW5ndGg7YSsrKXtsZXQgbz10LnNlcmllc1thXSxkPWkrbi5oZWFkZXJIZWlnaHQrYSpuLnJvd0hlaWdodCtuLnJvd0hlaWdodC8yO2lmKGc+MCl7bGV0IG49XyszKnMrcCttO2lmKGUudGV4dEFsaWduPWBsZWZ0YCxlLmZpbGxUZXh0KE90KGUsby5uYW1lLE1hdGgubWF4KDAsci1uLTIqcykpLG4sZCksYy5zaG93S2V5cyYmcD4wKXtsZXQgbj1hcihhLG8pLHI9XyszKnM7by5zZXJpZXNUeXBlPT09YGxpbmVgfHx0LmNoYXJ0VHlwZT09PWBsaW5lYD8oZS5zdHJva2VTdHlsZT1vLmxpbmVDb2xvcj9gIyR7by5saW5lQ29sb3J9YDpuLGUubGluZVdpZHRoPW8ubGluZVdpZHRoRW11PT1udWxsP01hdGgubWF4KDEsMS41KnMpOnJ0KG8ubGluZVdpZHRoRW11LHMpLGUuYmVnaW5QYXRoKCksZS5tb3ZlVG8ocixkKSxlLmxpbmVUbyhyK3AsZCksZS5zdHJva2UoKSxvLnNob3dNYXJrZXIhPT0hMSYmKGUuZmlsbFN0eWxlPW8ubWFya2VyRmlsbD9gIyR7by5tYXJrZXJGaWxsfWA6bixlLmJlZ2luUGF0aCgpLGUuYXJjKHIrcC8yLGQsTWF0aC5tYXgoMiwyKnMpLDAsTWF0aC5QSSoyKSxlLmZpbGwoKSkpOihlLmZpbGxTdHlsZT1vLmNvbG9yP2AjJHtvLmNvbG9yfWA6bixlLmZpbGxSZWN0KHIsZC0zKnMscCw2KnMpKSxlLmZpbGxTdHlsZT1jLmZvbnRDb2xvcj9gIyR7Yy5mb250Q29sb3J9YDpgIzAwMDAwMGB9fWUudGV4dEFsaWduPWBjZW50ZXJgO2ZvcihsZXQgdD0wO3Q8bC5sZW5ndGg7dCsrKXtsZXQgbj1vLnZhbHVlc1t0XSxpPW49PW51bGw/YGA6eXQobixvLnZhbEZvcm1hdENvZGUpO2UuZmlsbFRleHQoaSxyKyh0Ky41KSp1LGQpfX1pZihjLmxpbmVIaWRkZW4hPT0hMCl7aWYoZS5zdHJva2VTdHlsZT1jLmxpbmVDb2xvcj9gIyR7Yy5saW5lQ29sb3J9YDpgIzgwODA4MGAsZS5saW5lV2lkdGg9Yy5saW5lV2lkdGhFbXU9PW51bGw/TWF0aC5tYXgoLjUscyouNzUpOnJ0KGMubGluZVdpZHRoRW11LHMpLGUuc2V0TGluZURhc2goW10pLGMuc2hvd0hvcml6b250YWxCb3JkZXIpe2xldCByPWkrbi5oZWFkZXJIZWlnaHQ7Zm9yKGxldCBpPTA7aTx0LnNlcmllcy5sZW5ndGg7aSsrKWUuYmVnaW5QYXRoKCksZS5tb3ZlVG8oXyxyKSxlLmxpbmVUbyhfK3YsciksZS5zdHJva2UoKSxyKz1uLnJvd0hlaWdodH1pZihjLnNob3dWZXJ0aWNhbEJvcmRlcil7ZS5iZWdpblBhdGgoKSxlLm1vdmVUbyhyLGkpLGUubGluZVRvKHIseSksZS5zdHJva2UoKTtmb3IobGV0IHQ9MTt0PGwubGVuZ3RoO3QrKyl7bGV0IG49cit0KnU7ZS5iZWdpblBhdGgoKSxlLm1vdmVUbyhuLGkpLGUubGluZVRvKG4seSksZS5zdHJva2UoKX19aWYoYy5zaG93T3V0bGluZSl7bGV0IHQ9ZS5saW5lV2lkdGgvMjtlLnN0cm9rZVJlY3QoXyt0LGkrdCxNYXRoLm1heCgwLHYtZS5saW5lV2lkdGgpLE1hdGgubWF4KDAsbi50b3RhbEhlaWdodC1lLmxpbmVXaWR0aCkpfX1lLnJlc3RvcmUoKX1mdW5jdGlvbiB4cihlKXtyZXR1cm4gZSYmKGU9PT1gbGluZWB8fGU9PT1gc3RhY2tlZExpbmVgfHxlPT09YHN0YWNrZWRMaW5lUGN0YHx8ZT09PWByYWRhcmB8fGU9PT1gc2NhdHRlcmB8fGU9PT1gc3RvY2tgKT9gbGluZWA6YGZpbGxgfWZ1bmN0aW9uIFNyKGUsdCxuKXtpZihlIT09YHNjYXR0ZXJgKXJldHVybiExO2xldCByPXQ/P2BtYXJrZXJgO3JldHVybihyPT09YGxpbmVgfHxyPT09YGxpbmVNYXJrZXJgfHxyPT09YGxpbmVOb01hcmtlcmB8fHI9PT1gc21vb3RoYHx8cj09PWBzbW9vdGhNYXJrZXJgfHxyPT09YHNtb290aE5vTWFya2VyYCkmJm4ubGluZUhpZGRlbiE9PSEwfWZ1bmN0aW9uIENyKGUsdCxuLHIpe2xldCBpPW5bcl07aWYoIWkpcmV0dXJuIG51bGw7bGV0IGE9aS5zZXJpZXNUeXBlPz9lLG89YT09PWBzdG9ja2Ascz1hPT09YGxpbmVgfHxhPT09YHN0YWNrZWRMaW5lYHx8YT09PWBzdGFja2VkTGluZVBjdGB8fG8sYz1hPT09YHNjYXR0ZXJgO2lmKCFzJiYhY3x8YyYmKHQ9PT1gbGluZU5vTWFya2VyYHx8dD09PWBzbW9vdGhOb01hcmtlcmApKXJldHVybiBudWxsO2xldCBsPWkubWFya2VyU3ltYm9sPz8obz9gbm9uZWA6YGNpcmNsZWApO2lmKGw9PT1gbm9uZWB8fGkuc2hvd01hcmtlcj09PSExKXJldHVybiBudWxsO2xldCB1PWFyKHIsaSksZD1pLm1hcmtlckZpbGw/P3UucmVwbGFjZSgvXiMvLGBgKSxmPWM/U3IoYHNjYXR0ZXJgLHQsaSk6aS5saW5lSGlkZGVuIT09ITA7cmV0dXJue3N5bWJvbDpsLGZpbGw6ZCxsaW5lOmkubWFya2VyTGluZT8/bnVsbCxsaW5lV2lkdGhFbXU6aS5tYXJrZXJMaW5lV2lkdGhFbXU/P251bGwsd2l0aExpbmU6Zn19ZnVuY3Rpb24gd3IoZSx0LG4scixpLGEsbyxzPW51bGwsYz12b2lkIDAsbD1udWxsLHU9bnVsbCxkPW51bGwsZj1udWxsLHA9bnVsbCxtPTEsaD0wKXtpZih0IT09YG5vbmVgKXtpZihzJiYhcy53aXRoTGluZSl7aWEoZSxyK2EvMixpK28vMixzLnN5bWJvbCxvKi41OCxzLmZpbGwscy5saW5lLDEscy5saW5lV2lkdGhFbXU9PW51bGw/dm9pZCAwOnJ0KHMubGluZVdpZHRoRW11LG0pKTtyZXR1cm59aWYoZS5maWxsU3R5bGU9bix0PT09YGxpbmVgKXtpZighKGwhPW51bGx8fHUhPW51bGx8fGQhPW51bGx8fGYhPW51bGx8fHAhPW51bGwpKXtlLnN0cm9rZVN0eWxlPW47bGV0IHQ9ZS5saW5lV2lkdGg7ZS5saW5lV2lkdGg9TWF0aC5tYXgoMS41LG8qLjE1KSxlLmJlZ2luUGF0aCgpO2xldCBjPWkrby8yO2UubW92ZVRvKHIsYyksZS5saW5lVG8ocithLGMpLGUuc3Ryb2tlKCksZS5saW5lV2lkdGg9dCxzJiZpYShlLHIrYS8yLGkrby8yLHMuc3ltYm9sLG8qLjU4LHMuZmlsbCxzLmxpbmUsMSxzLmxpbmVXaWR0aEVtdT09bnVsbD92b2lkIDA6cnQocy5saW5lV2lkdGhFbXUsbSkpO3JldHVybn1lLnNhdmUoKSxlLnN0cm9rZVN0eWxlPWw/YCMke2x9YDpuLGUubGluZVdpZHRoPXU9PW51bGw/TWF0aC5tYXgoMS41LG8qLjE1KTpydCh1LG0pLGUuc2V0TGluZURhc2goZmEoZD8/dm9pZCAwLGUubGluZVdpZHRoKSksZS5saW5lQ2FwPWY9PT1gcm5kYD9gcm91bmRgOmY9PT1gc3FgP2BzcXVhcmVgOmBidXR0YCxlLmxpbmVKb2luPXA9PT1gcm91bmRgfHxwPT09YGJldmVsYD9wOmBtaXRlcmAsZS5iZWdpblBhdGgoKTtsZXQgdD1pK28vMjtlLm1vdmVUbyhyLHQpLGUubGluZVRvKHIrYSx0KSxlLnN0cm9rZSgpLHMmJmlhKGUscithLzIsaStvLzIscy5zeW1ib2wsbyouNTgscy5maWxsLHMubGluZSwxLHMubGluZVdpZHRoRW11PT1udWxsP3ZvaWQgMDpydChzLmxpbmVXaWR0aEVtdSxtKSksZS5yZXN0b3JlKCl9ZWxzZSBpZihjIT09bnVsbCYmKGMmJihlLmZpbGxTdHlsZT1jLmZpbGxUeXBlPT09YHNvbGlkYD9jLmNvbG9yLnN0YXJ0c1dpdGgoYCNgKT9jLmNvbG9yOmAjJHtjLmNvbG9yfWA6TG4oYyxlLHIsaSxhLG8saCk/P24pLGUuZmlsbFJlY3QocixpLGEsbykpLGwpe2xldCB0PXJ0KHUsbSk7ZS5zYXZlKCksZS5zdHJva2VTdHlsZT1gIyR7bH1gLGUubGluZVdpZHRoPXQsZS5zZXRMaW5lRGFzaChmYShkPz92b2lkIDAsZS5saW5lV2lkdGgpKSxlLmxpbmVDYXA9Zj09PWBybmRgP2Byb3VuZGA6Zj09PWBzcWA/YHNxdWFyZWA6YGJ1dHRgLGUubGluZUpvaW49cD09PWByb3VuZGB8fHA9PT1gYmV2ZWxgP3A6YG1pdGVyYCxlLnN0cm9rZVJlY3Qocit0LzIsaSt0LzIsTWF0aC5tYXgoMCxhLXQpLE1hdGgubWF4KDAsby10KSksZS5yZXN0b3JlKCl9fX1mdW5jdGlvbiBUcihlLHQsbixyPSExLGk9W10sYT1bXSxvPSEwKXtpZihyfHxkcih0KSl7bGV0IG49ZVswXSxzPW4/bi52YWx1ZXMubGVuZ3RoOjAsYz1uPy5jYXRlZ29yaWVzPz9pLGw9bmV3IE1hcChuPy5kYXRhUG9pbnRPdmVycmlkZXM/Lm1hcChlPT5bZS5pZHgsZV0pPz9bXSk7cmV0dXJuIEFycmF5LmZyb20oe2xlbmd0aDpzfSwoaSxzKT0+e2xldCB1PWwuZ2V0KHMpLGQ9KHU/LmxpbmVIaWRkZW4/P24/LmxpbmVIaWRkZW4pIT09ITA7cmV0dXJue2xhYmVsOihjW3NdPz9gSXRlbSAke3MrMX1gKS50b1N0cmluZygpLGNvbG9yOmRyKHQpJiZuP3NyKHMsbixvKTpwcih0LGUscyxyKSxtYXJrZXI6bnVsbCxzd2F0Y2hTdHlsZTp4cih0KSxmaWxsUGFpbnQ6dT8uZmlsbEhpZGRlbj09PSEwP251bGw6czxhLmxlbmd0aD9hW3NdOnZvaWQgMCxvdXRsaW5lQ29sb3I6ZD91Py5saW5lQ29sb3I/P24/LmxpbmVDb2xvcj8/bnVsbDpudWxsLG91dGxpbmVXaWR0aEVtdTpkP3U/LmxpbmVXaWR0aEVtdT8/bj8ubGluZVdpZHRoRW11Pz9udWxsOm51bGwsb3V0bGluZURhc2g6ZD91Py5saW5lRGFzaD8/bj8uY2hhcnRleFN0eWxlPy5saW5lRGFzaD8/bnVsbDpudWxsLG91dGxpbmVDYXA6ZD9uPy5jaGFydGV4U3R5bGU/LmxpbmVDYXA/P251bGw6bnVsbCxvdXRsaW5lSm9pbjpkP24/LmNoYXJ0ZXhTdHlsZT8ubGluZUpvaW4/P251bGw6bnVsbH19KX1yZXR1cm4gZS5tYXAoKHIsaSk9PntsZXQgbz1yLnNlcmllc1R5cGU/P3Qscz1yLmxpbmVIaWRkZW4hPT0hMCxjPXM/ci5saW5lQ29sb3I/P251bGw6bnVsbCxsPUNyKHQsbixlLGkpLHU9bz09PWBzdG9ja2AmJiFzJiYhbD9gbm9uZWA6eHIobyk7cmV0dXJue2xhYmVsOnIubmFtZXx8YFNlcmllcyAke2krMX1gLGNvbG9yOnU9PT1gbGluZWAmJmM/YCMke2N9YDpwcih0LGUsaSksbWFya2VyOmwsc3dhdGNoU3R5bGU6dSxmaWxsUGFpbnQ6aTxhLmxlbmd0aD9hW2ldOnIuZmlsbFBhdHRlcm4/P3ZvaWQgMCxvdXRsaW5lQ29sb3I6YyxvdXRsaW5lV2lkdGhFbXU6cz9yLmxpbmVXaWR0aEVtdT8/bnVsbDpudWxsLG91dGxpbmVEYXNoOnM/ci5jaGFydGV4U3R5bGU/LmxpbmVEYXNoPz9udWxsOm51bGwsb3V0bGluZUNhcDpzP3IuY2hhcnRleFN0eWxlPy5saW5lQ2FwPz9udWxsOm51bGwsb3V0bGluZUpvaW46cz9yLmNoYXJ0ZXhTdHlsZT8ubGluZUpvaW4/P251bGw6bnVsbH19KX1jb25zdCBFcj17Zm9udEZhbWlseTpgc2Fucy1zZXJpZmAsY29sb3I6YCMzMzNgLGJvbGQ6ITEsc2l6ZVB4Om51bGx9O2Z1bmN0aW9uIERyKGUsdCl7cmV0dXJuIGUuc2l6ZVB4Pz8xMCp0fWZ1bmN0aW9uIE9yKGUsdCxuKXtyZXR1cm4gZS5tYXAoZT0+e2lmKGUuc3dhdGNoU3R5bGU9PT1gZmlsbGApcmV0dXJuIDcqbjtsZXQgcj10KjEuNjtpZihlLnN3YXRjaFN0eWxlIT09YGxpbmVgfHwhZS5vdXRsaW5lRGFzaClyZXR1cm4gcjtsZXQgaT1lLm91dGxpbmVXaWR0aEVtdT09bnVsbD9NYXRoLm1heCgxLjUsdCouMTUpOnJ0KGUub3V0bGluZVdpZHRoRW11LG4pLGE9ZmEoZS5vdXRsaW5lRGFzaCxpKSxvPWEubGVuZ3RoPjA/YS5yZWR1Y2UoKGUsdCk9PmUrdCwwKSthWzBdOjA7cmV0dXJuIE1hdGgubWF4KHIsbyl9KX1mdW5jdGlvbiBrcihlLHQsbil7cmV0dXJuIGUuc3dhdGNoU3R5bGU9PT1gZmlsbGA/NypuOnR9ZnVuY3Rpb24gQXIoZSx0LG4pe2lmKCEobj4wKSlyZXR1cm5bXTtsZXQgcj11aShlLHQsbik7cmV0dXJuIHIubGVuZ3RoPD0yP3I6W3JbMF0sT3QoZSxyLnNsaWNlKDEpLmpvaW4oYCBgKSxuKV19ZnVuY3Rpb24ganIoZSx0LG4scixpLGEpe2lmKCF0LnNob3dMZWdlbmQpcmV0dXJuIG51bGw7bGV0IG89TnIodCxhKSxzPVRyKGNpKHQpLHQuY2hhcnRUeXBlLHQuc2NhdHRlclN0eWxlLGZyKHQpLHQuY2F0ZWdvcmllcyxbXSx0LnZhcnlDb2xvcnMhPT0hMSksYz1EcihvLGEpLGw9T3IocyxjLGEpO2Uuc2F2ZSgpLGUuZm9udD1gJHtvLmJvbGQ/YGJvbGQgYDpgYH0ke2N9cHggJHtvLmZvbnRGYW1pbHl9YDtsZXQgdT1zLm1hcCgodCxuKT0+bFtuXSs0K2UubWVhc3VyZVRleHQodC5sYWJlbCkud2lkdGgpO3JldHVybiBlLnJlc3RvcmUoKSx0LmxlZ2VuZFBvcyx2ZSh0LG4scixpLHtpdGVtV2lkdGhzOnUscm93SGVpZ2h0OmMrNCxpdGVtR2FwOjEyLGhvcml6b250YWxQYWRkaW5nOjgsdmVydGljYWxQYWRkaW5nOjR9KX1mdW5jdGlvbiBNcihlLHQsbixyLGksYSxvPWB2ZXJ0aWNhbGAscyxjPUVyLGwsdT0hMSxkPVtdLGY9MSxwPVtdLG09MCxoPSEwKXtsZXQgZz1Ucih0LHMsbCx1LGQscCxoKSxfPWMuYm9sZD9gYm9sZCBgOmBgLHY9RHIoYyxmKTtlLmZvbnQ9YCR7X30ke3Z9cHggJHtjLmZvbnRGYW1pbHl9YCxlLnRleHRCYXNlbGluZT1gbWlkZGxlYDtsZXQgeT12KzQsYj1PcihnLHYsZikseD1nLm1hcCgodCxuKT0+YltuXSs0K2UubWVhc3VyZVRleHQodC5sYWJlbCkud2lkdGgpO2lmKG89PT1gaG9yaXpvbnRhbGApe2xldCB0PW1lKHgsaSwxMikuc2xpY2UoMCxNYXRoLm1heCgwLE1hdGguZmxvb3IoKGEtNCkveSkpKSxvPXIrNC8yO2ZvcihsZXQgcj0wO3I8dC5sZW5ndGg7cisrKXtsZXQgYT10W3JdLHM9YS5tYXAoZT0+TWF0aC5taW4oaSx4W2VdKSksbD1zLnJlZHVjZSgoZSx0KT0+ZSt0LDApKzEyKk1hdGgubWF4KDAsYS5sZW5ndGgtMSksdT1uK01hdGgubWF4KDAsKGktbCkvMiksZD1vK3IqeSt5LzI7Zm9yKGxldCB0PTA7dDxhLmxlbmd0aDt0Kyspe2xldCBuPWFbdF0scj1iW25dLGk9c1t0XTtpZihpPHIpe3UrPWkrMTI7Y29udGludWV9bGV0IG89TWF0aC5tYXgoMCxpLXItNCsuMDEpLGw9T3QoZSxnW25dLmxhYmVsLG8pLHA9a3IoZ1tuXSx2LGYpO3dyKGUsZ1tuXS5zd2F0Y2hTdHlsZSxnW25dLmNvbG9yLHUsZC1wLzIscixwLGdbbl0ubWFya2VyLGdbbl0uZmlsbFBhaW50LGdbbl0ub3V0bGluZUNvbG9yLGdbbl0ub3V0bGluZVdpZHRoRW11LGdbbl0ub3V0bGluZURhc2gsZ1tuXS5vdXRsaW5lQ2FwLGdbbl0ub3V0bGluZUpvaW4sZixtKSxlLmZpbGxTdHlsZT1jLmNvbG9yLGUudGV4dEFsaWduPWBsZWZ0YCxlLmZpbGxUZXh0KGwsdStyKzQsZCksdSs9aSsxMn19cmV0dXJufWxldCBTPWktTWF0aC5tYXgoLi4uYiwwKS00LEM9IXUmJiFkcihzKSx3PWcubWFwKHQ9PkM/QXIoZSx0LmxhYmVsLFMpOltPdChlLHQubGFiZWwsUyldKSxUPXcubWFwKGU9PmUubGVuZ3RoKnYrNCksRT0wLEQ9MDtmb3IoO0U8Zy5sZW5ndGgmJkQrVFtFXTw9YTspRCs9VFtFXSxFKys7bGV0IE89RT09PWcubGVuZ3RoP3IrKGEtRCkvMjpyO2ZvcihsZXQgdD0wO3Q8RTt0Kyspe2xldCByPWJbdF0sYT1UW3RdO2lmKGk8cil7Tys9YTtjb250aW51ZX1sZXQgbz1rcihnW3RdLHYsZik7d3IoZSxnW3RdLnN3YXRjaFN0eWxlLGdbdF0uY29sb3IsbixPKyhhLW8pLzIscixvLGdbdF0ubWFya2VyLGdbdF0uZmlsbFBhaW50LGdbdF0ub3V0bGluZUNvbG9yLGdbdF0ub3V0bGluZVdpZHRoRW11LGdbdF0ub3V0bGluZURhc2gsZ1t0XS5vdXRsaW5lQ2FwLGdbdF0ub3V0bGluZUpvaW4sZixtKSxlLmZpbGxTdHlsZT1jLmNvbG9yLGUudGV4dEFsaWduPWBsZWZ0YCx3W3RdLmZvckVhY2goKHQsaSk9PmUuZmlsbFRleHQodCxuK3IrNCxPK3YqKGkrLjUpKSksTys9YX19ZnVuY3Rpb24gTnIoZSx0KXtsZXQgbj1jcihlLGUubGVnZW5kRm9udEZhY2UpPz9lLnRoZW1lTWlub3JGb250TGF0aW47cmV0dXJue2ZvbnRGYW1pbHk6bj9gIiR7bn0iLCBDYWxpYnJpLCBBcmlhbCwgc2Fucy1zZXJpZmA6YHNhbnMtc2VyaWZgLGNvbG9yOmUubGVnZW5kRm9udENvbG9yP2AjJHtlLmxlZ2VuZEZvbnRDb2xvcn1gOmAjMzMzYCxib2xkOmUubGVnZW5kRm9udEJvbGQ/PyExLHNpemVQeDpoZShlLmxlZ2VuZEZvbnRTaXplSHB0LHQpfX1mdW5jdGlvbiBQcihlLHQsbixyLGksYSxvLHMsYyxsLHUsZCxmLHA9W10sbT0wKXtpZighbilyZXR1cm47bGV0IGg9TnIodCxmKSxnPWNpKHQpLF89ZnIodCksdj1NYXRoLm1pbig4LzIsTWF0aC5tYXgoMCxuLnJlc2VydmVXKS8yKSx5PU1hdGgubWF4KDAsbi5yZXNlcnZlVy12KjIpLGI9bi5zaWRlPT09YHJgP3t4OnIrYS1uLnJlc2VydmVXK3YseTpjLHc6eSxoOnV9Om4uc2lkZT09PWBsYD97eDpyK3YseTpjLHc6eSxoOnV9Om4uc2lkZT09PWB0YD97eDpyKzQseTppK2QsdzpNYXRoLm1heCgwLGEtOCksaDpuLnJlc2VydmVIfTp7eDpyKzQseTppK28tbi5yZXNlcnZlSCx3Ok1hdGgubWF4KDAsYS04KSxoOm4ucmVzZXJ2ZUh9LHg9bi5zaWRlPT09YHRgfHxuLnNpZGU9PT1gYmA/YGhvcml6b250YWxgOmB2ZXJ0aWNhbGAsUz10LmxlZ2VuZE1hbnVhbExheW91dCxDPVMmJlMudz4wJiZTLmg+MD9PZShTLHt4OnIseTppLHc6YSxoOm99LGIpOm51bGw7aWYoQyl7bGV0IG49Qy53Pj1DLmg/YGhvcml6b250YWxgOmB2ZXJ0aWNhbGA7Y24oZSx0LEMsZiksTXIoZSxnLEMueCxDLnksQy53LEMuaCxuLHQuY2hhcnRUeXBlLGgsdC5zY2F0dGVyU3R5bGUsXyx0LmNhdGVnb3JpZXMsZixwLG0sdC52YXJ5Q29sb3JzIT09ITEpO3JldHVybn1jbihlLHQsYixmKSxNcihlLGcsYi54LGIueSxiLncsYi5oLHgsdC5jaGFydFR5cGUsaCx0LnNjYXR0ZXJTdHlsZSxfLHQuY2F0ZWdvcmllcyxmLHAsbSx0LnZhcnlDb2xvcnMhPT0hMSl9ZnVuY3Rpb24gRnIoZSx0LG4scixpLGEsbyxzPSExLGM9ITEsbD1gbWFqb3JgLHU9MSl7aWYoY3x8dD09PWBub25lYHx8IXQpcmV0dXJuO2xldCBkPUlyKGwsbyx1KSxmPXQ9PT1gY3Jvc3NgP2QvMjpkLHA9ZS5zdHJva2VTdHlsZSxtPWUubGluZVdpZHRoLGg9ZS5nZXRMaW5lRGFzaD8uKCk/P1tdO2lmKGUuc3Ryb2tlU3R5bGU9YT8/YCM4ODhgLGUubGluZVdpZHRoPW8/PzEsZS5zZXRMaW5lRGFzaChbXSksZS5iZWdpblBhdGgoKSxuPT09YHZhbGApe2xldCBuPXIsYT1pLG89cz8xOi0xLGM9dD09PWBvdXRgfHx0PT09YGNyb3NzYD9vKmY6MCxsPXQ9PT1gaW5gfHx0PT09YGNyb3NzYD8tbypmOjA7ZS5tb3ZlVG8obitjLGEpLGUubGluZVRvKG4rbCxhKX1lbHNle2xldCBuPXIsYT1pLG89cz8tMToxLGM9dD09PWBvdXRgfHx0PT09YGNyb3NzYD9vKmY6MCxsPXQ9PT1gaW5gfHx0PT09YGNyb3NzYD8tbypmOjA7ZS5tb3ZlVG8oYSxuK2MpLGUubGluZVRvKGEsbitsKX1lLnN0cm9rZSgpLGUuc3Ryb2tlU3R5bGU9cCxlLmxpbmVXaWR0aD1tLGUuc2V0TGluZURhc2goaCl9ZnVuY3Rpb24gSXIoZSx0LG4pe2xldCByPShlPT09YG1pbm9yYD80OjYpKm47cmV0dXJuIHQ/TWF0aC5tYXgocix0KzIqbik6cn1mdW5jdGlvbiBMcihlLHQsbixyKXtpZihlIT09YG91dGAmJmUhPT1gY3Jvc3NgKXJldHVybiAwO2xldCBpPUlyKHQsbixyKTtyZXR1cm4gZT09PWBjcm9zc2A/aS8yOml9ZnVuY3Rpb24gUnIoZSx0LG4scixpLGEpe2EmJmEuZXhwbGljaXQ/KGUuc3Ryb2tlU3R5bGU9YS5jb2xvcixlLmxpbmVXaWR0aD1hLndpZHRoKTooZS5zdHJva2VTdHlsZT1pP2AjYWFhYDphPy5jb2xvcj8/YCNlMGUwZTBgLGUubGluZVdpZHRoPWk/MTphPy53aWR0aD8/LjUpO2xldCBvPWE/LmRhc2g/P1tdLHM9by5sZW5ndGg+MCYmZS5nZXRMaW5lRGFzaD9lLmdldExpbmVEYXNoKCk6W107by5sZW5ndGg+MCYmZS5zZXRMaW5lRGFzaChvKSxlLmJlZ2luUGF0aCgpLGUubW92ZVRvKHQsciksZS5saW5lVG8odCtuLHIpLGUuc3Ryb2tlKCksby5sZW5ndGg+MCYmZS5zZXRMaW5lRGFzaChzKX1mdW5jdGlvbiB6cihlLHQpe2xldHtjb2xvcjpuLHdpZHRoOnJ9PWF0KGUudmFsQXhpc0dyaWRsaW5lQ29sb3IsZS52YWxBeGlzR3JpZGxpbmVXaWR0aEVtdSx0KTtyZXR1cm57Y29sb3I6bix3aWR0aDpyLGV4cGxpY2l0OmUudmFsQXhpc0dyaWRsaW5lQ29sb3IhPW51bGx8fGUudmFsQXhpc0dyaWRsaW5lV2lkdGhFbXUhPW51bGx8fGUudmFsQXhpc0dyaWRsaW5lRGFzaCE9bnVsbCxkYXNoOmZhKGUudmFsQXhpc0dyaWRsaW5lRGFzaD8/dm9pZCAwLHIpfX1mdW5jdGlvbiBCcihlLHQpe2xldHtjb2xvcjpuLHdpZHRoOnJ9PWF0KGUudmFsQXhpc01pbm9yR3JpZGxpbmVDb2xvcixlLnZhbEF4aXNNaW5vckdyaWRsaW5lV2lkdGhFbXUsdCk7cmV0dXJue2NvbG9yOm4sd2lkdGg6cixleHBsaWNpdDplLnZhbEF4aXNNaW5vckdyaWRsaW5lQ29sb3IhPW51bGwsZGFzaDpmYShlLnZhbEF4aXNNaW5vckdyaWRsaW5lRGFzaD8/dm9pZCAwLHIpfX1mdW5jdGlvbiBWcihlLHQpe2xldHtjb2xvcjpuLHdpZHRoOnJ9PWF0KGUubWlub3JHcmlkbGluZUNvbG9yLGUubWlub3JHcmlkbGluZVdpZHRoRW11LHQpO3JldHVybntjb2xvcjpuLHdpZHRoOnIsZXhwbGljaXQ6ZS5taW5vckdyaWRsaW5lQ29sb3IhPW51bGx8fGUubWlub3JHcmlkbGluZVdpZHRoRW11IT1udWxsfHxlLm1pbm9yR3JpZGxpbmVEYXNoIT1udWxsLGRhc2g6ZmEoZS5taW5vckdyaWRsaW5lRGFzaD8/dm9pZCAwLHIpfX1mdW5jdGlvbiBIcihlLHQpe2xldHtjb2xvcjpuLHdpZHRoOnJ9PWF0KGUubWFqb3JHcmlkbGluZUNvbG9yLGUubWFqb3JHcmlkbGluZVdpZHRoRW11LHQpO3JldHVybntjb2xvcjpuLHdpZHRoOnIsZXhwbGljaXQ6ZS5tYWpvckdyaWRsaW5lQ29sb3IhPW51bGx8fGUubWFqb3JHcmlkbGluZVdpZHRoRW11IT1udWxsfHxlLm1ham9yR3JpZGxpbmVEYXNoIT1udWxsLGRhc2g6ZmEoZS5tYWpvckdyaWRsaW5lRGFzaD8/dm9pZCAwLHIpfX1mdW5jdGlvbiBVcihlKXtyZXR1cm4gZS5jYXRBeGlzTWFqb3JHcmlkbGluZXM9PT0hMH1mdW5jdGlvbiBXcihlLHQpe2xldCBuPWF0KGUuY2F0QXhpc0dyaWRsaW5lQ29sb3IsZS5jYXRBeGlzR3JpZGxpbmVXaWR0aEVtdSx0KTtyZXR1cm57Li4ubixkYXNoOmZhKGUuY2F0QXhpc0dyaWRsaW5lRGFzaD8/dm9pZCAwLG4ud2lkdGgpfX1mdW5jdGlvbiBHcihlLHQpe2xldCBuPWF0KGUuY2F0QXhpc01pbm9yR3JpZGxpbmVDb2xvcixlLmNhdEF4aXNNaW5vckdyaWRsaW5lV2lkdGhFbXUsdCk7cmV0dXJuey4uLm4sZGFzaDpmYShlLmNhdEF4aXNNaW5vckdyaWRsaW5lRGFzaD8/dm9pZCAwLG4ud2lkdGgpfX1mdW5jdGlvbiBLcihlLHQpe2lmKHQ8PTApcmV0dXJuW107bGV0IG49b3QoZSkscj1bXSxpPW4/dDp0LTE7Zm9yKGxldCBlPTA7ZTw9aTtlKyspci5wdXNoKG4/ZS90OnQ9PT0xPy41OmUvKHQtMSkpO3JldHVybiByfWZ1bmN0aW9uIHFyKGUpe3JldHVybiBlLnZhbEF4aXNPcmllbnRhdGlvbj09PWBtYXhNaW5gfWZ1bmN0aW9uIEpyKGUpe3JldHVybiBlLmNhdEF4aXNPcmllbnRhdGlvbj09PWBtYXhNaW5gfWZ1bmN0aW9uIFlyKGUpe3JldHVybiBlLnZhbEF4aXNNYWpvckdyaWRsaW5lcyE9PSExfWZ1bmN0aW9uIFhyKGUsdCl7cmV0dXJuIGU9PW51bGx8fCF0P2U6ZSoxMDB9ZnVuY3Rpb24gWnIoZSx0LG4pe3JldHVybiB5dCgobj90LzEwMDp0KS9RcihlLnZhbEF4aXNEaXNwbGF5VW5pdHMpLG4/ZS52YWxBeGlzRm9ybWF0Q29kZT8/YDAlYDplLnZhbEF4aXNGb3JtYXRDb2RlLGUuZGF0ZTE5MDQpfWZ1bmN0aW9uIFFyKGUpe2xldCB0PWU/LmRpdmlzb3I7cmV0dXJuIHQhPW51bGwmJk51bWJlci5pc0Zpbml0ZSh0KSYmdD4wP3Q6MX1mdW5jdGlvbiAkcihlLHQsbixyKXtyZXR1cm4geXQoZS9RcihyKSx0LG4pfWZ1bmN0aW9uIGVpKGUpe3JldHVybiBlLmJ1aWx0SW5Vbml0P3todW5kcmVkczpgSHVuZHJlZHNgLHRob3VzYW5kczpgVGhvdXNhbmRzYCx0ZW5UaG91c2FuZHM6YFRlbiBUaG91c2FuZHNgLGh1bmRyZWRUaG91c2FuZHM6YEh1bmRyZWQgVGhvdXNhbmRzYCxtaWxsaW9uczpgTWlsbGlvbnNgLHRlbk1pbGxpb25zOmBUZW4gTWlsbGlvbnNgLGh1bmRyZWRNaWxsaW9uczpgSHVuZHJlZCBNaWxsaW9uc2AsYmlsbGlvbnM6YEJpbGxpb25zYCx0cmlsbGlvbnM6YFRyaWxsaW9uc2B9W2UuYnVpbHRJblVuaXRdPz9lLmJ1aWx0SW5Vbml0OnZ0KGUuZGl2aXNvcil9ZnVuY3Rpb24gdGkoZSx0LG4scil7bGV0IGk9W3t1bml0czp0LnZhbEF4aXNEaXNwbGF5VW5pdHMsdmVydGljYWw6ITAsZmFsbGJhY2tYOm4ueCtuLncqLjA4LGZhbGxiYWNrWTpuLnkrbi5oKi4xMn0se3VuaXRzOnQuY2F0QXhpc0Rpc3BsYXlVbml0cyx2ZXJ0aWNhbDohMSxmYWxsYmFja1g6bi54K24udyouODIsZmFsbGJhY2tZOm4ueStuLmgqLjgyfSx7dW5pdHM6dC5zZWNvbmRhcnlWYWxBeGlzPy5kaXNwbGF5VW5pdHMsdmVydGljYWw6ITAsZmFsbGJhY2tYOm4ueCtuLncqLjkyLGZhbGxiYWNrWTpuLnkrbi5oKi4xMn0se3VuaXRzOnQuc2Vjb25kYXJ5Q2F0QXhpcz8uZGlzcGxheVVuaXRzLHZlcnRpY2FsOiExLGZhbGxiYWNrWDpuLngrbi53Ki44MixmYWxsYmFja1k6bi55K24uaCouMDh9XTtmb3IobGV0e3VuaXRzOmEsdmVydGljYWw6byxmYWxsYmFja1g6cyxmYWxsYmFja1k6Y31vZiBpKXtsZXQgaT1hPy5sYWJlbDtpZighYXx8IWkpY29udGludWU7bGV0IGw9aS50ZXh0Pz9laShhKSx1PWhlKGkuZm9udFNpemVIcHQscik/PzEwKnI7ZS5zYXZlKCksZS5mb250PXVyKHUsbHIodCxpLmZvbnRGYWNlLGBtaW5vcmApLGkuZm9udEJvbGQ/PyExLGkuZm9udEl0YWxpYz8/ITEpO2xldCBkPWkucm90YXRpb249PW51bGw/bz8tTWF0aC5QSS8yOjA6aS5yb3RhdGlvbi82ZTQqTWF0aC5QSS8xODAsZj1lLm1lYXN1cmVUZXh0KGwpLndpZHRoLHA9TWF0aC5hYnMoTWF0aC5jb3MoZCkpKmYrTWF0aC5hYnMoTWF0aC5zaW4oZCkpKnUsbT1NYXRoLmFicyhNYXRoLnNpbihkKSkqZitNYXRoLmFicyhNYXRoLmNvcyhkKSkqdSxoPXt4OnMtcC8yLHk6Yy1tLzIsdzpwLGg6bX0sZz1pLm1hbnVhbExheW91dD9PZSh7Li4uaS5tYW51YWxMYXlvdXQsdzp2b2lkIDAsaDp2b2lkIDB9LG4saCk6aDtpZighZyl7ZS5yZXN0b3JlKCk7Y29udGludWV9bGV0IF89Zy54K2cudy8yLHY9Zy55K2cuaC8yO2kuYm94U3R5bGU/LmZpbGwmJihlLmZpbGxTdHlsZT1gIyR7aS5ib3hTdHlsZS5maWxsfWAsZS5maWxsUmVjdChnLngsZy55LGcudyxnLmgpKSxpLmJveFN0eWxlPy5ib3JkZXJDb2xvciYmKGUuc3Ryb2tlU3R5bGU9YCMke2kuYm94U3R5bGUuYm9yZGVyQ29sb3J9YCxlLmxpbmVXaWR0aD1pLmJveFN0eWxlLmJvcmRlcldpZHRoRW11P01hdGgubWF4KC41LGkuYm94U3R5bGUuYm9yZGVyV2lkdGhFbXUvZXQqcik6MSxlLnN0cm9rZVJlY3QoZy54LGcueSxnLncsZy5oKSksZS50cmFuc2xhdGUoXyx2KSxkIT09MCYmZS5yb3RhdGUoZCksZS5maWxsU3R5bGU9aS5mb250Q29sb3I/YCMke2kuZm9udENvbG9yfWA6YCM1OTU5NTlgLGUudGV4dEFsaWduPWBjZW50ZXJgLGUudGV4dEJhc2VsaW5lPWBtaWRkbGVgLGUuZmlsbFRleHQobCwwLDApLGUucmVzdG9yZSgpfX1mdW5jdGlvbiBuaShlLHQsbixyLGk9ITEsYT1gdmVydGljYWxgKXtsZXQgbz1xcihlKSxzPWUudmFsQXhpc0xvZ0Jhc2UsYz1YcihlLnZhbE1pbixpKT8/KGk/dDplLnZhbE1pbiksbD1YcihlLnZhbE1heCxpKT8/KGk/bjplLnZhbE1heCksdT1YcihlLnZhbEF4aXNNYWpvclVuaXQsaSksZD1pJiYhKHMhPW51bGwmJmlzRmluaXRlKHMpJiZzPj0yKSYmISh1IT1udWxsJiZpc0Zpbml0ZSh1KSYmdT4wKT9SZSh0LG4sYSxyKTp1LGY9ZS52YWxBeGlzTWlub3JUaWNrTWFyayE9bnVsbCYmZS52YWxBeGlzTWlub3JUaWNrTWFyayE9PWBub25lYCxwPVhlKHtkYXRhTWluOnQsZGF0YU1heDpuLGV4cGxpY2l0TWluOmMsZXhwbGljaXRNYXg6bCxheGlzTGVuUHQ6cixheGlzT3JpZW50YXRpb246YSxtYWpvclVuaXQ6ZCxtaW5vclVuaXQ6WHIoZS52YWxBeGlzTWlub3JVbml0LGkpLG5lZWRNaW5vcjplLnZhbEF4aXNNaW5vckdyaWRsaW5lcz09PSEwfHxmLGxvZ0Jhc2U6cyxyZXZlcnNlZDpvfSkse21pbjptLG1heDpoLG1ham9yVW5pdDpnLG1ham9yVGlja3M6X309cDtyZXR1cm57bWluOm0sbWF4Omgsc3RlcDpnLG1ham9yTGluZXM6XyxtaW5vckxpbmVzOmUudmFsQXhpc01pbm9yR3JpZGxpbmVzP3AubWlub3JUaWNrczpbXSxtaW5vclRpY2tzOnAubWlub3JUaWNrcyxmcmFjOnAuZnJhY3Rpb259fWZ1bmN0aW9uIHJpKGUsdCl7cmV0dXJuIHQmJnQudHJpbSgpLnRvTG93ZXJDYXNlKCkhPT1gZ2VuZXJhbGA/eXQoZSx0KTp2dChOdW1iZXIoZS50b1ByZWNpc2lvbig2KSkpfWZ1bmN0aW9uIGlpKGUsdCxuKXtpZihlLmxhYmVsVGV4dClyZXR1cm4gZS5sYWJlbFRleHQuc3BsaXQoL1xyP1xuLyk7aWYoIXQpcmV0dXJuW107bGV0IHI9ZS5sYWJlbEZvcm1hdFNvdXJjZUxpbmtlZD09PSEwP246ZS5sYWJlbEZvcm1hdENvZGUsaT1bXTtpZihlLmRpc3BFcSl7bGV0IGU9dC5pbnRlcmNlcHQ8MD9g4oiSYDpgK2A7aS5wdXNoKGB5ID0gJHtyaSh0LnNsb3BlLHIpfXggJHtlfSAke3JpKE1hdGguYWJzKHQuaW50ZXJjZXB0KSxyKX1gKX1yZXR1cm4gZS5kaXNwUlNxciYmaS5wdXNoKGBSwrIgPSAke3JpKHQuclNxdWFyZWQscil9YCksaX1mdW5jdGlvbiBhaShlLHQsbixyLGksYSl7aWYoIWkpcmV0dXJuO2xldCBvPWlpKHQsbixhKTtpZihvLmxlbmd0aD09PTApcmV0dXJuO2xldHtjaGFydDpzLGNoYXJ0UmVjdDpjLHBsb3RSZWN0Omx9PWksdT1oZSh0LmxhYmVsRm9udFNpemVIcHQscik/P2hlKHMuZGF0YUxhYmVsRm9udFNpemVIcHQscik/PzEwKnI7ZS5mb250PXVyKHUsbHIocyx0LmxhYmVsRm9udEZhY2U/P3MuZGF0YUxhYmVsRm9udEZhY2UsYG1pbm9yYCksdC5sYWJlbEZvbnRCb2xkPz9zLmRhdGFMYWJlbEZvbnRCb2xkPz8hMSx0LmxhYmVsRm9udEl0YWxpYz8/ITEpO2xldCBkPXUqMS4yLGY9c24oYyxsLE1hdGgubWF4KC4uLm8ubWFwKHQ9PmUubWVhc3VyZVRleHQodCkud2lkdGgpKSxvLmxlbmd0aCpkLHUsdC5sYWJlbE1hbnVhbExheW91dCxpLmF1dG9tYXRpY0FuY2hvcik7aWYoIWYpcmV0dXJuO2Uuc2F2ZSgpLGYuYXV0b21hdGljJiYoZS5iZWdpblBhdGgoKSxlLnJlY3QobC54LGwueSxsLncsbC5oKSxlLmNsaXAoKSksdC5sYWJlbEJveD8uZmlsbCYmKGUuZmlsbFN0eWxlPWAjJHt0LmxhYmVsQm94LmZpbGx9YCxlLmZpbGxSZWN0KGYueCxmLnksZi53LGYuaCkpLHQubGFiZWxCb3g/LmJvcmRlckNvbG9yJiYoZS5zdHJva2VTdHlsZT1gIyR7dC5sYWJlbEJveC5ib3JkZXJDb2xvcn1gLGUubGluZVdpZHRoPXQubGFiZWxCb3guYm9yZGVyV2lkdGhFbXU/TWF0aC5tYXgoLjUsdC5sYWJlbEJveC5ib3JkZXJXaWR0aEVtdS9ldCpyKToxLGUuc3Ryb2tlUmVjdChmLngsZi55LGYudyxmLmgpKTtsZXQgcD10LmxhYmVsVGV4dEFsaWduO2UudGV4dEFsaWduPXA9PT1gcmA/YHJpZ2h0YDpwPT09YGN0cmA/YGNlbnRlcmA6YGxlZnRgLGUudGV4dEJhc2VsaW5lPWB0b3BgO2xldCBtPXQubGFiZWxGb250Q29sb3I/P3MuZGF0YUxhYmVsRm9udENvbG9yO2UuZmlsbFN0eWxlPW0/YCMke219YDpgIzU5NTk1OWA7bGV0IGg9ZS50ZXh0QWxpZ249PT1gcmlnaHRgP2YueCtmLnc6ZS50ZXh0QWxpZ249PT1gY2VudGVyYD9mLngrZi53LzI6Zi54LGc9Zi5hdXRvbWF0aWM/by5sZW5ndGg6TWF0aC5taW4oby5sZW5ndGgsTWF0aC5mbG9vcihmLmgvZCkpO2ZvcihsZXQgdD0wO3Q8Zzt0KyspZS5maWxsVGV4dChPdChlLG9bdF0sZi53KSxoLGYueSt0KmQpO2UucmVzdG9yZSgpfWZ1bmN0aW9uIG9pKGUsdCxuLHIsaSxhLG8scyxjKXtsZXQgbD10LnRyZW5kTGluZXM7aWYoIWx8fGwubGVuZ3RoPT09MClyZXR1cm47bGV0IHU9W10sZD1bXTtmb3IobGV0IGU9MDtlPHQudmFsdWVzLmxlbmd0aDtlKyspe2xldCBuPXQudmFsdWVzW2VdLHI9bz9vW2VdOmU7biE9bnVsbCYmciE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKG4pJiZOdW1iZXIuaXNGaW5pdGUocikmJih1LnB1c2gociksZC5wdXNoKG4pKX1pZih1Lmxlbmd0aDwyKXJldHVybjtsZXQgZj1lLmdldExpbmVEYXNoP2UuZ2V0TGluZURhc2goKTpbXTtmb3IobGV0IG8gb2YgbCl7bGV0IGw9UWUodSxkLG8udHJlbmRsaW5lVHlwZSx7cGVyaW9kOm8ucGVyaW9kLG9yZGVyOm8ub3JkZXIsaW50ZXJjZXB0Om8uaW50ZXJjZXB0LGZvcndhcmQ6by5mb3J3YXJkLGJhY2t3YXJkOm8uYmFja3dhcmR9KTtpZihsLnhzLmxlbmd0aDwyfHwhWy4uLmwueHMsLi4ubC55c10uZXZlcnkoTnVtYmVyLmlzRmluaXRlKSljb250aW51ZTtsZXQgZj1vLnRyZW5kbGluZVR5cGU9PT1gbGluZWFyYD9aZSh1LGQsby5pbnRlcmNlcHQpOm51bGwscD1mJiZbZi5zbG9wZSxmLmludGVyY2VwdCxmLnJTcXVhcmVkXS5ldmVyeShOdW1iZXIuaXNGaW5pdGUpP2Y6bnVsbCxtPWwueHMsaD1sLnlzO2lmKG8udHJlbmRsaW5lVHlwZT09PWBsaW5lYXJgKXtsZXQgZT0obC55c1sxXS1sLnlzWzBdKS8obC54c1sxXS1sLnhzWzBdfHwxKSx0PW8uYmFja3dhcmQ/PzAsbj1vLmZvcndhcmQ/PzA7bT1bbC54c1swXS10LGwueHNbMV0rbl0saD1bbC55c1swXS1lKnQsbC55c1sxXStlKm5dfWlmKCFbLi4ubSwuLi5oXS5ldmVyeShOdW1iZXIuaXNGaW5pdGUpKWNvbnRpbnVlO2xldCBnPW0ubWFwKChlLHQpPT5jP2MoZSxoW3RdKTp7eDpyKGUpLHk6aShoW3RdKX0pO2lmKGcuZXZlcnkoZT0+TnVtYmVyLmlzRmluaXRlKGUueCkmJk51bWJlci5pc0Zpbml0ZShlLnkpKSl7aWYoIW8ubGluZUhpZGRlbil7cz8uY2xpcExpbmVUb1Bsb3QmJihlLnNhdmUoKSxlLmJlZ2luUGF0aCgpLGUucmVjdChzLnBsb3RSZWN0Lngscy5wbG90UmVjdC55LHMucGxvdFJlY3QudyxzLnBsb3RSZWN0LmgpLGUuY2xpcCgpKSxlLnN0cm9rZVN0eWxlPW8ubGluZUNvbG9yP2AjJHtvLmxpbmVDb2xvcn1gOm4sZS5saW5lV2lkdGg9by5saW5lV2lkdGhFbXU/cnQoby5saW5lV2lkdGhFbXUsYSk6MS41LGUuc2V0TGluZURhc2goZmEoby5saW5lRGFzaD8/dm9pZCAwLGUubGluZVdpZHRoKSksZS5iZWdpblBhdGgoKTtmb3IobGV0IHQ9MDt0PGcubGVuZ3RoO3QrKyl7bGV0e3g6bix5OnJ9PWdbdF07dD09PTA/ZS5tb3ZlVG8obixyKTplLmxpbmVUbyhuLHIpfWUuc3Ryb2tlKCkscz8uY2xpcExpbmVUb1Bsb3QmJmUucmVzdG9yZSgpfWFpKGUsbyxwLGEscz97Li4ucyxhdXRvbWF0aWNBbmNob3I6Zy5hdCgtMSl9OnZvaWQgMCx0LnZhbEZvcm1hdENvZGUpfX1lLnNldExpbmVEYXNoKGYpfWZ1bmN0aW9uIHNpKGUpe2xldCB0PWU9Pntzd2l0Y2goZSl7Y2FzZWBleHBgOnJldHVybmBFeHBvbmVudGlhbGA7Y2FzZWBsb2dgOnJldHVybmBMb2dhcml0aG1pY2A7Y2FzZWBwb2x5YDpyZXR1cm5gUG9seW5vbWlhbGA7Y2FzZWBwb3dlcmA6cmV0dXJuYFBvd2VyYDtjYXNlYG1vdmluZ0F2Z2A6cmV0dXJuYE1vdmluZyBBdmVyYWdlYDtkZWZhdWx0OnJldHVybmBMaW5lYXJgfX0sbj1bXTtmb3IobGV0IHIgb2YgZSlmb3IobGV0IGUgb2Ygci50cmVuZExpbmVzPz9bXSl7aWYoZS5saW5lSGlkZGVuPT09ITApY29udGludWU7bGV0IGk9ci5saW5lQ29sb3I/P3IuY29sb3I7bi5wdXNoKHtuYW1lOmUubmFtZT8/YCR7dChlLnRyZW5kbGluZVR5cGUpfSAoJHtyLm5hbWV8fGBTZXJpZXNgfSlgLGNvbG9yOmUubGluZUNvbG9yPz9pLGxpbmVDb2xvcjplLmxpbmVDb2xvcj8/aSxsaW5lV2lkdGhFbXU6ZS5saW5lV2lkdGhFbXUsbGluZUhpZGRlbjohMSxjaGFydGV4U3R5bGU6e2xpbmVEYXNoOmUubGluZURhc2h9LHZhbHVlczpbXSxzZXJpZXNUeXBlOmBsaW5lYCxzaG93TWFya2VyOiExfSl9cmV0dXJuIG59ZnVuY3Rpb24gY2koZSl7cmV0dXJuIGRyKGUuY2hhcnRUeXBlKXx8ZnIoZSk/ZS5zZXJpZXM6ZS5zZXJpZXMuZmxhdE1hcChlPT5bZSwuLi5zaShbZV0pXSl9ZnVuY3Rpb24gbGkoZSx0LG4pe3JldHVybiBoZShlLG4pPz9NYXRoLm1heCg4LHQqLjA0NSl9ZnVuY3Rpb24gdWkoZSx0LG4scj0wKXtsZXQgaT10LnRyaW0oKS5zcGxpdCgvXHMrLykuZmlsdGVyKEJvb2xlYW4pO2lmKGkubGVuZ3RoPT09MClyZXR1cm5bYGBdO2xldCBhPVtdLG89YGAscz10PT57bGV0IGk9bz9gJHtvfSAke3R9YDp0O2lmKGUubWVhc3VyZVRleHQoaSkud2lkdGg8PW4pe289aTtyZXR1cm59aWYobyYmPShhLnB1c2gobyksYGApLGUubWVhc3VyZVRleHQodCkud2lkdGg8PW4rcil7bz10O3JldHVybn1sZXQgcz1BcnJheS5mcm9tKHQpLGM9MDtmb3IoO2M8cy5sZW5ndGg7KXtsZXQgdD1jKzEscj1zLmxlbmd0aCxpPWMrMTtmb3IoO3Q8PXI7KXtsZXQgYT1NYXRoLmZsb29yKCh0K3IpLzIpO2UubWVhc3VyZVRleHQocy5zbGljZShjLGEpLmpvaW4oYGApKS53aWR0aDw9bj8oaT1hLHQ9YSsxKTpyPWEtMX1sZXQgbD1zLnNsaWNlKGMsaSkuam9pbihgYCk7Yz1pLGM8cy5sZW5ndGg/YS5wdXNoKGwpOm89bH19O2ZvcihsZXQgZSBvZiBpKXMoZSk7cmV0dXJuIG8mJmEucHVzaChvKSxhLmxlbmd0aD9hOltgYF19ZnVuY3Rpb24gZGkoZSx0KXtyZXR1cm4vXlsrLV0/KD86XGQrKD86Wy4sXVxkKik/fFsuLF1cZCspJT8kLy50ZXN0KGUpP3QqLjE1OjB9ZnVuY3Rpb24gZmkoZSl7cmV0dXJuIGUuY2F0QXhpc1RpY2tMYWJlbFBvcyE9PWBub25lYH1mdW5jdGlvbiBwaShlKXtsZXQgdD1lLmNhdEF4aXNMYWJlbFJvdGF0aW9uO3JldHVybiB0PT1udWxsfHx0PT09MHx8TWF0aC5hYnModCk+NTRlNT8wOnQvNmU0KihNYXRoLlBJLzE4MCl9ZnVuY3Rpb24gbWkoZSx0LG4scixpKXtpZihpPT09MCl7ZS5maWxsVGV4dCh0LG4scik7cmV0dXJufWUuc2F2ZSgpLGUudHJhbnNsYXRlKG4sciksZS5yb3RhdGUoaSksZS50ZXh0QWxpZ249YHJpZ2h0YCxlLnRleHRCYXNlbGluZT1gbWlkZGxlYCxlLmZpbGxUZXh0KHQsMCwwKSxlLnJlc3RvcmUoKX1mdW5jdGlvbiBoaShlLHQsbj1KcihlKSl7cmV0dXJuIGUuY2F0QXhpc0lzRGF0ZT09PSEwP1p0KHtjYXRlZ29yaWVzOnQsZGF0ZTE5MDQ6ZS5kYXRlMTkwNCxiYXNlVGltZVVuaXQ6ZS5jYXRBeGlzQmFzZVRpbWVVbml0LG1ham9yVGltZVVuaXQ6ZS5jYXRBeGlzTWFqb3JUaW1lVW5pdCxtYWpvclVuaXQ6ZS5jYXRBeGlzTWFqb3JVbml0LG1pbm9yVGltZVVuaXQ6ZS5jYXRBeGlzTWlub3JUaW1lVW5pdCxtaW5vclVuaXQ6ZS5jYXRBeGlzTWlub3JVbml0LGV4cGxpY2l0TWluOmUuY2F0QXhpc01pbixleHBsaWNpdE1heDplLmNhdEF4aXNNYXgsY3Jvc3NCZXR3ZWVuOm90KGUpLHJldmVyc2VkOm59KTpudWxsfWZ1bmN0aW9uIGdpKGUsdCxuLHIpe2ZvcihsZXQgaSBvZiBlLmVyckJhcnM/P1tdKXtpZihpLmRpciE9PXQpY29udGludWU7bGV0IGE9aS5iYXJUeXBlPT09YHBsdXNgfHxpLmJhclR5cGU9PT1gYm90aGAsbz1pLmJhclR5cGU9PT1gbWludXNgfHxpLmJhclR5cGU9PT1gYm90aGAscz1NYXRoLm1heChlLnZhbHVlcy5sZW5ndGgsaS5wbHVzLmxlbmd0aCxpLm1pbnVzLmxlbmd0aCk7Zm9yKGxldCBlPTA7ZTxzO2UrKyl7bGV0IHQ9bihlKTtpZih0PT1udWxsfHwhTnVtYmVyLmlzRmluaXRlKHQpKWNvbnRpbnVlO2xldCBzPWkucGx1c1tlXSxjPWkubWludXNbZV07YSYmcyE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKHMpJiZyKHQrcyksbyYmYyE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKGMpJiZyKHQtYyl9fX1mdW5jdGlvbiBfaShlLHQsbixyPWB5YCxpPSExLGE9ITEpe2lmKCFlKXJldHVybiBudWxsO2xldCBvPTEvMCxzPS0xLzAsYz1lPT57TnVtYmVyLmlzRmluaXRlKGUpJiYobz1NYXRoLm1pbihvLGUpLHM9TWF0aC5tYXgocyxlKSl9O2EmJmMoMCk7Zm9yKGxldCBlIG9mIHQpaWYoZS51c2VTZWNvbmRhcnlBeGlzPT09ITApe2ZvcihsZXQgdCBvZiBlLnZhbHVlcyl0IT1udWxsJiZjKHQpO2dpKGUscix0PT5lLnZhbHVlc1t0XT8/bnVsbCxjKX0oIU51bWJlci5pc0Zpbml0ZShvKXx8IU51bWJlci5pc0Zpbml0ZShzKSkmJihvPTAscz0xKTtsZXQgbD1YZSh7ZGF0YU1pbjpvLGRhdGFNYXg6cyxleHBsaWNpdE1pbjpYcihlLm1pbixpKSxleHBsaWNpdE1heDpYcihlLm1heCxpKSxheGlzTGVuUHQ6bixheGlzT3JpZW50YXRpb246YHZlcnRpY2FsYCxtYWpvclVuaXQ6WHIoZS5tYWpvclVuaXQsaSksbWlub3JVbml0OlhyKGUubWlub3JVbml0LGkpLG5lZWRNaW5vcjplLm1pbm9yR3JpZGxpbmVzPT09ITB8fGUubWlub3JUaWNrTWFyayE9bnVsbCYmZS5taW5vclRpY2tNYXJrIT09YG5vbmVgLGxvZ0Jhc2U6ZS5sb2dCYXNlLHJldmVyc2VkOmUub3JpZW50YXRpb249PT1gbWF4TWluYH0pLHttaW46dSxtYXg6ZCxtYWpvclVuaXQ6Zn09bDtyZXR1cm57bWluOnUsbWF4OmQsc3RlcDpmLG1ham9yTGluZXM6bC5tYWpvclRpY2tzLG1pbm9yVGlja3M6bC5taW5vclRpY2tzLG1ha2VUb1k6KGUsdCk9Pm49PmUrdC1sLmZyYWN0aW9uKG4pKnR9fWZ1bmN0aW9uIHZpKGUsdCxuLHIsaSxhLG8pe2lmKCF0LmhpZGRlbil7aWYoZS5zYXZlKCksdC5taW5vckdyaWRsaW5lcyl7bGV0IHM9VnIodCxvKTtmb3IobGV0IHQgb2Ygbi5taW5vclRpY2tzKVJyKGUsaSxhLHIodCksITEscyl9aWYodC5tYWpvckdyaWRsaW5lcyl7bGV0IHM9SHIodCxvKTtmb3IobGV0IHQgb2Ygbi5tYWpvckxpbmVzKVJyKGUsaSxhLHIodCksITEscyl9ZS5yZXN0b3JlKCl9fWZ1bmN0aW9uIHlpKGUsdCxuLHIsaSxhLG8scyxjLGwsdSxkLGYscCxtLGg9ITEpe2xldCBnPW8rYyx7Y29sb3I6Xyx3aWR0aDp2fT1pdChuLmxpbmVDb2xvcixuLmxpbmVXaWR0aEVtdSx1KTtpZighbi5saW5lSGlkZGVuKXtsZXQgdD1lLmdldExpbmVEYXNoPy4oKT8/W107ZS5zdHJva2VTdHlsZT1fLGUubGluZVdpZHRoPXYsZS5zZXRMaW5lRGFzaChbXSksZS5iZWdpblBhdGgoKSxlLm1vdmVUbyhnLHMpLGUubGluZVRvKGcscytsKSxlLnN0cm9rZSgpLGUuc2V0TGluZURhc2godCl9aWYoIW4uaGlkZGVuKXtlLmZvbnQ9YCR7bi5mb250SXRhbGljP2BpdGFsaWMgYDpgYH0ke24uZm9udEJvbGQ/YGJvbGQgYDpgYH0ke2R9cHggJHtscih0LG4uZm9udEZhY2UsYG1pbm9yYCl9YCxlLmZpbGxTdHlsZT1uLmZvbnRDb2xvcj9gIyR7bi5mb250Q29sb3J9YDpwLGUudGV4dEFsaWduPWBsZWZ0YCxlLnRleHRCYXNlbGluZT1gbWlkZGxlYDtmb3IobGV0IHQgb2Ygci5tYWpvckxpbmVzKXtsZXQgcj1pKHQpO0ZyKGUsbi5tYWpvclRpY2tNYXJrLGB2YWxgLGcscixfLHYsITAsbi5saW5lSGlkZGVuLGBtYWpvcmAsdSksbi50aWNrTGFiZWxQb3MhPT1gbm9uZWAmJmUuZmlsbFRleHQoJHIoaD90LzEwMDp0LG4uZm9ybWF0Q29kZT8/bnVsbCxtLG4uZGlzcGxheVVuaXRzKSxnKzE0LHIpfWlmKG4ubWlub3JUaWNrTWFyayYmbi5taW5vclRpY2tNYXJrIT09YG5vbmVgKWZvcihsZXQgdCBvZiByLm1pbm9yVGlja3MpRnIoZSxuLm1pbm9yVGlja01hcmssYHZhbGAsZyxpKHQpLF8sdiwhMCxuLmxpbmVIaWRkZW4sYG1pbm9yYCx1KX1uLnRpdGxlJiZiaShlLHQsbixhLG8scyxjLGwsZix1KX1mdW5jdGlvbiBiaShlLHQsbixyLGksYSxvLHMsYyxsKXtpZighbi50aXRsZSlyZXR1cm47bGV0IHU9YmUobi50aXRsZUZvbnRTaXplSHB0LGwpLGQ9bi50aXRsZUZvbnRDb2xvcj9gIyR7bi50aXRsZUZvbnRDb2xvcn1gOm4uZm9udENvbG9yP2AjJHtuLmZvbnRDb2xvcn1gOmAjNTU1YDttcihlLG4udGl0bGUsaStvK2MrdSouNixhK3MvMixgcmlnaHRgLHUsbi50aXRsZUZvbnRCb2xkPz8hMCxuLnRpdGxlRm9udEl0YWxpYz8/ITEsZCxzLGxyKHQsbi50aXRsZUZvbnRGYWNlLGBtYWpvcmApLG4udGl0bGVSb3RhdGlvbixuLnRpdGxlVmVydGljYWxNb2RlLG4udGl0bGVNYW51YWxMYXlvdXQscil9ZnVuY3Rpb24geGkoZSx0LG4scixpLGEsbyxzLGMpe2lmKG4uaGlkZGVufHxyLmxlbmd0aD09PTApcmV0dXJuO2xldHtjb2xvcjpsLHdpZHRoOnV9PWl0KG4ubGluZUNvbG9yLG4ubGluZVdpZHRoRW11LGMpO2lmKCFuLmxpbmVIaWRkZW4pe2xldCB0PWUuZ2V0TGluZURhc2g/LigpPz9bXTtlLnN0cm9rZVN0eWxlPWwsZS5saW5lV2lkdGg9dSxlLnNldExpbmVEYXNoKFtdKSxlLmJlZ2luUGF0aCgpLGUubW92ZVRvKGEsbyksZS5saW5lVG8oYStzLG8pLGUuc3Ryb2tlKCksZS5zZXRMaW5lRGFzaCh0KX1sZXQgZD1uLm9yaWVudGF0aW9uPT09YG1heE1pbmAsZj1NYXRoLm1heCgxLE1hdGguZmxvb3Iobi50aWNrTGFiZWxTa2lwPz8xKSkscD1NYXRoLm1heCgxLE1hdGguZmxvb3Iobi50aWNrTWFya1NraXA/PzEpKSxtPXIubGVuZ3RoLGg9ZT0+YSsoKGQ/bS0xLWU6ZSkrLjUpL20qcztpZighbi5saW5lSGlkZGVuJiZuLm1ham9yVGlja01hcmshPT1gbm9uZWApe2xldCByPW90KHQpLGk9cj9tOm0tMTtmb3IobGV0IHQ9MDt0PD1pO3QrPXApe2xldCBmPWQ/aS10OnQscD1yP2YvbTptPT09MT8uNTpmLyhtLTEpO0ZyKGUsbi5tYWpvclRpY2tNYXJrLGBjYXRgLG8sYStwKnMsbCx1LCEwLG4ubGluZUhpZGRlbixgbWFqb3JgLGMpfX1sZXQgZz1oZShuLmZvbnRTaXplSHB0LGMpPz85KmM7aWYobi50aWNrTGFiZWxQb3MhPT1gbm9uZWApe2UuZm9udD11cihnLGxyKHQsbi5mb250RmFjZSxgbWlub3JgKSxuLmZvbnRCb2xkPz8hMSxuLmZvbnRJdGFsaWM/PyExKSxlLmZpbGxTdHlsZT1uLmZvbnRDb2xvcj9gIyR7bi5mb250Q29sb3J9YDpgIzU1NWAsZS50ZXh0QWxpZ249YGNlbnRlcmAsZS50ZXh0QmFzZWxpbmU9YGJvdHRvbWA7bGV0IGk9TWF0aC5tYXgoMSxzL20tNCk7Zm9yKGxldCBhPTA7YTxtO2ErPWYpZS5maWxsVGV4dChPdChlLGJ0KHJbYV0sbi5mb3JtYXRDb2RlLHQuZGF0ZTE5MDQpLGkpLGgoYSksby1UZShnKSl9aWYobi50aXRsZSl7bGV0IHI9YmUobi50aXRsZUZvbnRTaXplSHB0LGMpO21yKGUsbi50aXRsZSxhK3MvMixvLShuLnRpY2tMYWJlbFBvcz09PWBub25lYD8wOmcrVGUoZykpLXIvMi00LGBob3Jpem9udGFsYCxyLG4udGl0bGVGb250Qm9sZD8/ITAsbi50aXRsZUZvbnRJdGFsaWM/PyExLG4udGl0bGVGb250Q29sb3I/YCMke24udGl0bGVGb250Q29sb3J9YDpgIzU1NWAscyxscih0LG4udGl0bGVGb250RmFjZSxgbWFqb3JgKSxuLnRpdGxlUm90YXRpb24sbi50aXRsZVZlcnRpY2FsTW9kZSxuLnRpdGxlTWFudWFsTGF5b3V0LGkpfX1mdW5jdGlvbiBTaShlLHQsbil7bGV0IHI9bi8oZS50aXRsZUZvbnRTaXplSHB0IT1udWxsJiZlLnRpdGxlRm9udFNpemVIcHQ+PTEwMCYmZS50aXRsZUZvbnRTaXplSHB0PD00ZTU/ZS50aXRsZUZvbnRTaXplSHB0LzEwMDoxNCksaT1oZSh0LmZvbnRTaXplSHB0LHIpPz9uLGE9Y3IoZSx0LmZvbnRGYWNlPz9lLnRpdGxlRm9udEZhY2UpO3JldHVybntmb250OnVyKGksYT9gIiR7YX0iLCBDYWxpYnJpLCBBcmlhbCwgc2Fucy1zZXJpZmA6YENhbGlicmksIEFyaWFsLCBzYW5zLXNlcmlmYCx0LmJvbGQ/PyhlLnRpdGxlUmljaFJ1bnM/Lmxlbmd0aD8hMTplLnRpdGxlRm9udEJvbGQ/PyEwKSx0Lml0YWxpYz8/ITEpLGZvbnRTaXplOmksY29sb3I6dC5jb2xvcj9gIyR7dC5jb2xvcn1gOmUudGl0bGVGb250Q29sb3I/YCMke2UudGl0bGVGb250Q29sb3J9YDpgIzMzM2B9fWZ1bmN0aW9uIENpKGUsdCxuLHIpe2xldCBpPXQudGl0bGVSaWNoUnVucz8ubGVuZ3RoP3QudGl0bGVSaWNoUnVuczp0LnRpdGxlP1t7dGV4dDp0LnRpdGxlfV06W10sYT1be3BpZWNlczpbXSx3aWR0aDowLGhlaWdodDpyfV0sbz0oKT0+e2xldCBlPXtwaWVjZXM6W10sd2lkdGg6MCxoZWlnaHQ6cn07cmV0dXJuIGEucHVzaChlKSxlfSxzPWFbMF07Zm9yKGxldCBhIG9mIGkpe2xldCBpPVNpKHQsYSxyKTtmb3IobGV0IHQgb2YgYS50ZXh0LnNwbGl0KC8oXG58W1x0IF0rKS8pLmZpbHRlcihlPT5lLmxlbmd0aD4wKSl7aWYodD09PWAKYCl7cz1vKCk7Y29udGludWV9ZS5mb250PWkuZm9udDtsZXQgcj1lLm1lYXN1cmVUZXh0KHQpLndpZHRoLGE9L15bXHQgXSskLy50ZXN0KHQpOyFhJiZzLnBpZWNlcy5sZW5ndGg+MCYmcy53aWR0aCtyPm4mJihzPW8oKSksIShhJiZzLnBpZWNlcy5sZW5ndGg9PT0wKSYmKHMucGllY2VzLnB1c2goe3RleHQ6dCx3aWR0aDpyLGZvbnQ6aS5mb250LGNvbG9yOmkuY29sb3J9KSxzLndpZHRoKz1yLHMuaGVpZ2h0PU1hdGgubWF4KHMuaGVpZ2h0LGkuZm9udFNpemUpKX19cmV0dXJuIGF9ZnVuY3Rpb24gd2koZSx0LG4scixpKXtsZXQgYT1DZSh0LHIsaSk7aWYoYS5iYW5kSD09PTB8fCF0LnRpdGxlUmljaFJ1bnM/Lmxlbmd0aClyZXR1cm4gYTtsZXQgbz1lLmZvbnQscz1DaShlLHQsTWF0aC5tYXgoMSxuKSxhLmZvbnRQeCk7ZS5mb250PW87bGV0IGM9cy5yZWR1Y2UoKGUsdCk9PmUrdC5oZWlnaHQsMCk7cmV0dXJuey4uLmEsYmFuZEg6YS50b3BQYWQrYythLmJvdHRvbVBhZH19ZnVuY3Rpb24gVGkoZSx0LG4scixpLGEpe2lmKCF0LnRpdGxlKXJldHVybjtpZighdC50aXRsZVJpY2hSdW5zPy5sZW5ndGgpe2xldCBvPWNyKHQsdC50aXRsZUZvbnRGYWNlKSxzPW8/YCIke299IiwgQ2FsaWJyaSwgQXJpYWwsIHNhbnMtc2VyaWZgOmBDYWxpYnJpLCBBcmlhbCwgc2Fucy1zZXJpZmA7ZS5mb250PWAke3QudGl0bGVGb250Qm9sZD8/ITA/YGJvbGQgYDpgYH0ke2F9cHggJHtzfWAsZS5maWxsU3R5bGU9dC50aXRsZUZvbnRDb2xvcj9gIyR7dC50aXRsZUZvbnRDb2xvcn1gOmAjMzMzYCxlLnRleHRBbGlnbj1gY2VudGVyYCxlLnRleHRCYXNlbGluZT1gdG9wYCxlLmZpbGxUZXh0KHQudGl0bGUsbitpLzIscik7cmV0dXJufWUuc2F2ZSgpO2xldCBvPUNpKGUsdCxNYXRoLm1heCgxLGkpLGEpO2UudGV4dEFsaWduPWBsZWZ0YCxlLnRleHRCYXNlbGluZT1gdG9wYDtsZXQgcz1yO2ZvcihsZXQgdCBvZiBvKXtsZXQgcj1uKyhpLXQud2lkdGgpLzI7Zm9yKGxldCBuIG9mIHQucGllY2VzKWUuZm9udD1uLmZvbnQsZS5maWxsU3R5bGU9bi5jb2xvcixlLmZpbGxUZXh0KG4udGV4dCxyLHMpLHIrPW4ud2lkdGg7cys9dC5oZWlnaHR9ZS5yZXN0b3JlKCl9ZnVuY3Rpb24gRWkoZSx0LG4scixpLGEsbyxzKXtpZighdC50aXRsZSlyZXR1cm47bGV0IGM9dC50aXRsZU1hbnVhbExheW91dDtpZihjKXtsZXQgbD1jcih0LHQudGl0bGVGb250RmFjZSksdT1sP2AiJHtsfSIsIENhbGlicmksIEFyaWFsLCBzYW5zLXNlcmlmYDpgQ2FsaWJyaSwgQXJpYWwsIHNhbnMtc2VyaWZgO2UuZm9udD1gJHt0LnRpdGxlRm9udEJvbGQ/PyEwP2Bib2xkIGA6YGB9JHtzfXB4ICR7dX1gO2xldCBkPUNpKGUsdCxNYXRoLm1heCgxLGkpLHMpLGY9TWF0aC5taW4oaSxNYXRoLm1heCguLi5kLm1hcChlPT5lLndpZHRoKSwwKSkscD17eDpuKyhpLWYpLzIseTpvLHc6ZixoOnN9LG09T2Uoey4uLmMsdzp2b2lkIDAsaDp2b2lkIDB9LHt4Om4seTpyLHc6aSxoOmF9LHApO2lmKG0pe1RpKGUsdCxtLngsbS55LG0udyxzKTtyZXR1cm59fVRpKGUsdCxuLG8saSxzKX1mdW5jdGlvbiBEaShlKXtpZihlLmNhdGVnb3JpZXMubGVuZ3RoPjApcmV0dXJuIGUuY2F0ZWdvcmllcztsZXQgdD1lLnNlcmllc1swXTtpZih0Py5jYXRlZ29yaWVzJiZ0LmNhdGVnb3JpZXMubGVuZ3RoPjApcmV0dXJuIHQuY2F0ZWdvcmllcztsZXQgbj0wO2ZvcihsZXQgdCBvZiBlLnNlcmllcyl0LnZhbHVlcy5sZW5ndGg+biYmKG49dC52YWx1ZXMubGVuZ3RoKTtyZXR1cm4gbj4wP0FycmF5LmZyb20oe2xlbmd0aDpufSwoZSx0KT0+U3RyaW5nKHQrMSkpOltdfWZ1bmN0aW9uIE9pKGUsdCl7bGV0IG49TWF0aC5tYXgoZS54LHQueCkscj1NYXRoLm1heChlLnksdC55KSxpPU1hdGgubWluKGUueCtlLncsdC54K3QudyksYT1NYXRoLm1pbihlLnkrZS5oLHQueSt0LmgpO3JldHVybiBpPm4mJmE+cj97eDpuLHk6cix3OmktbixoOmEtcn06bnVsbH1mdW5jdGlvbiBraShlLHQsbixyLGksYSxvLHMsYyxsLHUsZCxmLHA9ITEsbSl7bGEoZSx0LHtraW5kOmBiYXJgLHJlY3Q6bz09PWB2ZXJ0aWNhbGA/e3g6bix5OnIsdzphLGg6aX06e3g6bix5OnIsdzppLGg6YX0sb3JpZW50YXRpb246byxuZWdhdGl2ZTpwLHBvc2l0aW9uOnM/P2BvdXRFbmRgfSx1LGwsYz9gIyR7Y31gOmAjMzMzYCxmLGQsbSl9ZnVuY3Rpb24gQWkoZSl7cmV0dXJuIDcqZX1mdW5jdGlvbiBqaShlLHQsbixyLGk9e30pe2xldHt4OmEseTpvLHc6cyxoOmN9PW4sbD10LmNoYXJ0VHlwZT09PWBjbHVzdGVyZWRCYXJIYHx8dC5jaGFydFR5cGU9PT1gc3RhY2tlZEJhckhgfHx0LmNoYXJ0VHlwZT09PWBzdGFja2VkQmFySFBjdGAsdT10LmNoYXJ0VHlwZS5zdGFydHNXaXRoKGBzdGFja2VkYCksZD10LmNoYXJ0VHlwZT09PWBzdGFja2VkQmFyUGN0YHx8dC5jaGFydFR5cGU9PT1gc3RhY2tlZEJhckhQY3RgLGY9dC5zZXJpZXMuZmlsdGVyKGU9PmUuc2VyaWVzVHlwZSE9PWBsaW5lYCYmZS5zZXJpZXNUeXBlIT09YHNjYXR0ZXJgJiZlLnNlcmllc1R5cGUhPT1gYXJlYWApLHA9ZT0+ZS5iYXJHcm91cERpcmVjdGlvbj09bnVsbD9sOmUuYmFyR3JvdXBEaXJlY3Rpb249PT1gYmFyYCxtPWYuZmlsdGVyKGU9PnAoZSk9PT1sKSxoPWU9PmUudXNlU2Vjb25kYXJ5QXhpcz09PSEwP2BzZWNvbmRhcnktZGVmYXVsdGA6YHByaW1hcnktZGVmYXVsdGAsZz1lPT5lLmJhckdyb3VwSW5kZXg9PW51bGw/aChlKTpgZ3JvdXAtJHtlLmJhckdyb3VwSW5kZXh9YCxfPWU9PmUuYmFyR3JvdXBHcm91cGluZz8/KGQ/YHBlcmNlbnRTdGFja2VkYDp1P2BzdGFja2VkYDpgY2x1c3RlcmVkYCksdj1lPT57bGV0IHQ9XyhlKTtyZXR1cm4gdD09PWBzdGFja2VkYHx8dD09PWBwZXJjZW50U3RhY2tlZGB9LHk9ZT0+XyhlKT09PWBwZXJjZW50U3RhY2tlZGAsYj10LnNlcmllcy5maWx0ZXIoZT0+ZS5zZXJpZXNUeXBlPT09YGxpbmVgKSx4PXQuc2VyaWVzLmZpbHRlcihlPT5lLnNlcmllc1R5cGU9PT1gYXJlYWApLFM9dC5zZXJpZXMuZmlsdGVyKGU9PmUuc2VyaWVzVHlwZT09PWBzY2F0dGVyYCksQz1uZXcgTWFwKHQuc2VyaWVzLm1hcCgoZSx0KT0+W2UsdF0pKSx3PXQuc2VyaWVzLnNvbWUoZT0+ZS51c2VTZWNvbmRhcnlBeGlzPT09ITApLFQ9IWwmJnQuc2Vjb25kYXJ5VmFsQXhpcyYmdz90LnNlY29uZGFyeVZhbEF4aXM6bnVsbCxFPVQ/bS5maWx0ZXIoZT0+ZS51c2VTZWNvbmRhcnlBeGlzPT09ITApOltdLEQ9VD9tLmZpbHRlcihlPT5lLnVzZVNlY29uZGFyeUF4aXMhPT0hMCk6bSxPPUUubGVuZ3RoPjA/dC5zZWNvbmRhcnlDYXRBeGlzOm51bGwsaz1FWzBdPy5jYXRlZ29yaWVzPy5sZW5ndGg/RVswXS5jYXRlZ29yaWVzOnQuY2F0ZWdvcmllcyxBPURpKHQpLGo9QS5sZW5ndGg7aWYoaj09PTApcmV0dXJuO2xldCBNPW5ldyBNYXA7Zm9yKGxldCBlIG9mIG0pe2xldCB0PWcoZSksbj1NLmdldCh0KTtuP24ucHVzaChlKTpNLnNldCh0LFtlXSl9bGV0IE49ZT0+TS5nZXQoZyhlKSk/P1tlXSxQPShlLHQpPT5OKGUpLnJlZHVjZSgoZSxuKT0+ZStNYXRoLmFicyhuLnZhbHVlc1t0XT8/MCksMCl8fDEsRj0oZSx0KT0+eShlKT8xMDAvUChlLHQpOjEsST1lPT55KGUpPyhlLmVyckJhcnM/P1tdKS5tYXAodD0+KHsuLi50LHBsdXM6dC5wbHVzLm1hcCgodCxuKT0+dD09bnVsbD90OnQqRihlLG4pKSxtaW51czp0Lm1pbnVzLm1hcCgodCxuKT0+dD09bnVsbD90OnQqRihlLG4pKX0pKTplLmVyckJhcnM/P1tdLEw9ZnIodCksUj1tLm1hcChlPT5uZXcgTWFwKChlLmRhdGFQb2ludE92ZXJyaWRlcz8/W10pLm1hcChlPT5bZS5pZHgsZV0pKSksej1tLm1hcChlPT5uZXcgTWFwKChlLmRhdGFMYWJlbE92ZXJyaWRlcz8/W10pLm1hcChlPT5bZS5pZHgsZV0pKSksZWU9bS5tYXAoKGUsdCk9Pl9hKGUsdCkpLEI9dC5jaGFydGV4RGF0YVBvaW50U3R5bGUhPW51bGx8fHQuY2hhcnRleENvbG9yUGFsZXR0ZSE9bnVsbCxWPW5ldyBNYXA7QiYmbS5mb3JFYWNoKChlLG4pPT57bGV0IHI9ZWVbbl0saT1lLmNvbG9yPz9TYSh0LHIsbS5sZW5ndGgsZS5jaGFydGV4U3R5bGUpO1Yuc2V0KGUsQWEodCxlLm5hbWUsZSx0LmNoYXJ0ZXhEYXRhUG9pbnRTdHlsZSxyLG0ubGVuZ3RoLGkpKX0pO2xldCBIPXsuLi50LHNlcmllczooQj9tOnQuc2VyaWVzKS5tYXAoZT0+Vi5nZXQoZSk/P2UpfSxVPXdpKGUsdCxzLGMsciksdGU9VS5mb250UHgsVz1VLnRvcFBhZCxuZT1VLmJhbmRILEc9bGkodC5jYXRBeGlzRm9udFNpemVIcHQsYyxyKSxLPWxpKHQudmFsQXhpc0ZvbnRTaXplSHB0LGMscikscT0hbCYmdC5jYXRBeGlzTm9NdWx0aUxldmVsTGFiZWxzIT09ITAmJih0LmNhdGVnb3J5TGV2ZWxzPy5sZW5ndGg/PzApPjE/dC5jYXRlZ29yeUxldmVsczpudWxsLEo9cT8ocS5sZW5ndGgtMSkqKEcrNCk6MCxZPWw/MDpfcih0LHIpLHJlPWw/MDp2cihlLHQsciksaWU9anIoZSxILHMsYywuMjIscikse2xlZ1JpZ2h0VzphZSxsZWdMZWZ0VzpvZSxsZWdUb3BIOnNlLGxlZ0JvdHRvbUg6Y2V9PXllKGllKSxsZT1TZSh0LHMsYyxyKSx1ZT1sZS5jYXRGb250UHgsZGU9bGUudmFsRm9udFB4LGZlPWw/dC52YWxBeGlzVGl0bGU/ZGUrWChjKSs0OjA6bGUuY2F0QmFuZEgscGU9bD90LmNhdEF4aXNUaXRsZT91ZStYKHMpKzQ6MDpsZS52YWxCYW5kVyxtZT1oZShPPy5mb250U2l6ZUhwdCxyKT8/OSpyLGdlPU8mJiFPLmhpZGRlbiYmTy50aWNrTGFiZWxQb3MhPT1gbm9uZWA/bWUrVGUobWUpKzI6MCxfZT1PPy50aXRsZT9iZShPLnRpdGxlRm9udFNpemVIcHQscikrNjowLHZlPW5lK3NlK0svMisyK2dlK19lLHhlPWw/KHQudmFsQXhpc0hpZGRlbj9jKi4wMjp3ZShLKSkrZmUrY2U6d2UoRykrSitZK2ZlK2NlLENlPWMtdmUteGUsT2U9MDtpZihsJiYhdC5jYXRBeGlzSGlkZGVuJiZmaSh0KSl7bGV0IG49dC5jYXRBeGlzRm9udFNpemVIcHQ9PW51bGw/TWF0aC5tYXgoOCxNYXRoLm1pbigxMSxDZS9qKi41KSk6RztlLnNhdmUoKSxlLmZvbnQ9YCR7bn1weCAke2xyKHQsdC5jYXRBeGlzRm9udEZhY2UsYG1pbm9yYCl9YDtmb3IobGV0IG4gb2YgQSlPZT1NYXRoLm1heChPZSxlLm1lYXN1cmVUZXh0KGJ0KG4sdC5jYXRBeGlzRm9ybWF0Q29kZSx0LmRhdGUxOTA0KSkud2lkdGgpO2UucmVzdG9yZSgpLE9lKz0odC5jYXRBeGlzRm9udFNpemVIcHQ9PW51bGw/NDpFZShuKSkrUGUqcn1sZXQgQWU9TWF0aC5taW4oT2UsTWF0aC5tYXgoMCxzLzItcGUtb2UpKSxqZT1sP3MtKCh0LmNhdEF4aXNIaWRkZW4/cyouMDM6QWUpK3BlK29lKS0oYWUrcyouMDMpOjAsTWU9dC52YWxBeGlzSGlkZGVuP3ZvaWQgMDoobD9qZTpDZSkvcixOZT0oZSx0KT0+e2xldCBuPW1bZV0scj1uPy52YWx1ZXNbdF0/PzA7aWYoIW58fCF2KG4pKXJldHVybiByO2xldCBpPU4obiksYT15KG4pLG89MTthJiYobz1pLnJlZHVjZSgoZSxuKT0+ZStNYXRoLmFicyhuLnZhbHVlc1t0XT8/MCksMCl8fDEpO2xldCBzPWE/ci9vKjEwMDpyLGM9MCxsPWkuaW5kZXhPZihuKTtmb3IobGV0IGU9MDtlPD1sO2UrKyl7bGV0IG49aVtlXT8udmFsdWVzW3RdPz8wLHI9YT9uL28qMTAwOm47czwwPT1yPDAmJihjKz1yKX1yZXR1cm4gY30sRmU9RC5zb21lKHkpLExlPTAsUmU9MDtmb3IobGV0IGU9MDtlPGo7ZSsrKXtsZXQgdD1uZXcgTWFwO2ZvcihsZXQgZSBvZiBEKXtsZXQgbj1nKGUpLHI9dC5nZXQobik7cj9yLnB1c2goZSk6dC5zZXQobixbZV0pfWZvcihsZXQgbiBvZiB0LnZhbHVlcygpKXtsZXQgdD1uWzBdLHI9dih0KSxpPXkodCksYT1pJiZuLnJlZHVjZSgodCxuKT0+dCtNYXRoLmFicyhuLnZhbHVlc1tlXT8/MCksMCl8fDEsbz0wLHM9MDtmb3IobGV0IHQgb2Ygbil7bGV0IG49dC52YWx1ZXNbZV0/PzAsYz1pP24vYSoxMDA6bjtyP2M+PTA/bys9YzpzKz1jOihMZT1NYXRoLm1heChMZSxjKSxSZT1NYXRoLm1pbihSZSxjKSl9ciYmKExlPU1hdGgubWF4KExlLG8pLFJlPU1hdGgubWluKFJlLHMpKX19Zm9yKGxldCBlIG9mWy4uLmIsLi4ueF0paWYoIShUJiZlLnVzZVNlY29uZGFyeUF4aXM9PT0hMCkpZm9yKGxldCB0PTA7dDxqO3QrKyl7bGV0IG49ZS52YWx1ZXNbdF07aWYobj09bnVsbCljb250aW51ZTtsZXQgcj1GZT9uKjEwMDpuO0xlPU1hdGgubWF4KExlLHIpLFJlPU1hdGgubWluKFJlLHIpfWZvcihsZXQgZSBvZiBEKXtsZXQgdD1tLmluZGV4T2YoZSk7Zm9yKGxldCBuIG9mIEkoZSkpZ2koey4uLmUsZXJyQmFyczpbbl19LGw/YHhgOmB5YCxuPT5lLnZhbHVlc1tuXT09bnVsbD9udWxsOk5lKHQsbiksZT0+e0xlPU1hdGgubWF4KExlLGUpLFJlPU1hdGgubWluKFJlLGUpfSl9Zm9yKGxldCBlIG9mWy4uLmIsLi4ueF0pVCYmZS51c2VTZWNvbmRhcnlBeGlzPT09ITB8fGdpKGUsYHlgLHQ9PmUudmFsdWVzW3RdPz9udWxsLGU9PntsZXQgdD1GZT9lKjEwMDplO0xlPU1hdGgubWF4KExlLHQpLFJlPU1hdGgubWluKFJlLHQpfSk7RmUmJihELnNvbWUoZT0+ZS52YWx1ZXMuc29tZShlPT5lIT1udWxsJiZlPjApKSYmKExlPU1hdGgubWF4KExlLDEwMCkpLEQuc29tZShlPT5lLnZhbHVlcy5zb21lKGU9PmUhPW51bGwmJmU8MCkpJiYoUmU9TWF0aC5taW4oUmUsLTEwMCkpKSx0LnZhbE1heCE9bnVsbCYmKExlPUZlP3QudmFsTWF4KjEwMDp0LnZhbE1heCksdC52YWxNaW4hPW51bGwmJihSZT1GZT90LnZhbE1pbioxMDA6dC52YWxNaW4pLExlPT09MCYmUmU9PT0wJiYoTGU9MSk7bGV0IHplPW5pKHQsUmUsTGUsTWUsRmUsbD9gaG9yaXpvbnRhbGA6YHZlcnRpY2FsYCkse3N0ZXA6QmV9PXplLFZlPW5ldyBTZXQobSksSGU9bmV3IFNldChmKSxVZT1FLnNvbWUoeSksV2U9dC5zZXJpZXMuZmlsdGVyKGU9PiFIZS5oYXMoZSl8fFZlLmhhcyhlKSkubWFwKGU9PntpZihlLnVzZVNlY29uZGFyeUF4aXMhPT0hMClyZXR1cm4gZTtpZihWZS5oYXMoZSkpe2xldCB0PW0uaW5kZXhPZihlKTtyZXR1cm57Li4uZSx2YWx1ZXM6ZS52YWx1ZXMubWFwKChlLG4pPT5lPT1udWxsP2U6TmUodCxuKSksZXJyQmFyczpJKGUpfX1yZXR1cm4gVWU/ey4uLmUsdmFsdWVzOmUudmFsdWVzLm1hcChlPT5lPT1udWxsP2U6ZSoxMDApLGVyckJhcnM6KGUuZXJyQmFycz8/W10pLm1hcChlPT4oey4uLmUscGx1czplLnBsdXMubWFwKGU9PmU9PW51bGw/ZTplKjEwMCksbWludXM6ZS5taW51cy5tYXAoZT0+ZT09bnVsbD9lOmUqMTAwKX0pKX06ZX0pO2lmKFVlJiZFWzBdKXtsZXQgZT1bXTtFLnNvbWUoZT0+ZS52YWx1ZXMuc29tZShlPT5lIT1udWxsJiZlPjApKSYmZS5wdXNoKDEwMCksRS5zb21lKGU9PmUudmFsdWVzLnNvbWUoZT0+ZSE9bnVsbCYmZTwwKSkmJmUucHVzaCgtMTAwKSxXZS5wdXNoKHsuLi5FWzBdLHZhbHVlczplLGVyckJhcnM6W119KX1sZXQgR2U9X2koVCxXZSxDZS9yLGw/YHhgOmB5YCxVZSxFLmxlbmd0aD4wKSxLZT1NYXRoLm1heCg4LE1hdGgubWluKDExLGMvMjApKSxxZT10LnZhbEF4aXNGb250U2l6ZUhwdD09bnVsbD9NYXRoLm1heCg4LE1hdGgubWluKDExLENlLzIwKSk6SyxKZT1lLmZvbnQsWWU9MCxaZT0wO2lmKCFsJiYhdC52YWxBeGlzSGlkZGVuKXtlLmZvbnQ9YCR7cWV9cHggJHtscih0LHQudmFsQXhpc0ZvbnRGYWNlLGBtaW5vcmApfWA7bGV0IG49MDtmb3IobGV0IHIgb2YgemUubWFqb3JMaW5lcyl7bGV0IGk9WnIodCxyLEZlKTtuPU1hdGgubWF4KG4sZS5tZWFzdXJlVGV4dChpKS53aWR0aCl9WWU9bixaZT1ZZSsxNn1sZXQgUWU9aGUoVD8uZm9udFNpemVIcHQscik/P0tlLCRlPTA7aWYoVCYmIVQuaGlkZGVuKXtlLmZvbnQ9YCR7UWV9cHggJHtscih0LFQuZm9udEZhY2UsYG1pbm9yYCl9YDtsZXQgbj0wO2ZvcihsZXQgciBvZiBHZT8ubWFqb3JMaW5lcz8/W10pbj1NYXRoLm1heChuLGUubWVhc3VyZVRleHQoJHIoVWU/ci8xMDA6cixULmZvcm1hdENvZGU/P251bGwsdC5kYXRlMTkwNCxULmRpc3BsYXlVbml0cykpLndpZHRoKTskZT1uKzE4fWUuZm9udD1KZTtsZXQgZXQ9VCYmVC50aXRsZT9iZShULnRpdGxlRm9udFNpemVIcHQscikrODowLHR0PXt0OnZlLHI6YWUrcyouMDMrJGUrZXQsYjp4ZSxsOmw/KHQuY2F0QXhpc0hpZGRlbj9zKi4wMzpBZSkrcGUrb2U6b2UrTWF0aC5tYXgocGUrWmUscmUpfSxudD1sP3t0OjAscjp0LnZhbEF4aXNIaWRkZW4/MDpxZS8yLGI6dC52YWxBeGlzSGlkZGVuPzA6cWUrZmUsbDp0LmNhdEF4aXNIaWRkZW4/MDpPZStwZX06RGUoe3ZhbEF4aXNIaWRkZW46dC52YWxBeGlzSGlkZGVuLGNhdEF4aXNIaWRkZW46dC5jYXRBeGlzSGlkZGVuLHZhbExhYmVsV2lkdGg6WWUsdmFsTGFiZWxGb250UHg6cWUsY2F0TGFiZWxGb250UHg6Ryx2YWxMYWJlbEdhcFB4OnQudmFsQXhpc0ZvbnRTaXplSHB0PT1udWxsPzEyOkVlKHFlKSxjYXRMYWJlbEdhcFB4OnQuY2F0QXhpc0ZvbnRTaXplSHB0PT1udWxsPzM6VGUoRyksb3V0ZXJUZXh0TWFyZ2luUHg6UGUqcix2YWxUaXRsZUJhbmRXOnBlLGNhdFRpdGxlQmFuZEg6ZmUsc2Vjb25kYXJ5QmFuZFc6JGUrZXR9KSxhdD1rZSh0LGEsbyxzLGMscix7dGl0bGVCYW5kOlUsbGVnZW5kU2lkZVJlc2VydmVGcmFjOi4yMixsZWdlbmRSZXNlcnZlOmllLHBhZDp0dCxob25vclBsb3RBcmVhTWFudWFsTGF5b3V0OiEwLG1hbnVhbE91dGVySW5zZXRzOm50fSksc3Q9d2koZSx0LGF0LnBsb3RSZWN0LnB3LGMscik7TWF0aC5hYnMoc3QuYmFuZEgtVS5iYW5kSCk+LjAxJiYoVT1zdCx0ZT1VLmZvbnRQeCxXPVUudG9wUGFkLG5lPVUuYmFuZEgsdmU9bmUrc2UrSy8yKzIrZ2UrX2UsdHQudD12ZSxhdD1rZSh0LGEsbyxzLGMscix7dGl0bGVCYW5kOlUsbGVnZW5kU2lkZVJlc2VydmVGcmFjOi4yMixsZWdlbmRSZXNlcnZlOmllLHBhZDp0dCxob25vclBsb3RBcmVhTWFudWFsTGF5b3V0OiEwLG1hbnVhbE91dGVySW5zZXRzOm50fSkpO2xldHtweDA6Y3QscHkwOmx0LHB3OnV0fT1hdC5wbG90UmVjdCx7cGg6ZHR9PWF0LnBsb3RSZWN0O2lmKEVpKGUsdCx0LnRpdGxlTWFudWFsTGF5b3V0fHwhdC50aXRsZVJpY2hSdW5zPy5sZW5ndGg/YTpjdCxvLHQudGl0bGVNYW51YWxMYXlvdXR8fCF0LnRpdGxlUmljaFJ1bnM/Lmxlbmd0aD9zOnV0LGMsbytXLHRlKSx1dDw9MHx8ZHQ8PTApcmV0dXJuO2xldCBmdD1oaSh0LEEsbD8hSnIodCk6SnIodCkpLHB0PXBpKHQpLG10PVtdLGh0PTA7aWYoIWwmJiFmdCYmIXQuY2F0QXhpc0hpZGRlbiYmZmkodCkmJnB0PT09MCl7bGV0IG49dXQvaixyPXQuY2F0QXhpc0ZvbnRTaXplSHB0PT1udWxsP01hdGgubWF4KDgsTWF0aC5taW4oMTEsbiouNSkpOkc7ZS5zYXZlKCksZS5mb250PXVyKHIsbHIodCx0LmNhdEF4aXNGb250RmFjZSxgbWlub3JgKSx0LmNhdEF4aXNGb250Qm9sZD8/ITEsdC5jYXRBeGlzRm9udEl0YWxpYz8/ITEpO2ZvcihsZXQgaSBvZiBBKXtsZXQgYT1idChpLHQuY2F0QXhpc0Zvcm1hdENvZGUsdC5kYXRlMTkwNCk7bXQucHVzaCh1aShlLGEsTWF0aC5tYXgoMSxuKSxkaShhLHIpKSl9ZS5yZXN0b3JlKCk7bGV0IGk9TWF0aC5tYXgoMSwuLi5tdC5tYXAoZT0+ZS5sZW5ndGgpKTshKHQucGxvdEFyZWFNYW51YWxMYXlvdXQ/LmxheW91dFRhcmdldD09PWBpbm5lcmAmJnQucGxvdEFyZWFNYW51YWxMYXlvdXQudyE9bnVsbCYmdC5wbG90QXJlYU1hbnVhbExheW91dC5oIT1udWxsKSYmaT4xJiYoaHQ9KGktMSkqKHIrMiksZHQ9TWF0aC5tYXgoMSxkdC1odCkpfWxldCBndD0hbCYmdC5kYXRhVGFibGU/eXIoZSx0LHV0L2oscik6bnVsbDtndCYmZ3QudG90YWxIZWlnaHQ+WSYmKGR0PU1hdGgubWF4KDEsZHQtKGd0LnRvdGFsSGVpZ2h0LVkpKSksdC5wbG90QXJlYUJnJiYoZS5maWxsU3R5bGU9YCMke3QucGxvdEFyZWFCZ31gLGUuZmlsbFJlY3QoY3QsbHQsdXQsZHQpKTtsZXQgX3Q9ZT0+bHQrZHQtemUuZnJhYyhlKSpkdCx2dD1lPT5jdCt6ZS5mcmFjKGUpKnV0LHl0PV90KDApLHh0PXZ0KDApLFN0PWU9Pl90KEZlP2UqMTAwOmUpLEN0PUdlP0dlLm1ha2VUb1kobHQsZHQpOl90LHd0PWU9PkN0KFVlP2UqMTAwOmUpLFR0PXpyKHQscik7ZS50ZXh0QmFzZWxpbmU9YG1pZGRsZWA7bGV0IEV0PXQudmFsQXhpc0ZvbnRTaXplSHB0PT1udWxsP01hdGgubWF4KDgsTWF0aC5taW4oMTEsZHQvMjApKTpLO2UuZm9udD1gJHtFdH1weCAke2xyKHQsdC52YWxBeGlzRm9udEZhY2UsYG1pbm9yYCl9YDtsZXQgRHQ9dC52YWxBeGlzRm9udENvbG9yP2AjJHt0LnZhbEF4aXNGb250Q29sb3J9YDpgIzU1NWA7aWYoZS5maWxsU3R5bGU9RHQsIXQudmFsQXhpc0hpZGRlbil7bGV0IG49QnIodCxyKTtmb3IobGV0IHQgb2YgemUubWlub3JMaW5lcylpZighbClScihlLGN0LHV0LF90KHQpLCExLG4pO2Vsc2V7bGV0IHI9dnQodCk7ZS5zdHJva2VTdHlsZT1uLmNvbG9yLGUubGluZVdpZHRoPW4ud2lkdGg7bGV0IGk9bi5kYXNoLmxlbmd0aD4wJiZlLmdldExpbmVEYXNoP2UuZ2V0TGluZURhc2goKTpbXTtuLmRhc2gubGVuZ3RoPjAmJmUuc2V0TGluZURhc2gobi5kYXNoKSxlLmJlZ2luUGF0aCgpLGUubW92ZVRvKHIsbHQpLGUubGluZVRvKHIsbHQrZHQpLGUuc3Ryb2tlKCksbi5kYXNoLmxlbmd0aD4wJiZlLnNldExpbmVEYXNoKGkpfWxldCBhPVlyKHQpLG89dC52YWxBeGlzVGlja0xhYmVsUG9zIT09YG5vbmVgO2ZvcihsZXQgbiBvZiB6ZS5tYWpvckxpbmVzKXtsZXQgcz1NYXRoLmFicyhuKTxCZSoxZS05LGM9WnIodCxuLEZlKTtpZihsKXtsZXQgcj12dChuKTtpZihhKXtlLnN0cm9rZVN0eWxlPVR0LmV4cGxpY2l0P1R0LmNvbG9yOnM/YCNhYWFgOlR0LmNvbG9yLGUubGluZVdpZHRoPVR0LmV4cGxpY2l0P1R0LndpZHRoOnM/MTpUdC53aWR0aDtsZXQgdD1UdC5kYXNoLmxlbmd0aD4wJiZlLmdldExpbmVEYXNoP2UuZ2V0TGluZURhc2goKTpbXTtUdC5kYXNoLmxlbmd0aD4wJiZlLnNldExpbmVEYXNoKFR0LmRhc2gpLGUuYmVnaW5QYXRoKCksZS5tb3ZlVG8ocixsdCksZS5saW5lVG8ocixsdCtkdCksZS5zdHJva2UoKSxUdC5kYXNoLmxlbmd0aD4wJiZlLnNldExpbmVEYXNoKHQpfWlmKG8pe2UudGV4dEFsaWduPWBjZW50ZXJgO2xldCBuPXQudmFsQXhpc0ZvbnRTaXplSHB0PT1udWxsPzEwOlRlKEV0KTtlLmZpbGxUZXh0KGMscixsdCtkdCtuKX19ZWxzZXtsZXQgbD1fdChuKTtpZihhJiZScihlLGN0LHV0LGwscyxUdCksbyl7ZS50ZXh0QWxpZ249YHJpZ2h0YDtsZXQgbj1pLmdhcFBvbGljeT09PWBjaGFydGV4YD9BaShyKTp0LnZhbEF4aXNGb250U2l6ZUhwdD09bnVsbD8xMjpFZShFdCk7ZS5maWxsVGV4dChjLGN0LW4sbCl9fX19aWYoVCYmR2UmJnZpKGUsVCxHZSxDdCxjdCx1dCxyKSwhdC5jYXRBeGlzSGlkZGVuJiZVcih0KSl7bGV0IG49V3IodCxyKTtlLnN0cm9rZVN0eWxlPW4uY29sb3IsZS5saW5lV2lkdGg9bi53aWR0aDtsZXQgaT1uLmRhc2gubGVuZ3RoPjAmJmUuZ2V0TGluZURhc2g/ZS5nZXRMaW5lRGFzaCgpOltdO24uZGFzaC5sZW5ndGg+MCYmZS5zZXRMaW5lRGFzaChuLmRhc2gpO2xldCBhPWZ0P2Z0Lm1ham9yVGlja3MubWFwKGU9PmUuZnJhY3Rpb24pOktyKHQsaik7Zm9yKGxldCB0IG9mIGEpe2lmKGUuYmVnaW5QYXRoKCksbCl7bGV0IG49bHQrdCpkdDtlLm1vdmVUbyhjdCxuKSxlLmxpbmVUbyhjdCt1dCxuKX1lbHNle2xldCBuPWN0K3QqdXQ7ZS5tb3ZlVG8obixsdCksZS5saW5lVG8obixsdCtkdCl9ZS5zdHJva2UoKX1uLmRhc2gubGVuZ3RoPjAmJmUuc2V0TGluZURhc2goaSl9bGV0e2NvbG9yOmt0LHdpZHRoOkF0fT1pdCh0LmNhdEF4aXNMaW5lQ29sb3IsdC5jYXRBeGlzTGluZVdpZHRoRW11LHIpLHtjb2xvcjpqdCx3aWR0aDpOdH09aXQodC52YWxBeGlzTGluZUNvbG9yLHQudmFsQXhpc0xpbmVXaWR0aEVtdSxyKSxQdD0odCxuLHIsaSxhLG8pPT57bGV0IHM9ZS5nZXRMaW5lRGFzaD8uKCk/P1tdO2Uuc3Ryb2tlU3R5bGU9YSxlLmxpbmVXaWR0aD1vLGUuc2V0TGluZURhc2goW10pLGUuYmVnaW5QYXRoKCksZS5tb3ZlVG8odCxuKSxlLmxpbmVUbyhyLGkpLGUuc3Ryb2tlKCksZS5zZXRMaW5lRGFzaChzKX0sRnQ9IXQuY2F0QXhpc0hpZGRlbiYmIXQuY2F0QXhpc0xpbmVIaWRkZW4sSXQ9IXQudmFsQXhpc0hpZGRlbiYmIXQudmFsQXhpc0xpbmVIaWRkZW4mJnQudmFsQXhpc0xpbmVDb2xvciE9bnVsbCxMdD10LmNhdEF4aXNDcm9zc2VzQXQhPW51bGwmJk51bWJlci5pc0Zpbml0ZSh0LmNhdEF4aXNDcm9zc2VzQXQpP3VhKHQuY2F0QXhpc0Nyb3NzZXNBdCx6ZS5taW4semUubWF4KTp0LmNhdEF4aXNDcm9zc2VzPT09YG1heGA/emUubWF4OnQuY2F0QXhpc0Nyb3NzZXM9PT1gbWluYD96ZS5taW46dWEoMCx6ZS5taW4semUubWF4KSxSdD1sP2x0K2R0Ol90KEx0KSx6dD1sP3Z0KEx0KTpjdCxCdD0hbCYmKHQuY2F0QXhpc1RpY2tMYWJlbFBvcz8/YG5leHRUb2ApPT09YG5leHRUb2A/UnQ6bHQrZHQsVnQ9TWF0aC5tYXgoMSxNYXRoLmZsb29yKHQuY2F0QXhpc1RpY2tNYXJrU2tpcD8/MSkpLEh0PSFsJiZxIT1udWxsJiZmdD09bnVsbCYmIXQuY2F0QXhpc0xpbmVIaWRkZW4mJm90KHQpJiZNYXRoLmFicyhCdC1SdCk8LjAxLFV0PSgpPT57aWYobD8oRnQmJlB0KHp0LGx0LHp0LGx0K2R0LGt0LEF0KSxJdCYmUHQoY3QsbHQrZHQsY3QrdXQsbHQrZHQsanQsTnQpKTooRnQmJlB0KGN0LFJ0LGN0K3V0LFJ0LGt0LEF0KSxJdCYmUHQoY3QsbHQsY3QsbHQrZHQsanQsTnQpKSwhdC52YWxBeGlzSGlkZGVuJiZ0LnZhbEF4aXNNYWpvclRpY2tNYXJrJiZ0LnZhbEF4aXNNYWpvclRpY2tNYXJrIT09YG5vbmVgKWZvcihsZXQgbiBvZiB6ZS5tYWpvckxpbmVzKWw/RnIoZSx0LnZhbEF4aXNNYWpvclRpY2tNYXJrLGBjYXRgLGx0K2R0LHZ0KG4pLGp0LE50LCExLHQudmFsQXhpc0xpbmVIaWRkZW4sYG1ham9yYCxyKTpGcihlLHQudmFsQXhpc01ham9yVGlja01hcmssYHZhbGAsY3QsX3QobiksanQsTnQsITEsdC52YWxBeGlzTGluZUhpZGRlbixgbWFqb3JgLHIpO2lmKCF0LnZhbEF4aXNIaWRkZW4mJnQudmFsQXhpc01pbm9yVGlja01hcmsmJnQudmFsQXhpc01pbm9yVGlja01hcmshPT1gbm9uZWApZm9yKGxldCBuIG9mIHplLm1pbm9yVGlja3MpbD9GcihlLHQudmFsQXhpc01pbm9yVGlja01hcmssYGNhdGAsbHQrZHQsdnQobiksanQsTnQsITEsdC52YWxBeGlzTGluZUhpZGRlbixgbWlub3JgLHIpOkZyKGUsdC52YWxBeGlzTWlub3JUaWNrTWFyayxgdmFsYCxjdCxfdChuKSxqdCxOdCwhMSx0LnZhbEF4aXNMaW5lSGlkZGVuLGBtaW5vcmAscik7aWYoIXQuY2F0QXhpc0hpZGRlbiYmdC5jYXRBeGlzTWFqb3JUaWNrTWFyayYmdC5jYXRBeGlzTWFqb3JUaWNrTWFyayE9PWBub25lYCl7bGV0IG49SHQ/W106S3IodCxqKSxpPWZ0P2Z0Lm1ham9yVGlja3MubWFwKGU9PmUuZnJhY3Rpb24pOm4uZmlsdGVyKChlLHQpPT50JVZ0PT09MCk7Zm9yKGxldCBuIG9mIGkpbD9GcihlLHQuY2F0QXhpc01ham9yVGlja01hcmssYHZhbGAsenQsbHQrbipkdCxrdCxBdCwhMSx0LmNhdEF4aXNMaW5lSGlkZGVuLGBtYWpvcmAscik6RnIoZSx0LmNhdEF4aXNNYWpvclRpY2tNYXJrLGBjYXRgLFJ0LGN0K24qdXQsa3QsQXQsITEsdC5jYXRBeGlzTGluZUhpZGRlbixgbWFqb3JgLHIpfWlmKCF0LmNhdEF4aXNIaWRkZW4mJnQuY2F0QXhpc01pbm9yVGlja01hcmsmJnQuY2F0QXhpc01pbm9yVGlja01hcmshPT1gbm9uZWApe2xldCBuPW90KHQpP0FycmF5LmZyb20oe2xlbmd0aDpqfSwoZSx0KT0+KHQrLjUpL2opOkFycmF5LmZyb20oe2xlbmd0aDpNYXRoLm1heCgwLGotMSl9LChlLHQpPT4odCsuNSkvKGotMSkpLGk9ZnQ/ZnQubWlub3JUaWNrcy5tYXAoZT0+ZS5mcmFjdGlvbik6bjtmb3IobGV0IG4gb2YgaSlsP0ZyKGUsdC5jYXRBeGlzTWlub3JUaWNrTWFyayxgdmFsYCx6dCxsdCtuKmR0LGt0LEF0LCExLHQuY2F0QXhpc0xpbmVIaWRkZW4sYG1pbm9yYCxyKTpGcihlLHQuY2F0QXhpc01pbm9yVGlja01hcmssYGNhdGAsUnQsY3Qrbip1dCxrdCxBdCwhMSx0LmNhdEF4aXNMaW5lSGlkZGVuLGBtaW5vcmAscil9fSxXdD1sP2R0L2o6dXQvaixHdD1Kcih0KSxLdD1lPT5sP0d0P2U6ai0xLWU6R3Q/ai0xLWU6ZSxxdD1lPT5mdD9mdC5jYXRlZ29yeUJhbmRGcmFjdGlvbnNbZV0qKGw/ZHQ6dXQpOld0LEp0PWU9PmZ0PyhsP2x0OmN0KStmdC5wb3NpdGlvbnNbZV0qKGw/ZHQ6dXQpLXF0KGUpLzI6KGw/bHQ6Y3QpK0t0KGUpKld0LFl0PWU9PmZ0P2N0K2Z0LnBvc2l0aW9uc1tlXSp1dDpjdCtLdChlKSpXdCtXdC8yLFh0PShlLG4pPT57bGV0IHI9ZVswXSxhPXI/dihyKTp1LG89YT8xOk1hdGgubWF4KDEsZS5sZW5ndGgpLHM9cj8uYmFyR3JvdXBPdmVybGFwPz90LmJhck92ZXJsYXA/PzAsYz1hfHwhTnVtYmVyLmlzRmluaXRlKHMpPzA6TWF0aC5tYXgoLTEwMCxNYXRoLm1pbigxMDAscykpLGw9TXQocj8uYmFyR3JvdXBHYXBXaWR0aD8/dC5iYXJHYXBXaWR0aCxpLmdhcFBvbGljeT8/YGxlZ2FjeWApLGQ9bi8oMSsoby0xKSooMS1jLzEwMCkrbC8xMDApLGY9YT8wOmQqKDEtYy8xMDApO3JldHVybntiYXJXOmQsY2x1c3RlckdhcDpmLGNhdFN0YXJ0OihuLShkKyhvLTEpKmYpKS8yfX07Zm9yKGxldCBuPTA7bjx4Lmxlbmd0aDtuKyspe2xldCBpPXhbbl0sYT1hcihDLmdldChpKT8/bixpKSxvPVQmJmkudXNlU2Vjb25kYXJ5QXhpcz09PSEwP3d0OlN0LHM9bygwKSxjPXQuZGlzcEJsYW5rc0FzPz9gemVyb2AsbD1bXSx1PSgpPT57bC5sZW5ndGghPT0wJiYoZnQmJihlLnNhdmUoKSxlLmJlZ2luUGF0aCgpLGUucmVjdChjdCxsdCx1dCxkdCksZS5jbGlwKCkpLGUuYmVnaW5QYXRoKCksZS5tb3ZlVG8obFswXS54LHMpLGUubGluZVRvKGxbMF0ueCxsWzBdLnkpLGRhKGUsbCwhMSksZS5saW5lVG8obFtsLmxlbmd0aC0xXS54LHMpLGUuY2xvc2VQYXRoKCksZS5maWxsU3R5bGU9aS5maWxsUGF0dGVybj9MbihpLmZpbGxQYXR0ZXJuLGUsbFswXS54LGx0LE1hdGgubWF4KDEsbFtsLmxlbmd0aC0xXS54LWxbMF0ueCksZHQpPz9hOmEsZS5maWxsKCksaS5saW5lSGlkZGVuIT09ITAmJihlLnN0cm9rZVN0eWxlPWkubGluZUNvbG9yP2AjJHtpLmxpbmVDb2xvcn1gOmEsZS5saW5lV2lkdGg9aS5saW5lV2lkdGhFbXU9PW51bGw/MS41OnJ0KGkubGluZVdpZHRoRW11LHIpLGUuc2V0TGluZURhc2goW10pLGUuc3Ryb2tlKCkpLGZ0JiZlLnJlc3RvcmUoKSxsPVtdKX07Zm9yKGxldCBlPTA7ZTxqO2UrKyl7bGV0IHQ9aS52YWx1ZXNbZV07dD09bnVsbCYmKGM9PT1gZ2FwYCYmdSgpLGMhPT1gemVyb2ApfHxsLnB1c2goe3g6WXQoZSkseTpvKHQ/PzApfSl9dSgpfWZvcihsZXQgbj0wO248ajtuKyspe2xldCBpPW5ldyBNYXAsdT1uZXcgTWFwLGQ9cXQobik7Zm9yKGxldCBmPTA7ZjxtLmxlbmd0aDtmKyspe2xldCBwPW1bZl0saD1UIT1udWxsJiZwLnVzZVNlY29uZGFyeUF4aXM9PT0hMCxfPU4ocCksYj1nKHApLHg9dihwKSxTPXkocCksQz1TJiZfLnJlZHVjZSgoZSx0KT0+ZStNYXRoLmFicyh0LnZhbHVlc1tuXT8/MCksMCl8fDEsdz1pLmdldChiKT8/MCxFPXUuZ2V0KGIpPz8wLEQ9TWF0aC5tYXgoMCxfLmluZGV4T2YocCkpLHtiYXJXOmssY2x1c3RlckdhcDpqLGNhdFN0YXJ0Ok19PVh0KF8sZCksUD1oJiZHZT9HZS5tYWtlVG9ZKGx0LGR0KTpfdCxGPUdlP08/LmNyb3NzZXNBdCE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKE8uY3Jvc3Nlc0F0KT9NYXRoLm1heChHZS5taW4sTWF0aC5taW4oR2UubWF4LE8uY3Jvc3Nlc0F0KSk6Tz8uY3Jvc3Nlcz09PWBtYXhgP0dlLm1heDpPPy5jcm9zc2VzPT09YG1pbmA/R2UubWluOk1hdGgubWF4KEdlLm1pbixNYXRoLm1pbihHZS5tYXgsMCkpOjAsST1oP1AoRik6eXQsVj1wLnZhbHVlc1tuXT8/MCxIPVM/Vi9DKjEwMDpWLFU9SDwwLHRlPVUmJihwLmludmVydElmTmVnYXRpdmU9PT0hMHx8cC5hdXRvbWF0aWNOZWdhdGl2ZVN0eWxlPT09ITApLFc9UltmXS5nZXQobiksbmU9Vz8uY29sb3I/P3AuZGF0YVBvaW50Q29sb3JzPy5bbl0sRz1uZT9gIyR7bmV9YDpMP3NyKG4scCk6YXIoZixwKSxLPXRlP3AuaW52ZXJ0ZWRGaWxsSGlkZGVuPT09ITA/bnVsbDpwLmludmVydGVkRmlsbDp2b2lkIDAscT1XPy5maWxsSGlkZGVuP251bGw6Vz8uY29sb3I/e2ZpbGxUeXBlOmBzb2xpZGAsY29sb3I6Vy5jb2xvcn06Sz09PXZvaWQgMD9CP1RhKHQsZWVbZl0sbS5sZW5ndGgscC5jaGFydGV4U3R5bGUscC5jb2xvcik6dm9pZCAwOkssSj0oKT0+e2lmKFc/LmxpbmVIaWRkZW4hPW51bGx8fFc/LmxpbmVDb2xvciE9bnVsbHx8Vz8ubGluZVdpZHRoRW11IT1udWxsfHxXPy5saW5lRGFzaCE9bnVsbCl7aWYoVz8ubGluZUhpZGRlbilyZXR1cm4hMTtsZXQgbj15YSh0LHQuY2hhcnRleERhdGFQb2ludFN0eWxlLGBsaW5lYCxlZVtmXSxtLmxlbmd0aCk/P3AubGluZUNvbG9yPz9HO3JldHVybiBlLnN0cm9rZVN0eWxlPWAjJHtXPy5saW5lQ29sb3I/P24ucmVwbGFjZSgvXiMvLGBgKX1gLGUubGluZVdpZHRoPVc/LmxpbmVXaWR0aEVtdT09bnVsbD9wLmxpbmVXaWR0aEVtdT09bnVsbD8xOnJ0KHAubGluZVdpZHRoRW11LHIpOnJ0KFcubGluZVdpZHRoRW11LHIpLGUuc2V0TGluZURhc2goZmEoVz8ubGluZURhc2gsZS5saW5lV2lkdGgpKSwhMH1yZXR1cm4gdGUmJihwLmludmVydGVkTGluZUhpZGRlbiE9bnVsbHx8cC5pbnZlcnRlZExpbmVDb2xvciE9bnVsbHx8cC5pbnZlcnRlZExpbmVXaWR0aEVtdSE9bnVsbCk/cC5pbnZlcnRlZExpbmVIaWRkZW4/ITE6KGUuc3Ryb2tlU3R5bGU9YCMke3AuaW52ZXJ0ZWRMaW5lQ29sb3I/P2AwMDAwMDBgfWAsZS5saW5lV2lkdGg9cnQocC5pbnZlcnRlZExpbmVXaWR0aEVtdSxyKSxlLnNldExpbmVEYXNoKFtdKSwhMCk6Qj9rYShlLHQsdC5jaGFydGV4RGF0YVBvaW50U3R5bGUscCxlZVtmXSxtLmxlbmd0aCxHLHIpOiFwLmxpbmVDb2xvcnx8cC5saW5lSGlkZGVuPyExOihlLnN0cm9rZVN0eWxlPWAjJHtwLmxpbmVDb2xvcn1gLGUubGluZVdpZHRoPXJ0KHAubGluZVdpZHRoRW11LHIpLGUuc2V0TGluZURhc2goW10pLCEwKX07aWYobCl7bGV0IGk9RCxsPXg/SnQobikrTTpKdChuKStNK2kqaix1PXg/dnQoVT9FOncpOnh0LGQ9dnQoeD8oVT9FOncpK0g6SCksbT11YShNYXRoLm1pbih1LGQpLGN0LGN0K3V0KSxoPXVhKE1hdGgubWF4KHUsZCksY3QsY3QrdXQpLGc9TWF0aC5tYXgoMCxoLW0pO2lmKHEhPT1udWxsJiYoZS5maWxsU3R5bGU9cT9FYShlLHEsbSxsLGcsayxHKTpwLmZpbGxQYXR0ZXJuP0xuKHAuZmlsbFBhdHRlcm4sZSxtLGwsZyxrKT8/RzpHLGUuZmlsbFJlY3QobSxsLGcsaykpLGc+MCYmaz4wJiZKKCkpe2xldCB0PWUubGluZVdpZHRoO2Uuc3Ryb2tlUmVjdChtK3QvMixsK3QvMixNYXRoLm1heCgwLGctdCksTWF0aC5tYXgoMCxrLXQpKX1sZXQgXz1wLnNlcmllc0RhdGFMYWJlbHMsdj12YSh0LHAsbixwLmNhdGVnb3JpZXM/LltuXT8/QVtuXT8/YGAsVix7dmlzaWJsZTp0LnNob3dEYXRhTGFiZWxzLHNob3dWYWw6dC5zaG93RGF0YUxhYmVscyYmIVMsc2hvd1BlcmNlbnQ6dC5zaG93RGF0YUxhYmVscyYmUyxzaG93Q2F0TmFtZTohMX0seltmXSxTP0gvMTAwOnZvaWQgMCxwLnVzZVNlY29uZGFyeUF4aXMmJlQ/VC5kaXNwbGF5VW5pdHM6dC52YWxBeGlzRGlzcGxheVVuaXRzKTtpZih2KXtsZXQgaT1oZSh2LmZvbnRTaXplSHB0Pz90LmRhdGFMYWJlbEZvbnRTaXplSHB0LHIpPz9NYXRoLm1heCg3LE1hdGgubWluKDExLGsqLjYpKSx1PXpbZl0uZ2V0KG4pLGQ9di5mb250Qm9sZHx8Xz8uZm9udEJvbGQ9PW51bGwmJnU/LmZvbnRCb2xkPT1udWxsLGg9bHIodCx2LmZvbnRGYWNlPz90LmRhdGFMYWJlbEZvbnRGYWNlLGBtaW5vcmApO2UuZm9udD1gJHtkP2Bib2xkIGA6YGB9JHtpfXB4ICR7aH1gLGtpKGUsdi50ZXh0LG0sbCxnLGssYGhvcml6b250YWxgLHYucG9zaXRpb24/P3QuZGF0YUxhYmVsUG9zaXRpb24/Pyh4P2BjdHJgOm51bGwpLHAuZGF0YUxhYmVsQ29sb3JzPy5bbl0/P3YuZm9udENvbG9yPz9wLmxhYmVsQ29sb3I/P3QuZGF0YUxhYmVsRm9udENvbG9yPz9udWxsLGkse3g6Y3QseTpsdCx3OnV0LGg6ZHR9LHt4OmEseTpvLHc6cyxoOmN9LHU/Lm1hbnVhbExheW91dCxVLGNhKHQsdSxyLGgsZCkpfX1lbHNle2xldCBpPXg/SnQobikrTTpKdChuKStNK0QqajtpZihpK2s8PWN0fHxpPj1jdCt1dCljb250aW51ZTtsZXQgbD14P1AoVT9FOncpOkksdT1QKHg/KFU/RTp3KStIOkgpLGQ9dWEoTWF0aC5taW4obCx1KSxsdCxsdCtkdCksbT11YShNYXRoLm1heChsLHUpLGx0LGx0K2R0KSxoPU1hdGgubWF4KDAsbS1kKTtpZihxIT09bnVsbCYmKGUuZmlsbFN0eWxlPXE/RWEoZSxxLGksZCxrLGgsRyk6cC5maWxsUGF0dGVybj9MbihwLmZpbGxQYXR0ZXJuLGUsaSxkLGssaCk/P0c6RyxlLmZpbGxSZWN0KGksZCxrLGgpKSxrPjAmJmg+MCYmSigpKXtsZXQgdD1lLmxpbmVXaWR0aDtlLnN0cm9rZVJlY3QoaSt0LzIsZCt0LzIsTWF0aC5tYXgoMCxrLXQpLE1hdGgubWF4KDAsaC10KSl9bGV0IGc9cC5zZXJpZXNEYXRhTGFiZWxzLF89dmEodCxwLG4scC5jYXRlZ29yaWVzPy5bbl0/P0Fbbl0/P2BgLFYse3Zpc2libGU6dC5zaG93RGF0YUxhYmVscyxzaG93VmFsOnQuc2hvd0RhdGFMYWJlbHMmJiFTLHNob3dQZXJjZW50OnQuc2hvd0RhdGFMYWJlbHMmJlMsc2hvd0NhdE5hbWU6ITF9LHpbZl0sUz9ILzEwMDp2b2lkIDAscC51c2VTZWNvbmRhcnlBeGlzJiZUP1QuZGlzcGxheVVuaXRzOnQudmFsQXhpc0Rpc3BsYXlVbml0cyk7aWYoXyl7bGV0IGw9aGUoXy5mb250U2l6ZUhwdD8/dC5kYXRhTGFiZWxGb250U2l6ZUhwdCxyKT8/TWF0aC5tYXgoNyxNYXRoLm1pbigxMSxrKi42KSksdT16W2ZdLmdldChuKSxtPV8uZm9udEJvbGR8fGc/LmZvbnRCb2xkPT1udWxsJiZ1Py5mb250Qm9sZD09bnVsbCx2PWxyKHQsXy5mb250RmFjZT8/dC5kYXRhTGFiZWxGb250RmFjZSxgbWlub3JgKTtlLmZvbnQ9YCR7bT9gYm9sZCBgOmBgfSR7bH1weCAke3Z9YCxraShlLF8udGV4dCxpLGQsaCxrLGB2ZXJ0aWNhbGAsXy5wb3NpdGlvbj8/dC5kYXRhTGFiZWxQb3NpdGlvbj8/KHg/YGN0cmA6bnVsbCkscC5kYXRhTGFiZWxDb2xvcnM/LltuXT8/Xy5mb250Q29sb3I/P3AubGFiZWxDb2xvcj8/dC5kYXRhTGFiZWxGb250Q29sb3I/P251bGwsbCx7eDpjdCx5Omx0LHc6dXQsaDpkdH0se3g6YSx5Om8sdzpzLGg6Y30sdT8ubWFudWFsTGF5b3V0LFUsY2EodCx1LHIsdixtKSl9fXgmJihVP3Uuc2V0KGIsRStIKTppLnNldChiLHcrSCkpfX1sZXQgWnQ9KGUsdCk9PntsZXQgbj1OKGUpLHI9TWF0aC5tYXgoMCxuLmluZGV4T2YoZSkpLGk9WHQobixxdCh0KSksYT1KdCh0KStpLmNhdFN0YXJ0O3JldHVybiB2KGUpP2EraS5iYXJXLzI6YStyKmkuY2x1c3RlckdhcCtpLmJhclcvMn0sUXQ9KGUsdCk9PntpZihOdW1iZXIuaXNJbnRlZ2VyKHQpJiZ0Pj0wJiZ0PGopcmV0dXJuIFp0KGUsdCk7bGV0IG49TihlKSxyPU1hdGgubWF4KDAsbi5pbmRleE9mKGUpKSxpPVh0KG4sV3QpLGE9bD9HdD90OmotMS10Okd0P2otMS10OnQ7cmV0dXJuKGw/bHQ6Y3QpK2EqV3QraS5jYXRTdGFydCsodihlKT8wOnIpKmkuY2x1c3RlckdhcCtpLmJhclcvMn07Zm9yKGxldCBpPTA7aTxtLmxlbmd0aDtpKyspe2xldCBhPW1baV0sbz1UIT1udWxsJiZhLnVzZVNlY29uZGFyeUF4aXM9PT0hMCYmR2U/R2UubWFrZVRvWShsdCxkdCk6X3Qscz12dCxjPWFyKGksYSksdT1lPT5OZShpLGUpO2ZvcihsZXQgdCBvZiBJKGEpKWhhKGUsYSx0LGosbCxlPT5adChhLGUpLGw/czpvLHUsYyxyKTtvaShlLGEsYyxlPT5RdChhLGUtMSksbD9zOm8scixhLnZhbHVlcy5tYXAoKGUsdCk9PnQrMSkse2NoYXJ0OnQsY2hhcnRSZWN0Om4scGxvdFJlY3Q6e3g6Y3QseTpsdCx3OnV0LGg6ZHR9fSwoZSx0KT0+bD97eDpzKHQpLHk6UXQoYSxlLTEpfTp7eDpRdChhLGUtMSkseTpvKHQpfSl9aWYoIXQuY2F0QXhpc0hpZGRlbiYmZmkodCkpe2UuZmlsbFN0eWxlPXQuY2F0QXhpc0ZvbnRDb2xvcj9gIyR7dC5jYXRBeGlzRm9udENvbG9yfWA6YCM1NTVgO2xldCBuPXQuY2F0QXhpc0ZvbnRTaXplSHB0PT1udWxsP01hdGgubWF4KDgsTWF0aC5taW4oMTEsV3QqLjUpKTpHO2UuZm9udD11cihuLGxyKHQsdC5jYXRBeGlzRm9udEZhY2UsYG1pbm9yYCksdC5jYXRBeGlzRm9udEJvbGQ/PyExLHQuY2F0QXhpc0ZvbnRJdGFsaWM/PyExKTtsZXQgaT1XdC00LG89Y3QtNC0oYStvZStwZSkscz1wdCxjPWZ0P2Z0Lm1ham9yVGlja3MubWFwKGU9Pih7cmF3OmJ0KFN0cmluZyhlLnNlcmlhbCksdC5jYXRBeGlzRm9ybWF0Q29kZSx0LmRhdGUxOTA0KSxmcmFjdGlvbjplLmZyYWN0aW9uLGNhdGVnb3J5SW5kZXg6LTF9KSk6QS5tYXAoKGUsbik9Pih7cmF3OmJ0KGUudG9TdHJpbmcoKSx0LmNhdEF4aXNGb3JtYXRDb2RlLHQuZGF0ZTE5MDQpLGZyYWN0aW9uOm51bGwsY2F0ZWdvcnlJbmRleDpufSkpO2ZvcihsZXQgciBvZiBjKXtsZXR7cmF3OmF9PXI7aWYobCl7bGV0IGk9ci5mcmFjdGlvbj09bnVsbD9sdCtLdChyLmNhdGVnb3J5SW5kZXgpKld0K1d0LzI6bHQrci5mcmFjdGlvbipkdDtlLnRleHRBbGlnbj1gcmlnaHRgLGUudGV4dEJhc2VsaW5lPWBtaWRkbGVgO2xldCBzPXQuY2F0QXhpc0ZvbnRTaXplSHB0PT1udWxsPzQ6RWUobik7ZS5maWxsVGV4dChPdChlLGEsbyksY3QtcyxpKX1lbHNle2xldCBvPXIuZnJhY3Rpb249PW51bGw/WXQoci5jYXRlZ29yeUluZGV4KTpjdCtyLmZyYWN0aW9uKnV0O2UudGV4dEFsaWduPWBjZW50ZXJgLGUudGV4dEJhc2VsaW5lPWB0b3BgO2xldCBjPXM9PT0wP2k6ZHQqLjQsbD10LmNhdEF4aXNGb250U2l6ZUhwdD09bnVsbD8zOlRlKG4pO3M9PT0wPyhyLmNhdGVnb3J5SW5kZXg+PTA/bXRbci5jYXRlZ29yeUluZGV4XT8/W2FdOlthXSkuZm9yRWFjaCgodCxyKT0+e2UuZmlsbFRleHQodCxvLEJ0K2wrcioobisyKSl9KTptaShlLE90KGUsYSxjKSxvLEJ0K2wscyl9fWlmKCFsJiZxKXtsZXQgaT10LmNhdEF4aXNGb250U2l6ZUhwdD09bnVsbD8zOlRlKG4pLGE9bis0O2UudGV4dEFsaWduPWBjZW50ZXJgLGUudGV4dEJhc2VsaW5lPWB0b3BgLGUuc3Ryb2tlU3R5bGU9a3QsZS5saW5lV2lkdGg9QXQsZS5zZXRMaW5lRGFzaChbXSk7bGV0IG89ZT0+e2lmKCFIdHx8ZSVWdCE9PTApcmV0dXJuIEJ0O2xldCBuPUlyKGBtYWpvcmAsQXQscik7cmV0dXJuIHQuY2F0QXhpc01ham9yVGlja01hcms9PT1gY3Jvc3NgP0J0LW4vMjp0LmNhdEF4aXNNYWpvclRpY2tNYXJrPT09YGluYD9CdC1uOkJ0fSxzPW5ldyBTZXQ7Zm9yKGxldCBlPTE7ZTxxLmxlbmd0aDtlKyspe2xldCB0PXFbZV0/P1tdO2ZvcihsZXQgZT0wO2U8ajtlKyspKHRbZV0/P2BgKSE9PWBgJiZzLmFkZChlKTtzLmFkZChqKX1sZXQgYz1CdCtpK24rMjtmb3IobGV0IHQ9MDt0PD1qO3QrKyl7aWYocy5oYXModCkpY29udGludWU7bGV0IG49Y3QrdC9qKnV0O2UuYmVnaW5QYXRoKCksZS5tb3ZlVG8obixvKHQpKSxlLmxpbmVUbyhuLGMpLGUuc3Ryb2tlKCl9bGV0IGw9bmV3IE1hcDtmb3IobGV0IHQ9MTt0PHEubGVuZ3RoO3QrKyl7bGV0IHI9cVt0XT8/W10sbz1bXTtmb3IobGV0IGU9MDtlPGo7ZSsrKShyW2VdPz9gYCkhPT1gYCYmby5wdXNoKGUpO2ZvcihsZXQgcz0wO3M8by5sZW5ndGg7cysrKXtsZXQgYz1vW3NdLHU9b1tzKzFdPz9qLGQ9cltjXT8/YGAsZj1jdCtjL2oqdXQscD1jdCt1L2oqdXQsbT1CdCtpK3QqYTtlLmZpbGxUZXh0KE90KGUsZCxNYXRoLm1heCgwLHAtZi00KSksKGYrcCkvMixtKTtsZXQgaD1tK24rMjtmb3IobGV0IGUgb2ZbYyx1XSlsLnNldChlLE1hdGgubWF4KGwuZ2V0KGUpPz9CdCxoKSl9fWZvcihsZXRbdCxuXW9mIGwpe2xldCByPWN0K3Qvaip1dDtlLmJlZ2luUGF0aCgpLGUubW92ZVRvKHIsbyh0KSksZS5saW5lVG8ocixuKSxlLnN0cm9rZSgpfX19aWYoYi5sZW5ndGg+MCYmIWwpe2Z0JiYoZS5zYXZlKCksZS5iZWdpblBhdGgoKSxlLnJlY3QoY3QsbHQsdXQsZHQpLGUuY2xpcCgpKTtmb3IobGV0IGE9MDthPGIubGVuZ3RoO2ErKyl7bGV0IG89YlthXSxzPWFyKG0ubGVuZ3RoK2EsbyksYz1UJiZvLnVzZVNlY29uZGFyeUF4aXM9PT0hMD93dDpTdCxsPW8uY2hhcnRleFN0eWxlIT1udWxsfHxvLmxpbmVIaWRkZW4hPW51bGx8fG8ubGluZUNvbG9yIT1udWxsfHxvLmxpbmVXaWR0aEVtdSE9bnVsbHx8dC5jaGFydGV4RGF0YVBvaW50TGluZVN0eWxlIT1udWxsLHU9bD9rYShlLHQsdC5jaGFydGV4RGF0YVBvaW50TGluZVN0eWxlLG8sX2EobyxDLmdldChvKT8/YSksYi5sZW5ndGgscyxyLHtsaW5rZWROb1N0eWxlRmFsbGJhY2s6aS5zZW1hbnRpY0xpbmVOb1N0eWxlRmFsbGJhY2t9KTohMDtsfHwoZS5zdHJva2VTdHlsZT1zLGUubGluZVdpZHRoPTIsZS5zZXRMaW5lRGFzaChbXSkpLGUuYmVnaW5QYXRoKCk7bGV0IGQ9by5zbW9vdGg9PT0hMCxmPXQuZGlzcEJsYW5rc0FzPz9gZ2FwYCxwPVtdLGg9KCk9PntwLmxlbmd0aCE9PTAmJihlLm1vdmVUbyhwWzBdLngscFswXS55KSxkYShlLHAsZCkscD1bXSl9O2ZvcihsZXQgZT0wO2U8ajtlKyspe2xldCB0PW8udmFsdWVzW2VdO2lmKHQ9PW51bGwmJihmPT09YGdhcGAmJmgoKSxmIT09YHplcm9gKSljb250aW51ZTtsZXQgbj1ZdChlKTtwLnB1c2goe3g6bix5OmModD8/MCl9KX1pZihoKCksdSYmZS5zdHJva2UoKSxvLnNob3dNYXJrZXIhPT0hMSlmb3IobGV0IHQ9MDt0PGo7dCsrKXtsZXQgbj1vLnZhbHVlc1t0XTtpZihuPT1udWxsKWNvbnRpbnVlO2xldCByPVl0KHQpLGk9YyhuKTtlLmZpbGxTdHlsZT1zLGUuYmVnaW5QYXRoKCksZS5hcmMocixpLDMsMCxNYXRoLlBJKjIpLGUuZmlsbCgpfW9pKGUsbyxzLGU9Pll0KGUpLGMscix2b2lkIDAse2NoYXJ0OnQsY2hhcnRSZWN0Om4scGxvdFJlY3Q6e3g6Y3QseTpsdCx3OnV0LGg6ZHR9fSl9ZnQmJmUucmVzdG9yZSgpfWlmKFMubGVuZ3RoPjApe2xldCBpPVtdLGw9W107Zm9yKGxldCBlIG9mIFMpe2xldCB0PWUuY2F0ZWdvcmllcz8/W107Zm9yKGxldCBuPTA7bjxlLnZhbHVlcy5sZW5ndGg7bisrKXtsZXQgcj1YaSh0LG4sITEpLGE9ZS52YWx1ZXNbbl07cj09bnVsbHx8YT09bnVsbHx8KGkucHVzaChyKSxsLnB1c2goYSkpfX1pZihpLmxlbmd0aCYmbC5sZW5ndGgpe2xldCB1PXQuc2Vjb25kYXJ5Q2F0QXhpcyxkPXQuc2Vjb25kYXJ5VmFsQXhpcyxmPUllKGkpLHA9SWUobCksbT1lPT5lPy5taW5vckdyaWRsaW5lcz09PSEwfHxlPy5taW5vclRpY2tNYXJrIT1udWxsJiZlLm1pbm9yVGlja01hcmshPT1gbm9uZWAsaD1YZSh7ZGF0YU1pbjpmLm1pbixkYXRhTWF4OmYubWF4LGV4cGxpY2l0TWluOnU/Lm1pbixleHBsaWNpdE1heDp1Py5tYXgsYXhpc0xlblB0OnV0L3IsYXhpc09yaWVudGF0aW9uOmBob3Jpem9udGFsYCxtYWpvclVuaXQ6dT8ubWFqb3JVbml0LG1pbm9yVW5pdDp1Py5taW5vclVuaXQsbmVlZE1pbm9yOm0odSksbG9nQmFzZTp1Py5sb2dCYXNlLHJldmVyc2VkOnU/Lm9yaWVudGF0aW9uPT09YG1heE1pbmB9KSxnPVhlKHtkYXRhTWluOnAubWluLGRhdGFNYXg6cC5tYXgsZXhwbGljaXRNaW46ZD8ubWluLGV4cGxpY2l0TWF4OmQ/Lm1heCxheGlzTGVuUHQ6ZHQvcixheGlzT3JpZW50YXRpb246YHZlcnRpY2FsYCxtYWpvclVuaXQ6ZD8ubWFqb3JVbml0LG1pbm9yVW5pdDpkPy5taW5vclVuaXQsbmVlZE1pbm9yOm0oZCksbG9nQmFzZTpkPy5sb2dCYXNlLHJldmVyc2VkOmQ/Lm9yaWVudGF0aW9uPT09YG1heE1pbmB9KTtuYShlLHQsUy5tYXAoKGUsdCk9Pih7c2VyaWVzOmUsaW5kZXg6Qy5nZXQoZSk/P3R9KSksITEsZT0+Y3QraC5mcmFjdGlvbihlKSp1dCxlPT5sdCtkdC1nLmZyYWN0aW9uKGUpKmR0LG4sY3QsbHQsdXQsZHQsciwhMSx0LnNjYXR0ZXJTdHlsZT8/YG1hcmtlcmAse3g6YSx5Om8sdzpzLGg6Y30pfX1VdCgpLE8mJiFsJiZ4aShlLHQsTyxrLG4sY3QsbHQsdXQsciksVCYmR2UmJnlpKGUsdCxULEdlLEN0LG4sY3QsbHQsdXQsZHQscixRZSwkZSxEdCx0LmRhdGUxOTA0LFVlKSxndCYmYnIoZSx0LGd0LGN0LGx0K2R0K3dlKEcpK0oraHQsdXQsYStvZSxyKTtsZXQgJHQ9Qj9tLmZsYXRNYXAoKGUsbik9PltUYSh0LGVlW25dLG0ubGVuZ3RoLGUuY2hhcnRleFN0eWxlLGUuY29sb3IpLC4uLnNpKFtlXSkubWFwKCgpPT52b2lkIDApXSk6W107UHIoZSxILGllLGEsbyxzLGMsY3QsbHQsdXQsZHQsbmUrMixyLCR0KSxncihlLHQsYSxvLHMsYyxjdCxsdCx1dCxkdCxvZSxjZSx1ZSxkZSxsKX1mdW5jdGlvbiBNaShlLHQsbixyKXtsZXR7eDppLHk6YSx3Om8saDpzfT1uLGM9RGkodCksbD1jLmxlbmd0aDtpZihsPT09MClyZXR1cm47bGV0IHU9dC5jaGFydFR5cGU9PT1gc3RhY2tlZExpbmVgfHx0LmNoYXJ0VHlwZT09PWBzdGFja2VkTGluZVBjdGAsZD10LmNoYXJ0VHlwZT09PWBzdGFja2VkTGluZVBjdGAsZj1kP2MubWFwKChlLG4pPT57bGV0IHI9MDtmb3IobGV0IGUgb2YgdC5zZXJpZXMpcis9TWF0aC5hYnMoZS52YWx1ZXNbbl0/PzApO3JldHVybiByfHwxfSk6bnVsbCxwPXQuZGlzcEJsYW5rc0FzPz9gZ2FwYCxtPShlLG4pPT57aWYoIXUpcmV0dXJuIHQuc2VyaWVzW2VdLnZhbHVlc1tuXT8/MDtsZXQgcj0wO2ZvcihsZXQgaT0wO2k8PWU7aSsrKXIrPXQuc2VyaWVzW2ldLnZhbHVlc1tuXT8/MDtyZXR1cm4gZCYmZj9yL2Zbbl0qMTAwOnJ9LGg9IXUmJnQuc2Vjb25kYXJ5VmFsQXhpcyYmdC5zZXJpZXMuc29tZShlPT5lLnVzZVNlY29uZGFyeUF4aXM9PT0hMCk/dC5zZWNvbmRhcnlWYWxBeGlzOm51bGwsZz1lPT5oIT1udWxsJiZlLnVzZVNlY29uZGFyeUF4aXM9PT0hMCxfPTEvMCx2PS0xLzA7Zm9yKGxldCBlPTA7ZTxsO2UrKylmb3IobGV0IG49MDtuPHQuc2VyaWVzLmxlbmd0aDtuKyspe2lmKGcodC5zZXJpZXNbbl0pfHwhdSYmdC5zZXJpZXNbbl0udmFsdWVzW2VdPT1udWxsKWNvbnRpbnVlO2xldCByPW0obixlKTtfPU1hdGgubWluKF8sciksdj1NYXRoLm1heCh2LHIpfWZvcihsZXQgZT0wO2U8dC5zZXJpZXMubGVuZ3RoO2UrKyl7bGV0IG49dC5zZXJpZXNbZV07ZyhuKXx8Z2kobixgeWAsdD0+bi52YWx1ZXNbdF09PW51bGw/bnVsbDptKGUsdCksZT0+e189TWF0aC5taW4oXyxlKSx2PU1hdGgubWF4KHYsZSl9KX1pc0Zpbml0ZShfKXx8KF89MCx2PTEpO2xldCB5PXQudmFsQXhpc0xvZ0Jhc2UhPW51bGwmJnQudmFsQXhpc0xvZ0Jhc2U+PTI7dC52YWxNaW49PW51bGw/ZCYmXz4wJiYheSYmKF89MCk6Xz1kP3QudmFsTWluKjEwMDp0LnZhbE1pbix0LnZhbE1heD09bnVsbD9kJiZ2PDAmJih2PTApOnY9ZD90LnZhbE1heCoxMDA6dC52YWxNYXg7bGV0IGI9d2koZSx0LG8scyxyKSx4PWIuZm9udFB4LFM9Yi50b3BQYWQsQz1iLmJhbmRILHc9anIoZSx0LG8scywuMjIscikse2xlZ1JpZ2h0VzpULGxlZ0xlZnRXOkUsbGVnVG9wSDpELGxlZ0JvdHRvbUg6T309eWUodyksaz1saSh0LmNhdEF4aXNGb250U2l6ZUhwdCxzLHIpLEE9bGkodC52YWxBeGlzRm9udFNpemVIcHQscyxyKSxqPVNlKHQsbyxzLHIpLE09ai5jYXRGb250UHgsTj1qLnZhbEZvbnRQeCxQPWouY2F0QmFuZEgsRj1qLnZhbEJhbmRXLEk9QytEK0EvMisyLEw9d2UoaykrUCtPLFI9cy1JLUwsej1faShoLHQuc2VyaWVzLFIvciksZWU9TWF0aC5tYXgoOCxNYXRoLm1pbigxMSxzLzIwKSksQj1oZShoPy5mb250U2l6ZUhwdCxyKT8/ZWUsVj0wO2lmKGgmJnomJiFoLmhpZGRlbil7bGV0IG49ZS5mb250O2UuZm9udD11cihCLGxyKHQsaC5mb250RmFjZSxgbWlub3JgKSwhMSxoLmZvbnRJdGFsaWM/PyExKTtsZXQgcj0wO2ZvcihsZXQgbiBvZiB6Lm1ham9yTGluZXMpcj1NYXRoLm1heChyLGUubWVhc3VyZVRleHQoJHIobixoLmZvcm1hdENvZGU/P251bGwsdC5kYXRlMTkwNCxoLmRpc3BsYXlVbml0cykpLndpZHRoKTtWPXIrMTgsZS5mb250PW59bGV0IEg9aCYmaC50aXRsZT9iZShoLnRpdGxlRm9udFNpemVIcHQscikrODowLFU9QSoyLjIrMTArRitFLHRlPVQrbyouMDUrVitILFc9bmkodCxfLHYsUi9yLGQpLG5lPTA7aWYoIXQudmFsQXhpc0hpZGRlbiYmdC52YWxBeGlzVGlja0xhYmVsUG9zIT09YG5vbmVgJiZ0LnBsb3RBcmVhTWFudWFsTGF5b3V0IT1udWxsJiZ0LnBsb3RBcmVhTWFudWFsTGF5b3V0LmxheW91dFRhcmdldCE9PWBpbm5lcmApe2xldCBuPWUuZm9udDtlLmZvbnQ9YCR7QX1weCAke2xyKHQsdC52YWxBeGlzRm9udEZhY2UsYG1pbm9yYCl9YDtmb3IobGV0IG4gb2YgVy5tYWpvckxpbmVzKW5lPU1hdGgubWF4KG5lLGUubWVhc3VyZVRleHQoWnIodCxuLGQpKS53aWR0aCk7ZS5mb250PW59bGV0IEc9e3Q6SSxyOnRlLGI6TCxsOlV9LEs9RGUoe3ZhbEF4aXNIaWRkZW46dC52YWxBeGlzSGlkZGVuLGNhdEF4aXNIaWRkZW46dC5jYXRBeGlzSGlkZGVuLHZhbExhYmVsV2lkdGg6bmUsdmFsTGFiZWxGb250UHg6QSxjYXRMYWJlbEZvbnRQeDprLHZhbExhYmVsR2FwUHg6dC52YWxBeGlzRm9udFNpemVIcHQ9PW51bGw/NjpFZShBKSxjYXRMYWJlbEdhcFB4OnQuY2F0QXhpc0ZvbnRTaXplSHB0PT1udWxsPzU6VGUoayksb3V0ZXJUZXh0TWFyZ2luUHg6UGUqcix2YWxUaXRsZUJhbmRXOkYsY2F0VGl0bGVCYW5kSDpQLHNlY29uZGFyeUJhbmRXOlYrSH0pLHE9a2UodCxpLGEsbyxzLHIse3RpdGxlQmFuZDpiLGxlZ2VuZFNpZGVSZXNlcnZlRnJhYzouMjIsbGVnZW5kUmVzZXJ2ZTp3LHBhZDpHLGhvbm9yUGxvdEFyZWFNYW51YWxMYXlvdXQ6ITAsbWFudWFsT3V0ZXJJbnNldHM6S30pLEo9d2koZSx0LHEucGxvdFJlY3QucHcscyxyKTtNYXRoLmFicyhKLmJhbmRILWIuYmFuZEgpPi4wMSYmKGI9Six4PWIuZm9udFB4LFM9Yi50b3BQYWQsQz1iLmJhbmRILEk9QytEK0EvMisyLEcudD1JLHE9a2UodCxpLGEsbyxzLHIse3RpdGxlQmFuZDpiLGxlZ2VuZFNpZGVSZXNlcnZlRnJhYzouMjIsbGVnZW5kUmVzZXJ2ZTp3LHBhZDpHLGhvbm9yUGxvdEFyZWFNYW51YWxMYXlvdXQ6ITAsbWFudWFsT3V0ZXJJbnNldHM6S30pKTtsZXR7cGxvdFJlY3Q6e3B4MDpZLHB5MDpyZSxwdzppZSxwaDphZX19PXE7aWYoRWkoZSx0LHQudGl0bGVNYW51YWxMYXlvdXR8fCF0LnRpdGxlUmljaFJ1bnM/Lmxlbmd0aD9pOlksYSx0LnRpdGxlTWFudWFsTGF5b3V0fHwhdC50aXRsZVJpY2hSdW5zPy5sZW5ndGg/bzppZSxzLGErUyx4KSxpZTw9MHx8YWU8PTApcmV0dXJuO3QucGxvdEFyZWFCZyYmKGUuZmlsbFN0eWxlPWAjJHt0LnBsb3RBcmVhQmd9YCxlLmZpbGxSZWN0KFkscmUsaWUsYWUpKTtsZXQgb2U9bmkodCxfLHYsYWUvcixkKTtpZihvZS5tYXgtb2UubWluPT09MClyZXR1cm47bGV0IHNlPWU9PnJlK2FlLW9lLmZyYWMoZSkqYWUsY2U9ej96Lm1ha2VUb1kocmUsYWUpOnNlLGxlPWU9PmcoZSk/Y2U6c2UsdWU9aXQodC5jYXRBeGlzTGluZUNvbG9yLHQuY2F0QXhpc0xpbmVXaWR0aEVtdSxyKSxkZT1pdCh0LnZhbEF4aXNMaW5lQ29sb3IsdC52YWxBeGlzTGluZVdpZHRoRW11LHIpLGZlPXQuY2F0QXhpc0xpbmVDb2xvcj09bnVsbD92b2lkIDA6dWUuY29sb3IscGU9dC5jYXRBeGlzTGluZVdpZHRoRW11PT1udWxsP3ZvaWQgMDp1ZS53aWR0aCxtZT10LnZhbEF4aXNMaW5lQ29sb3I9PW51bGw/dm9pZCAwOmRlLmNvbG9yLGdlPXQudmFsQXhpc0xpbmVXaWR0aEVtdT09bnVsbD92b2lkIDA6ZGUud2lkdGgsX2U9aGkodCxjKSx2ZT1vdCh0KSx4ZT1Kcih0KSxYPV9lP2U9PlkrX2UucG9zaXRpb25zW2VdKmllOnZlP2U9PlkrKCh4ZT9sLTEtZTplKSsuNSkvbCppZTplPT57bGV0IHQ9eGU/bC0xLWU6ZTtyZXR1cm4gWSsobD09PTE/aWUvMjp0LyhsLTEpKmllKX07aWYoIXQudmFsQXhpc0hpZGRlbil7ZS5mb250PWAke0F9cHggJHtscih0LHQudmFsQXhpc0ZvbnRGYWNlLGBtaW5vcmApfWAsZS50ZXh0QmFzZWxpbmU9YG1pZGRsZWA7bGV0IG49enIodCxyKSxpPUJyKHQscik7Zm9yKGxldCB0IG9mIG9lLm1pbm9yTGluZXMpUnIoZSxZLGllLHNlKHQpLCExLGkpO2xldCBhPVlyKHQpLG89dC52YWxBeGlzVGlja0xhYmVsUG9zIT09YG5vbmVgO2ZvcihsZXQgaSBvZiBvZS5tYWpvckxpbmVzKXtsZXQgcz1zZShpKTtpZihhJiZScihlLFksaWUscyxpPT09MCxuKSxGcihlLHQudmFsQXhpc01ham9yVGlja01hcmssYHZhbGAsWSxzLG1lLGdlLCExLHQudmFsQXhpc0xpbmVIaWRkZW4sYG1ham9yYCxyKSxvKXtlLmZpbGxTdHlsZT10LnZhbEF4aXNGb250Q29sb3I/YCMke3QudmFsQXhpc0ZvbnRDb2xvcn1gOmAjNTU1YCxlLnRleHRBbGlnbj1gcmlnaHRgO2xldCBuPXQudmFsQXhpc0ZvbnRTaXplSHB0PT1udWxsPzY6RWUoQSk7ZS5maWxsVGV4dChacih0LGksZCksWS1uLHMpfX1pZih0LnZhbEF4aXNNaW5vclRpY2tNYXJrJiZ0LnZhbEF4aXNNaW5vclRpY2tNYXJrIT09YG5vbmVgKWZvcihsZXQgbiBvZiBvZS5taW5vclRpY2tzKUZyKGUsdC52YWxBeGlzTWlub3JUaWNrTWFyayxgdmFsYCxZLHNlKG4pLG1lLGdlLCExLHQudmFsQXhpc0xpbmVIaWRkZW4sYG1pbm9yYCxyKX1pZihoJiZ6JiZ2aShlLGgseixjZSxZLGllLHIpLCF0LmNhdEF4aXNIaWRkZW4mJlVyKHQpKXtsZXQgbj1Xcih0LHIpO2Uuc3Ryb2tlU3R5bGU9bi5jb2xvcixlLmxpbmVXaWR0aD1uLndpZHRoO2xldCBpPW4uZGFzaC5sZW5ndGg+MCYmZS5nZXRMaW5lRGFzaD9lLmdldExpbmVEYXNoKCk6W107bi5kYXNoLmxlbmd0aD4wJiZlLnNldExpbmVEYXNoKG4uZGFzaCk7bGV0IGE9X2U/X2UubWFqb3JUaWNrcy5tYXAoZT0+ZS5mcmFjdGlvbik6S3IodCxsKTtmb3IobGV0IHQgb2YgYSl7bGV0IG49WSt0KmllO2UuYmVnaW5QYXRoKCksZS5tb3ZlVG8obixyZSksZS5saW5lVG8obixyZSthZSksZS5zdHJva2UoKX1uLmRhc2gubGVuZ3RoPjAmJmUuc2V0TGluZURhc2goaSl9IXQuY2F0QXhpc0hpZGRlbiYmIXQuY2F0QXhpc0xpbmVIaWRkZW4mJihlLnN0cm9rZVN0eWxlPXVlLmNvbG9yLGUubGluZVdpZHRoPXVlLndpZHRoLGUuYmVnaW5QYXRoKCksZS5tb3ZlVG8oWSxyZSthZSksZS5saW5lVG8oWStpZSxyZSthZSksZS5zdHJva2UoKSksIXQudmFsQXhpc0hpZGRlbiYmIXQudmFsQXhpc0xpbmVIaWRkZW4mJihlLnN0cm9rZVN0eWxlPWRlLmNvbG9yLGUubGluZVdpZHRoPWRlLndpZHRoLGUuYmVnaW5QYXRoKCksZS5tb3ZlVG8oWSxyZSksZS5saW5lVG8oWSxyZSthZSksZS5zdHJva2UoKSk7bGV0IENlPU1hdGgubWF4KDEsMi4yNSpyKSxPZT1NYXRoLm1heCgyLDIuNSpyKSxBZT1saSh0LmRhdGFMYWJlbEZvbnRTaXplSHB0LHMsciksamU9W107Zm9yKGxldCBfPTA7Xzx0LnNlcmllcy5sZW5ndGg7XysrKXtsZXQgdj10LnNlcmllc1tfXSx5PW9yKHYuZGF0YVBvaW50T3ZlcnJpZGVzKSxiPWFyKF8sdikseD1sZSh2KTtlLnN0cm9rZVN0eWxlPXYubGluZUNvbG9yP2AjJHt2LmxpbmVDb2xvcn1gOmIsZS5saW5lV2lkdGg9di5saW5lV2lkdGhFbXU9PW51bGw/Q2U6cnQodi5saW5lV2lkdGhFbXUsciksZS5zZXRMaW5lRGFzaChmYSh2LmNoYXJ0ZXhTdHlsZT8ubGluZURhc2g/P3ZvaWQgMCxlLmxpbmVXaWR0aCkpLGUubGluZUNhcD12LmNoYXJ0ZXhTdHlsZT8ubGluZUNhcD09PWBybmRgP2Byb3VuZGA6di5jaGFydGV4U3R5bGU/LmxpbmVDYXA9PT1gc3FgP2BzcXVhcmVgOmBidXR0YCxlLmxpbmVKb2luPXYuY2hhcnRleFN0eWxlPy5saW5lSm9pbj09PWByb3VuZGB8fHYuY2hhcnRleFN0eWxlPy5saW5lSm9pbj09PWBiZXZlbGA/di5jaGFydGV4U3R5bGUubGluZUpvaW46YG1pdGVyYCxlLmJlZ2luUGF0aCgpO2xldCBTPXYuc21vb3RoPT09ITAsQz1bXSx3PSgpPT57Qy5sZW5ndGghPT0wJiYoZS5tb3ZlVG8oQ1swXS54LENbMF0ueSksZGEoZSxDLFMpLEM9W10pfTtmb3IobGV0IGU9MDtlPGw7ZSsrKXtpZighdSYmdi52YWx1ZXNbZV09PW51bGwpe2lmKHA9PT1gZ2FwYCl7dygpO2NvbnRpbnVlfWlmKHA9PT1gc3BhbmApY29udGludWV9Qy5wdXNoKHt4OlgoZSkseTp4KG0oXyxlKSl9KX13KCksdi5saW5lSGlkZGVuIT09ITAmJmUuc3Ryb2tlKCk7bGV0IFQ9ZT0+bShfLGUpO2ZvcihsZXQgdCBvZiB2LmVyckJhcnM/P1tdKW1hKGUsdix0LGwsWCx4LFQsYik7ZS5maWxsU3R5bGU9YjtsZXQgRT12LnNob3dNYXJrZXIhPT0hMSxEPXBhKHYpLE89KHYuZGF0YUxhYmVsT3ZlcnJpZGVzPy5sZW5ndGg/PzApPjB8fHYuc2VyaWVzRGF0YUxhYmVscyE9bnVsbDtPJiZqZS5wdXNoKCgpPT57Z2EoZSx2LGMsbCxYLHgsVCxhZSxyLHQuZGF0ZTE5MDQ/PyExLHV8fHA9PT1gemVyb2AsbHIodCx0LmRhdGFMYWJlbEZvbnRGYWNlLGBtaW5vcmApLHQuZGF0YUxhYmVsUG9zaXRpb24/P2ByYCx7eDppLHk6cmUsdzpvLGg6YWV9LHt4OmkseTphLHc6byxoOnN9LGQmJmY/ZT0+KHYudmFsdWVzW2VdPz8wKS9mW2VdOnZvaWQgMCxlPT57aWYoIUUpcmV0dXJuIDA7aWYoIUQpcmV0dXJuIE9lO2xldCB0PXkuZ2V0KGUpO3JldHVybih0Py5tYXJrZXJTeW1ib2w/P3YubWFya2VyU3ltYm9sPz9gY2lyY2xlYCk9PT1gbm9uZWA/MDoodD8ubWFya2VyU2l6ZT8/di5tYXJrZXJTaXplPz81KS8yKnJ9LGU9PmxyKHQsZSxgbWlub3JgKSxnKHYpP2g/LmRpc3BsYXlVbml0czp0LnZhbEF4aXNEaXNwbGF5VW5pdHMpfSk7Zm9yKGxldCB0PTA7dDxsO3QrKyl7aWYoIXUmJnYudmFsdWVzW3RdPT1udWxsJiZwIT09YHplcm9gKWNvbnRpbnVlO2xldCBuPW0oXyx0KTtpZihFKWlmKEQpe2xldCBpPXkuZ2V0KHQpLGE9aT8ubWFya2VyU3ltYm9sPz92Lm1hcmtlclN5bWJvbD8/YGNpcmNsZWA7aWYoYSE9PWBub25lYCl7bGV0IG89aT8ubWFya2VyU2l6ZT8/di5tYXJrZXJTaXplPz81LHM9aT8ubWFya2VyRmlsbD8/aT8uY29sb3I/P3YubWFya2VyRmlsbD8/YixjPWk/Lm1hcmtlckxpbmU/P3YubWFya2VyTGluZT8/bnVsbCxsPWk/Lm1hcmtlckxpbmVXaWR0aEVtdT8/di5tYXJrZXJMaW5lV2lkdGhFbXU7aWEoZSxYKHQpLHgobiksYSxvLHMsYyxyLGw9PW51bGw/dm9pZCAwOnJ0KGwscikpfX1lbHNlIGUuYmVnaW5QYXRoKCksZS5hcmMoWCh0KSx4KG4pLE9lLDAsTWF0aC5QSSoyKSxlLmZpbGwoKX10LnNob3dEYXRhTGFiZWxzJiYhTyYmamUucHVzaCgoKT0+e2ZvcihsZXQgbj0wO248bDtuKyspe2lmKCF1JiZ2LnZhbHVlc1tuXT09bnVsbCYmcCE9PWB6ZXJvYCljb250aW51ZTtsZXQgcj1tKF8sbiksaT1hbih7c2hvd1ZhbHVlOiEwLHNvdXJjZVZhbHVlOnYudmFsdWVzW25dPz8wLHZhbHVlRGl2aXNvcjpRcihnKHYpP2g/LmRpc3BsYXlVbml0czp0LnZhbEF4aXNEaXNwbGF5VW5pdHMpLGZvcm1hdENvZGU6dC5kYXRhTGFiZWxGb3JtYXRDb2RlPz92LnZhbEZvcm1hdENvZGU/P251bGwsZGF0ZTE5MDQ6dC5kYXRlMTkwNH0pO3NhKGUsWChuKSx4KHIpLGksdC5kYXRhTGFiZWxQb3NpdGlvbj8/YHJgLEFlLHQuZGF0YUxhYmVsRm9udENvbG9yPz92b2lkIDAsdC5kYXRhTGFiZWxGb250Qm9sZD8/ITEsbHIodCx0LmRhdGFMYWJlbEZvbnRGYWNlLGBtaW5vcmApLEU/T2UrMToyLHt4OlkseTpyZSx3OmllLGg6YWV9KX19KSxvaShlLHYsYixYLHgscix2b2lkIDAse2NoYXJ0OnQsY2hhcnRSZWN0Om4scGxvdFJlY3Q6e3g6WSx5OnJlLHc6aWUsaDphZX19KX1mb3IobGV0IGUgb2YgamUpZSgpO2lmKCF0LmNhdEF4aXNIaWRkZW4pe2xldCBuPXQuY2F0QXhpc0ZvbnRDb2xvcj9gIyR7dC5jYXRBeGlzRm9udENvbG9yfWA6YCM1NTVgO2UuZmlsbFN0eWxlPW4sZS50ZXh0QWxpZ249YGNlbnRlcmAsZS50ZXh0QmFzZWxpbmU9YHRvcGAsZS5mb250PWAke2t9cHggJHtscih0LHQuY2F0QXhpc0ZvbnRGYWNlLGBtaW5vcmApfWA7bGV0IGk9TWF0aC5tYXgoMSxNYXRoLmZsb29yKHQuY2F0QXhpc1RpY2tNYXJrU2tpcD8/MSkpLGE9X2U/X2UubWFqb3JUaWNrcy5tYXAoZT0+WStlLmZyYWN0aW9uKmllKTpBcnJheS5mcm9tKHtsZW5ndGg6TWF0aC5jZWlsKGwvaSl9LChlLHQpPT5YKHQqaSkpO2ZvcihsZXQgbiBvZiBhKUZyKGUsdC5jYXRBeGlzTWFqb3JUaWNrTWFyayxgY2F0YCxyZSthZSxuLGZlLHBlLCExLHQuY2F0QXhpc0xpbmVIaWRkZW4sYG1ham9yYCxyKTtpZih0LmNhdEF4aXNNaW5vclRpY2tNYXJrJiZ0LmNhdEF4aXNNaW5vclRpY2tNYXJrIT09YG5vbmVgJiZfZSlmb3IobGV0IG4gb2YgX2UubWlub3JUaWNrcylGcihlLHQuY2F0QXhpc01pbm9yVGlja01hcmssYGNhdGAscmUrYWUsWStuLmZyYWN0aW9uKmllLGZlLHBlLCExLHQuY2F0QXhpc0xpbmVIaWRkZW4sYG1pbm9yYCxyKTtsZXQgbz1maSh0KSxzPU1hdGgubWF4KDEsTWF0aC5mbG9vcih0LmNhdEF4aXNUaWNrTGFiZWxTa2lwPz8xKSksdT1waSh0KSxkPV9lP19lLm1ham9yVGlja3MubWFwKGU9Pih7bGFiZWw6YnQoU3RyaW5nKGUuc2VyaWFsKSx0LmNhdEF4aXNGb3JtYXRDb2RlLHQuZGF0ZTE5MDQpLHg6WStlLmZyYWN0aW9uKmllfSkpOkFycmF5LmZyb20oe2xlbmd0aDpNYXRoLmNlaWwobC9zKX0sKGUsbik9PntsZXQgcj1uKnM7cmV0dXJue2xhYmVsOmJ0KChjW3JdPz9gYCkudG9TdHJpbmcoKSx0LmNhdEF4aXNGb3JtYXRDb2RlLHQuZGF0ZTE5MDQpLHg6WChyKX19KTtmb3IobGV0IHIgb2YgZCl7bGV0IGk9ci54O2lmKCFvKWNvbnRpbnVlO2UuZmlsbFN0eWxlPW47bGV0IGE9ci5sYWJlbDtpZighYSljb250aW51ZTtsZXQgcz10LmNhdEF4aXNGb250U2l6ZUhwdD09bnVsbD81OlRlKGspO21pKGUsYSxpLHJlK2FlK3MsdSl9fWlmKGgmJnope2xldCBpPXQudmFsQXhpc0ZvbnRDb2xvcj9gIyR7dC52YWxBeGlzRm9udENvbG9yfWA6YCM1NTVgO3lpKGUsdCxoLHosY2UsbixZLHJlLGllLGFlLHIsQixWLGksdC5kYXRlMTkwNCl9UHIoZSx0LHcsaSxhLG8scyxZLHJlLGllLGFlLEMrMixyKSxncihlLHQsaSxhLG8scyxZLHJlLGllLGFlLEUsTyxNLE4pfWZ1bmN0aW9uIE5pKGUsdCxuLHIpe2xldHt4OmkseTphLHc6byxoOnN9PW4sYz1EaSh0KSxsPWMubGVuZ3RoO2lmKGw9PT0wKXJldHVybjtsZXQgdT10LnNlcmllcyxkPXUubGVuZ3RoPj00LGY9ZD8wOi0xLHA9KyEhZCxtPWQ/MjoxLGg9ZD8zOjIsZz11W3BdLF89dVttXSx2PXVbaF0seT1mPj0wP3VbZl06dm9pZCAwLGI9dVswXSx4PXUuYXQoLTEpLFM9d2koZSx0LG8scyxyKSxDPVMuZm9udFB4LHc9Uy50b3BQYWQsVD1TLmJhbmRILEU9anIoZSx0LG8scywuMjIscikse2xlZ1JpZ2h0VzpELGxlZ0xlZnRXOk8sbGVnQm90dG9tSDprLGxlZ1RvcEg6QX09eWUoRSksaj1saSh0LmNhdEF4aXNGb250U2l6ZUhwdCxzLHIpLE09bGkodC52YWxBeGlzRm9udFNpemVIcHQscyxyKSxOPVNlKHQsbyxzLHIpLFA9Ti5jYXRGb250UHgsRj1OLnZhbEZvbnRQeCxJPU4uY2F0QmFuZEgsTD1OLnZhbEJhbmRXLFI9VCtBK00vMisyLHo9d2UoaikrSStrLGVlPXt0OlIscjpEK28qLjA1LGI6eixsOk0qMi4yKzEwK0wrT307RWkoZSx0LGksYSxvLHMsYSt3LEMpO2xldHtwbG90UmVjdDp7cHgwOkIscHkwOlYscHc6SCxwaDpVfX09a2UodCxpLGEsbyxzLHIse3RpdGxlQmFuZDpTLGxlZ2VuZFNpZGVSZXNlcnZlRnJhYzouMjIsbGVnZW5kUmVzZXJ2ZTpFLHBhZDplZSxob25vclBsb3RBcmVhTWFudWFsTGF5b3V0OiEwfSk7aWYoSDw9MHx8VTw9MClyZXR1cm47dC5wbG90QXJlYUJnJiYoZS5maWxsU3R5bGU9YCMke3QucGxvdEFyZWFCZ31gLGUuZmlsbFJlY3QoQixWLEgsVSkpO2xldCB0ZT0xLzAsVz0tMS8wO2ZvcihsZXQgZSBvZiB1KWZvcihsZXQgdD0wO3Q8bDt0Kyspe2xldCBuPWUudmFsdWVzW3RdO24hPW51bGwmJih0ZT1NYXRoLm1pbih0ZSxuKSxXPU1hdGgubWF4KFcsbikpfWZvcihsZXQgZSBvZiB1KWdpKGUsYHlgLHQ9PmUudmFsdWVzW3RdPz9udWxsLGU9Pnt0ZT1NYXRoLm1pbih0ZSxlKSxXPU1hdGgubWF4KFcsZSl9KTtpc0Zpbml0ZSh0ZSl8fCh0ZT0wLFc9MSksdC52YWxNaW4hPW51bGwmJih0ZT10LnZhbE1pbiksdC52YWxNYXghPW51bGwmJihXPXQudmFsTWF4KTtsZXQgbmU9bmkodCx0ZSxXLFUvcik7aWYobmUubWF4LW5lLm1pbj09PTApcmV0dXJuO2xldCBHPWU9PlYrVS1uZS5mcmFjKGUpKlUsSz1vdCh0KSxxPUpyKHQpLEo9aGkodCxjKSxZPUo/ZT0+QitKLnBvc2l0aW9uc1tlXSpIOks/ZT0+QisoKHE/bC0xLWU6ZSkrLjUpL2wqSDplPT57bGV0IHQ9cT9sLTEtZTplO3JldHVybiBCKyhsPT09MT9ILzI6dC8obC0xKSpIKX07aWYoIXQudmFsQXhpc0hpZGRlbil7ZS5mb250PWAke019cHggJHtscih0LHQudmFsQXhpc0ZvbnRGYWNlLGBtaW5vcmApfWAsZS50ZXh0QmFzZWxpbmU9YG1pZGRsZWA7bGV0IG49enIodCxyKSxpPUJyKHQscik7Zm9yKGxldCB0IG9mIG5lLm1pbm9yTGluZXMpUnIoZSxCLEgsRyh0KSwhMSxpKTtsZXQgYT1Zcih0KSxvPXQudmFsQXhpc1RpY2tMYWJlbFBvcyE9PWBub25lYDtmb3IobGV0IGkgb2YgbmUubWFqb3JMaW5lcyl7bGV0IHM9RyhpKTthJiZScihlLEIsSCxzLGk9PT0wLG4pLEZyKGUsdC52YWxBeGlzTWFqb3JUaWNrTWFyayxgdmFsYCxCLHMsdm9pZCAwLHZvaWQgMCwhMSx0LnZhbEF4aXNMaW5lSGlkZGVuLGBtYWpvcmAsciksbyYmKGUuZmlsbFN0eWxlPXQudmFsQXhpc0ZvbnRDb2xvcj9gIyR7dC52YWxBeGlzRm9udENvbG9yfWA6YCM1NTVgLGUudGV4dEFsaWduPWByaWdodGAsZS5maWxsVGV4dChacih0LGksITEpLEItNixzKSl9Zm9yKGxldCBuIG9mIG5lLm1pbm9yVGlja3MpRnIoZSx0LnZhbEF4aXNNaW5vclRpY2tNYXJrLGB2YWxgLEIsRyhuKSx2b2lkIDAsdm9pZCAwLCExLHQudmFsQXhpc0xpbmVIaWRkZW4sYG1pbm9yYCxyKX1pZihlLnN0cm9rZVN0eWxlPWAjYWFhYCxlLmxpbmVXaWR0aD0xLCF0LmNhdEF4aXNIaWRkZW4mJiF0LmNhdEF4aXNMaW5lSGlkZGVuJiYoZS5iZWdpblBhdGgoKSxlLm1vdmVUbyhCLFYrVSksZS5saW5lVG8oQitILFYrVSksZS5zdHJva2UoKSksIXQudmFsQXhpc0hpZGRlbiYmIXQudmFsQXhpc0xpbmVIaWRkZW4mJihlLmJlZ2luUGF0aCgpLGUubW92ZVRvKEIsViksZS5saW5lVG8oQixWK1UpLGUuc3Ryb2tlKCkpLHQuc3RvY2tVcERvd25CYXJzJiZiJiZ4KXtsZXQgbj10LnN0b2NrVXBEb3duQmFyU3R5bGUsaT1uPy5nYXBXaWR0aFBlcmNlbnQhPW51bGwmJk51bWJlci5pc0Zpbml0ZShuLmdhcFdpZHRoUGVyY2VudCkmJm4uZ2FwV2lkdGhQZXJjZW50Pj0wP24uZ2FwV2lkdGhQZXJjZW50OjE1MCxhPUo/KEouY2F0ZWdvcnlCYW5kRnJhY3Rpb25zWzBdPz8wKSpIOks/SC9sOmw+MT9ILyhsLTEpOkgsbz1NYXRoLm1heCgwLGEvKDEraS8xMDApKTtmb3IobGV0IHQ9MDt0PGw7dCsrKXtsZXQgaT1iLnZhbHVlc1t0XSxhPXgudmFsdWVzW3RdO2lmKGk9PW51bGx8fGE9PW51bGx8fCFOdW1iZXIuaXNGaW5pdGUoaSl8fCFOdW1iZXIuaXNGaW5pdGUoYSkpY29udGludWU7bGV0IHM9RyhpKSxjPUcoYSksbD1NYXRoLmFicyhjLXMpO2lmKCEobz4wKXx8IShsPjApfHwhTnVtYmVyLmlzRmluaXRlKGwpKWNvbnRpbnVlO2xldCB1PWE+PWk/bj8udXA6bj8uZG93bixkPWE+PWk/YEZGRkZGRmA6YDAwMDAwMGAsZj1ZKHQpLW8vMixwPU1hdGgubWluKHMsYyk7dT8uZmlsbEhpZGRlbnx8KGUuZmlsbFN0eWxlPWAjJHt1Py5maWxsQ29sb3I/P2R9YCxlLmZpbGxSZWN0KGYscCxvLGwpKSx1Py5saW5lSGlkZGVufHwoZS5zdHJva2VTdHlsZT1gIyR7dT8ubGluZUNvbG9yPz9gMDAwMDAwYH1gLGUubGluZVdpZHRoPXU/LmxpbmVXaWR0aEVtdT09bnVsbD9NYXRoLm1heCgxLC43NSpyKTpydCh1LmxpbmVXaWR0aEVtdSxyKSxlLnNldExpbmVEYXNoKFtdKSxlLnN0cm9rZVJlY3QoZixwLG8sbCkpfX1pZigodC5zdG9ja0hpTG93TGluZXM/PyEwKSYmZyE9bnVsbCYmXyE9bnVsbCYmZyYmXyl7ZS5zdHJva2VTdHlsZT10LnN0b2NrSGlMb3dMaW5lQ29sb3I/YCMke3Quc3RvY2tIaUxvd0xpbmVDb2xvcn1gOmAjNTk1OTU5YCxlLmxpbmVXaWR0aD1NYXRoLm1heCgxLC43NSpyKSxlLnNldExpbmVEYXNoKFtdKTtmb3IobGV0IHQ9MDt0PGw7dCsrKXtsZXQgbj1nLnZhbHVlc1t0XSxyPV8udmFsdWVzW3RdO2lmKG49PW51bGx8fHI9PW51bGwpY29udGludWU7bGV0IGk9WSh0KTtlLmJlZ2luUGF0aCgpLGUubW92ZVRvKGksRyhuKSksZS5saW5lVG8oaSxHKHIpKSxlLnN0cm9rZSgpfX1sZXQgcmU9KHQsbixpKT0+e2lmKCF0KXJldHVybjtsZXQgYT1hcihuLHQpLG89dC5tYXJrZXJTeW1ib2w/P251bGwscz1vIT1udWxsJiZvIT09YG5vbmVgJiZwYSh0KSxjPU1hdGgubWF4KDMsSC9sKi4yMik7Zm9yKGxldCBuPTA7bjxsO24rKyl7bGV0IGw9dC52YWx1ZXNbbl07aWYobD09bnVsbCljb250aW51ZTtsZXQgdT1ZKG4pLGQ9RyhsKTtpZihvPT09YG5vbmVgKWNvbnRpbnVlO2lmKHMpe2lhKGUsdSxkLG8sdC5tYXJrZXJTaXplPz8zLHQubWFya2VyRmlsbD8/YSx0Lm1hcmtlckxpbmU/P251bGwscix0Lm1hcmtlckxpbmVXaWR0aEVtdT09bnVsbD92b2lkIDA6cnQodC5tYXJrZXJMaW5lV2lkdGhFbXUscikpO2NvbnRpbnVlfWUuc3Ryb2tlU3R5bGU9YSxlLmxpbmVXaWR0aD1NYXRoLm1heCgxLC43NSpyKSxlLmJlZ2luUGF0aCgpO2xldCBmPWk9PT1gcmlnaHRgP3U6aT09PWBsZWZ0YD91LWM6dS1jLzIscD1pPT09YHJpZ2h0YD91K2M6aT09PWBsZWZ0YD91OnUrYy8yO2UubW92ZVRvKGYsZCksZS5saW5lVG8ocCxkKSxlLnN0cm9rZSgpfX07cmUoeSxmLGBsZWZ0YCksZz8ubWFya2VyU3ltYm9sIT1udWxsJiZyZShnLHAsYGJvdGhgKSxfPy5tYXJrZXJTeW1ib2whPW51bGwmJnJlKF8sbSxgYm90aGApLHJlKHYsaCxgcmlnaHRgKTtmb3IobGV0IHQ9MDt0PHUubGVuZ3RoO3QrKyl7bGV0IG49dVt0XSxyPWFyKHQsbik7Zm9yKGxldCB0IG9mIG4uZXJyQmFycz8/W10pbWEoZSxuLHQsbCxZLEcsZT0+bi52YWx1ZXNbZV0/PzAscil9aWYodS5sZW5ndGg8Mylmb3IobGV0IGU9MDtlPHUubGVuZ3RoO2UrKylyZSh1W2VdLGUsYGJvdGhgKTtpZighdC5jYXRBeGlzSGlkZGVuKXtsZXQgbj1NYXRoLm1heCgxLE1hdGguZmxvb3IodC5jYXRBeGlzVGlja0xhYmVsU2tpcD8/MSkpLGk9dC5jYXRBeGlzRm9udENvbG9yP2AjJHt0LmNhdEF4aXNGb250Q29sb3J9YDpgIzU1NWA7ZS5maWxsU3R5bGU9aSxlLnRleHRBbGlnbj1gY2VudGVyYCxlLnRleHRCYXNlbGluZT1gdG9wYCxlLmZvbnQ9YCR7an1weCAke2xyKHQsdC5jYXRBeGlzRm9udEZhY2UsYG1pbm9yYCl9YDtsZXQgYT1KPyhKLmNhdGVnb3J5QmFuZEZyYWN0aW9uc1swXT8/MCkqSC00OkgvbCpuLTQsbz1maSh0KSxzPXBpKHQpLHU9Sj9KLm1ham9yVGlja3MubWFwKGU9Pih7bGFiZWw6YnQoU3RyaW5nKGUuc2VyaWFsKSx0LmNhdEF4aXNGb3JtYXRDb2RlLHQuZGF0ZTE5MDQpLHg6QitlLmZyYWN0aW9uKkh9KSk6QXJyYXkuZnJvbSh7bGVuZ3RoOk1hdGguY2VpbChsL24pfSwoZSxyKT0+e2xldCBpPXIqbjtyZXR1cm57bGFiZWw6YnQoKGNbaV0/P2BgKS50b1N0cmluZygpLHQuY2F0QXhpc0Zvcm1hdENvZGUsdC5kYXRlMTkwNCkseDpZKGkpfX0pO2ZvcihsZXQgbiBvZiB1KXtsZXQgYz1uLng7aWYoRnIoZSx0LmNhdEF4aXNNYWpvclRpY2tNYXJrLGBjYXRgLFYrVSxjLHZvaWQgMCx2b2lkIDAsITEsdC5jYXRBeGlzTGluZUhpZGRlbixgbWFqb3JgLHIpLCFvKWNvbnRpbnVlO2UuZmlsbFN0eWxlPWk7bGV0IGw9bi5sYWJlbDttaShlLE90KGUsbCxzPT09MD9hOlUqLjQpLGMsVitVKzUscyl9aWYodC5jYXRBeGlzTWlub3JUaWNrTWFyayYmdC5jYXRBeGlzTWlub3JUaWNrTWFyayE9PWBub25lYCYmSilmb3IobGV0IG4gb2YgSi5taW5vclRpY2tzKUZyKGUsdC5jYXRBeGlzTWlub3JUaWNrTWFyayxgY2F0YCxWK1UsQituLmZyYWN0aW9uKkgsdm9pZCAwLHZvaWQgMCwhMSx0LmNhdEF4aXNMaW5lSGlkZGVuLGBtaW5vcmAscil9UHIoZSx0LEUsaSxhLG8scyxCLFYsSCxVLFQrMixyKSxncihlLHQsaSxhLG8scyxCLFYsSCxVLE8sayxQLEYpfWNvbnN0IFBpPTJlNSxGaT0xLjI1O2Z1bmN0aW9uIElpKGUsdCxuKXtpZihlLmxlbmd0aD09PTApcmV0dXJuW107bGV0IHI9W10saT1lPT5uP2UudmFsdWU+PXQ6ZS52YWx1ZTw9dCxhPWVbZS5sZW5ndGgtMV0sbz1pKGEpO2ZvcihsZXQgbiBvZiBlKXtsZXQgZT1pKG4pO2lmKGUhPT1vKXtsZXQgZT1uLnZhbHVlLWEudmFsdWUsaT1lPT09MD8wOih0LWEudmFsdWUpL2U7ci5wdXNoKHt4OmEueCsobi54LWEueCkqaSx5OmEueSsobi55LWEueSkqaSxkZXB0aDphLmRlcHRoKyhuLmRlcHRoLWEuZGVwdGgpKmksdmFsdWU6dH0pfWUmJnIucHVzaChuKSxhPW4sbz1lfXJldHVybiByfWZ1bmN0aW9uIExpKGUsdCxuLHIpe2xldHt4OmkseTphLHc6byxoOnN9PW4sYz1EaSh0KSxsPXQuc2VyaWVzLHU9Yy5sZW5ndGgsZD1sLmxlbmd0aDtpZih1PDJ8fGQ8MilyZXR1cm47bGV0IGY9MS8wLHA9LTEvMDtmb3IobGV0IGUgb2YgbClmb3IobGV0IHQ9MDt0PHU7dCsrKXtsZXQgbj1lLnZhbHVlc1t0XTtuPT1udWxsfHwhTnVtYmVyLmlzRmluaXRlKG4pfHwoZj1NYXRoLm1pbihmLG4pLHA9TWF0aC5tYXgocCxuKSl9aWYoIU51bWJlci5pc0Zpbml0ZShmKXx8IU51bWJlci5pc0Zpbml0ZShwKSlyZXR1cm47dC52YWxNaW4hPW51bGwmJihmPXQudmFsTWluKSx0LnZhbE1heCE9bnVsbCYmKHA9dC52YWxNYXgpO2xldCBtPXsuLi50LnRocmVlRD8/e30scm90YXRpb25YOnQudGhyZWVEPy5yb3RhdGlvblg/PzE1LHJvdGF0aW9uWTp0LnRocmVlRD8ucm90YXRpb25ZPz8yMCxyaWdodEFuZ2xlQXhlczp0LnRocmVlRD8ucmlnaHRBbmdsZUF4ZXM/PyExLHBlcnNwZWN0aXZlOnQudGhyZWVEPy5wZXJzcGVjdGl2ZT8/MzB9LGg9Vm4obSksZz1IbihtKSxfPSRuKG0sbix7c2NlbmVEZXB0aFNjYWxlOkZpLHBlcnNwZWN0aXZlVGFuZ2VudEdhaW46Z30pLHY7aWYoXyl7bGV0IGU9Xy50b3BvbG9neS5heGlzWD09PWBtaW5gP18uZnJvbnQueDpfLmZyb250LngrXy5mcm9udC53LHQ9Xy5wcm9qZWN0KGUsXy5mcm9udC55K18uZnJvbnQuaCxfLnRvcG9sb2d5Lm5lYXJEZXB0aCksbj1fLnByb2plY3QoZSxfLmZyb250LnksXy50b3BvbG9neS5uZWFyRGVwdGgpO3Y9TWF0aC5oeXBvdChuLngtdC54LG4ueS10LnkpL3J9bGV0IHk9dC52YWxBeGlzTWFqb3JVbml0PT1udWxsP0JlKGYscCx2KTpudWxsLGI9bmkoeT09bnVsbD90OnsuLi50LHZhbEF4aXNNYWpvclVuaXQ6eX0sZixwLHYpLHg9Yi5zdGVwO2lmKCEoeD4wKXx8IU51bWJlci5pc0Zpbml0ZSh4KSlyZXR1cm47bGV0IFM9dC52YWxNaW4/P2IubWluLEM9dC52YWxNYXg/P01hdGgubWF4KFMreCxTK01hdGguY2VpbCgocC1TKS94KSp4KSx3PUMtUztpZighKHc+MCl8fCFOdW1iZXIuaXNGaW5pdGUodykpcmV0dXJuO2xldCBUPU1hdGguY2VpbCh3L3gpLEU9TWF0aC5mbG9vcih3L3grMWUtOSkrMSxEPSh1LTEpKihkLTEpKjI7aWYoIU51bWJlci5pc1NhZmVJbnRlZ2VyKFQpfHwhTnVtYmVyLmlzU2FmZUludGVnZXIoRSl8fFQ8MXx8RTwyfHxEPDF8fFQ+NTEyfHxFPjUxMnx8VD5NYXRoLmZsb29yKFBpL0QpfHxFPlBpKXJldHVybjtsZXQgTz1ULGs9cXIodCk/ZT0+MS0oZS1TKS93OmU9PihlLVMpL3csQT1BcnJheS5mcm9tKHtsZW5ndGg6RX0sKGUsdCk9PlMrdCp4KSxqPUFycmF5LmZyb20oe2xlbmd0aDpPfSwoZSxuKT0+R24odC50aGVtZUFjY2VudENvbG9ycz8/W10sbixPLHQubGVnYWN5Q2hhcnRTdHlsZT8/Mik/PyhsW25dPy5jb2xvcj9gIyR7bFtuXS5jb2xvcn1gOmFyKG4sbFtuXSkpKSxNPW5ldyBNYXAoKHQuc3VyZmFjZUJhbmRGb3JtYXRzPz9bXSkubWFwKGU9PltlLmlkeCxlXSkpLE49QXJyYXkuZnJvbSh7bGVuZ3RoOk99LChlLHQpPT57bGV0IG49Uyt0Kngscj1NYXRoLm1pbihDLG4reCk7cmV0dXJuYCR7dnQobil9LSR7dnQocil9YH0pLFA9ey4uLnQsc2VyaWVzOk4ubWFwKChlLHQpPT4oe25hbWU6ZSxjb2xvcjpqW3RdLnJlcGxhY2UoL14jLyxgYCksdmFsdWVzOltdfSkpfTtNYXRoLmFicyhtLnJvdGF0aW9uWCk9PT05MCYmUC5zZXJpZXMucmV2ZXJzZSgpO2xldCBGPWpyKGUsUCxvLHMsLjIyLHIpLHtsZWdSaWdodFc6SSxsZWdMZWZ0VzpMLGxlZ1RvcEg6UixsZWdCb3R0b21IOnp9PXllKEYpLGVlPXdpKGUsdCxvLHMsciksQj1saSh0LmNhdEF4aXNGb250U2l6ZUhwdCxzLHIpLFY9dC50aHJlZUQ/LnNlcmllc0F4aXMsSD1oZShWPy5mb250U2l6ZUhwdCxyKT8/Qix7cHgwOlUscHkwOnRlLHB3OlcscGg6bmV9PWtlKHQsaSxhLG8scyxyLHt0aXRsZUJhbmQ6ZWUsbGVnZW5kU2lkZVJlc2VydmVGcmFjOi4yMixsZWdlbmRSZXNlcnZlOkYscGFkOnt0OmVlLmJhbmRIK1IrSC8yLHI6SStIKjMuMisxMixiOndlKEIpK3osbDpMK0IqMS41fSxob25vclBsb3RBcmVhTWFudWFsTGF5b3V0OiEwfSkucGxvdFJlY3Q7aWYoIShXPjApfHwhKG5lPjApKXJldHVybjtFaShlLHQsdC50aXRsZU1hbnVhbExheW91dHx8IXQudGl0bGVSaWNoUnVucz8ubGVuZ3RoP2k6VSxhLHQudGl0bGVNYW51YWxMYXlvdXR8fCF0LnRpdGxlUmljaFJ1bnM/Lmxlbmd0aD9vOlcscyxhK2VlLnRvcFBhZCxlZS5mb250UHgpO2xldCBHPSRuKG0se3g6VSx5OnRlLHc6VyxoOm5lfSx7c2NlbmVEZXB0aFNjYWxlOkZpLHBlcnNwZWN0aXZlVGFuZ2VudEdhaW46Z30pO2lmKCFHKXJldHVybjtsZXQgSz1ofHxNYXRoLmFicyhtLnJvdGF0aW9uWCk9PT05MCYmbS5yb3RhdGlvblk9PT0wJiZtLnJpZ2h0QW5nbGVBeGVzPT09ITEmJm0ucGVyc3BlY3RpdmU9PT0wLHtmcm9udDpxfT1HLEo9dC5jYXRBeGlzT3JpZW50YXRpb249PT1gbWF4TWluYCxZPW90KHQpLHJlPWU9PnEueCtqdChlLHUsWSxKKSpxLncsaWU9Vj8ub3JpZW50YXRpb249PT1gbWF4TWluYCxhZT1lPT5qdChlLGQsITEsaWUpLG9lPWU9PnEueStxLmgtayhlKSpxLmgsc2U9W10sY2U9ZT0+e2lmKHQuc3VyZmFjZVdpcmVmcmFtZT09PSEwKXJldHVybjtsZXQgbj1NYXRoLm1pbiguLi5lLm1hcChlPT5lLnZhbHVlKSkscj1NYXRoLm1heCguLi5lLm1hcChlPT5lLnZhbHVlKSksaT1NYXRoLm1heCgwLE1hdGguZmxvb3IoKG4tUykveCkpLGE9TWF0aC5taW4oTy0xLE1hdGguZmxvb3IoKHItUykveCkpO2ZvcihsZXQgdD1pO3Q8PWE7dCsrKXtsZXQgbj1TK3QqeCxyPXQ9PT1PLTE/QzpuK3gsaT1JaShlLG4sITApO2lmKGk9SWkoaSxyLCExKSxpLmxlbmd0aDwzKWNvbnRpbnVlO2xldCBhPWkubWFwKGU9PkcucHJvamVjdChlLngsZS55LGUuZGVwdGgpKTtzZS5wdXNoKHtwb2ludHM6YSxzY2VuZVBvaW50czppLGJhbmQ6dCxkZXB0aDppLnJlZHVjZSgoZSx0KT0+ZStHLmNhbWVyYURlcHRoKHQueCx0LnksdC5kZXB0aCksMCkvaS5sZW5ndGh9KX19O2Uuc2F2ZSgpLGUuYmVnaW5QYXRoKCksZS5yZWN0KFUsdGUsVyxuZSksZS5jbGlwKCk7bGV0IGxlPSh0LG4scixpKT0+e2lmKHQubGVuZ3RoPDIpcmV0dXJuO2xldCBhPXQubWFwKGU9PkcucHJvamVjdChlLngsZS55LGUuZGVwdGgpKTtlLmJlZ2luUGF0aCgpLGUubW92ZVRvKGFbMF0ueCxhWzBdLnkpO2ZvcihsZXQgdD0xO3Q8YS5sZW5ndGg7dCsrKWUubGluZVRvKGFbdF0ueCxhW3RdLnkpO2Uuc3Ryb2tlU3R5bGU9bixlLmxpbmVXaWR0aD1yLGUuc2V0TGluZURhc2goT24oaT8/YHNvbGlkYCxyKSksZS5zdHJva2UoKX0sdWU9Ry50b3BvbG9neS5mYXJEZXB0aCxkZT1HLnRvcG9sb2d5Lm5lYXJEZXB0aCxmZT1xLnkrcS5oLHBlPUcudG9wb2xvZ3kuZmFyWD09PWBtaW5gP3EueDpxLngrcS53O2lmKFlyKHQpKXtsZXQgZT1hdCh0LnZhbEF4aXNHcmlkbGluZUNvbG9yLHQudmFsQXhpc0dyaWRsaW5lV2lkdGhFbXUscik7Zm9yKGxldCBuIG9mIEEpe2xldCByPW9lKG4pO2xlKFt7eDpxLngseTpyLGRlcHRoOnVlfSx7eDpxLngrcS53LHk6cixkZXB0aDp1ZX1dLGUuY29sb3IsZS53aWR0aCx0LnZhbEF4aXNHcmlkbGluZURhc2gpLGxlKFt7eDpwZSx5OnIsZGVwdGg6ZGV9LHt4OnBlLHk6cixkZXB0aDp1ZX1dLGUuY29sb3IsZS53aWR0aCx0LnZhbEF4aXNHcmlkbGluZURhc2gpfX1pZih0LmNhdEF4aXNNYWpvckdyaWRsaW5lcyl7bGV0IGU9YXQodC5jYXRBeGlzR3JpZGxpbmVDb2xvcix0LmNhdEF4aXNHcmlkbGluZVdpZHRoRW11LHIpO2ZvcihsZXQgbiBvZiBLcih0LHUpKWxlKFt7eDpxLngrbipxLncseTpmZSxkZXB0aDpkZX0se3g6cS54K24qcS53LHk6ZmUsZGVwdGg6dWV9XSxlLmNvbG9yLGUud2lkdGgsdC5jYXRBeGlzR3JpZGxpbmVEYXNoKX1mb3IobGV0IGU9MDtlPGQtMTtlKyspZm9yKGxldCB0PTA7dDx1LTE7dCsrKXtsZXQgbj1bbFtlXS52YWx1ZXNbdF0sbFtlXS52YWx1ZXNbdCsxXSxsW2UrMV0udmFsdWVzW3QrMV0sbFtlKzFdLnZhbHVlc1t0XV07aWYobi5zb21lKGU9PmU9PW51bGx8fCFOdW1iZXIuaXNGaW5pdGUoZSkpKWNvbnRpbnVlO2xldCByPXt4OnJlKHQpLHk6b2UoblswXSksZGVwdGg6YWUoZSksdmFsdWU6blswXX0saT17eDpyZSh0KzEpLHk6b2UoblsxXSksZGVwdGg6YWUoZSksdmFsdWU6blsxXX0sYT17eDpyZSh0KzEpLHk6b2UoblsyXSksZGVwdGg6YWUoZSsxKSx2YWx1ZTpuWzJdfSxvPXt4OnJlKHQpLHk6b2UoblszXSksZGVwdGg6YWUoZSsxKSx2YWx1ZTpuWzNdfTtyLnZhbHVlK2EudmFsdWU+aS52YWx1ZStvLnZhbHVlPyhjZShbcixpLGFdKSxjZShbcixhLG9dKSk6KGNlKFtyLGksb10pLGNlKFtpLGEsb10pKX1zZS5zb3J0KChlLHQpPT5lLmRlcHRoLXQuZGVwdGgpO2ZvcihsZXQgdCBvZiBzZSl7bGV0IG49TS5nZXQodC5iYW5kKTtlLmJlZ2luUGF0aCgpLGUubW92ZVRvKHQucG9pbnRzWzBdLngsdC5wb2ludHNbMF0ueSk7Zm9yKGxldCBuPTE7bjx0LnBvaW50cy5sZW5ndGg7bisrKWUubGluZVRvKHQucG9pbnRzW25dLngsdC5wb2ludHNbbl0ueSk7aWYoZS5jbG9zZVBhdGgoKSxuPy5maWxsSGlkZGVuIT09ITApe2xldCByPU1hdGgubWluKC4uLnQucG9pbnRzLm1hcChlPT5lLngpKSxpPU1hdGgubWF4KC4uLnQucG9pbnRzLm1hcChlPT5lLngpKSxhPU1hdGgubWluKC4uLnQucG9pbnRzLm1hcChlPT5lLnkpKSxvPU1hdGgubWF4KC4uLnQucG9pbnRzLm1hcChlPT5lLnkpKTtlLmZpbGxTdHlsZT0obj8uZmlsbD9MbihuLmZpbGwsZSxyLGEsaS1yLG8tYSk6bnVsbCk/P1VuKGpbdC5iYW5kXSxLP0tuKEcuY2FtZXJhTm9ybWFsKHQuc2NlbmVQb2ludHMpKToxKSxlLmZpbGwoKX1uJiZuLmxpbmVIaWRkZW4hPT0hMCYmbi5saW5lQ29sb3ImJihlLnN0cm9rZVN0eWxlPWAjJHtuLmxpbmVDb2xvcn1gLGUubGluZVdpZHRoPW4ubGluZVdpZHRoRW11PT1udWxsPzE6cnQobi5saW5lV2lkdGhFbXUsciksZS5zZXRMaW5lRGFzaChbXSksZS5zdHJva2UoKSl9aWYodC5zdXJmYWNlV2lyZWZyYW1lPT09ITApe2Uuc3Ryb2tlU3R5bGU9YCM1OTU5NTlgLGUubGluZVdpZHRoPU1hdGgubWF4KDEsLjc1KnIpLGUuc2V0TGluZURhc2goW10pO2ZvcihsZXQgdD0wO3Q8ZDt0Kyspe2UuYmVnaW5QYXRoKCk7Zm9yKGxldCBuPTA7bjx1O24rKyl7bGV0IHI9bFt0XS52YWx1ZXNbbl07aWYocj09bnVsbHx8IU51bWJlci5pc0Zpbml0ZShyKSljb250aW51ZTtsZXQgaT1HLnByb2plY3QocmUobiksb2UociksYWUodCkpO249PT0wP2UubW92ZVRvKGkueCxpLnkpOmUubGluZVRvKGkueCxpLnkpfWUuc3Ryb2tlKCl9Zm9yKGxldCB0PTA7dDx1O3QrKyl7ZS5iZWdpblBhdGgoKTtmb3IobGV0IG49MDtuPGQ7bisrKXtsZXQgcj1sW25dLnZhbHVlc1t0XTtpZihyPT1udWxsfHwhTnVtYmVyLmlzRmluaXRlKHIpKWNvbnRpbnVlO2xldCBpPUcucHJvamVjdChyZSh0KSxvZShyKSxhZShuKSk7bj09PTA/ZS5tb3ZlVG8oaS54LGkueSk6ZS5saW5lVG8oaS54LGkueSl9ZS5zdHJva2UoKX19ZS5yZXN0b3JlKCk7bGV0IG1lPUcucHJvamVjdChxLngsZmUsZGUpLGdlPUcucHJvamVjdChxLngrcS53LGZlLGRlKTtlLnN0cm9rZVN0eWxlPXQuY2F0QXhpc0xpbmVDb2xvcj9gIyR7dC5jYXRBeGlzTGluZUNvbG9yfWA6YCMwMDAwMDBgLGUubGluZVdpZHRoPXQuY2F0QXhpc0xpbmVXaWR0aEVtdT09bnVsbD8xOnJ0KHQuY2F0QXhpc0xpbmVXaWR0aEVtdSxyKSxlLnNldExpbmVEYXNoKFtdKSxlLmJlZ2luUGF0aCgpLGUubW92ZVRvKG1lLngsbWUueSksZS5saW5lVG8oZ2UueCxnZS55KSxlLnN0cm9rZSgpLGUuZm9udD11cihCLGxyKHQsdC5jYXRBeGlzRm9udEZhY2UsYG1pbm9yYCkpLGUuZmlsbFN0eWxlPXQuY2F0QXhpc0ZvbnRDb2xvcj9gIyR7dC5jYXRBeGlzRm9udENvbG9yfWA6YCMwMDAwMDBgLGUudGV4dEFsaWduPWBjZW50ZXJgLGUudGV4dEJhc2VsaW5lPWB0b3BgO2ZvcihsZXQgdD0wO3Q8dTt0Kyspe2xldCBuPUcucHJvamVjdChyZSh0KSxmZSxkZSk7ZS5maWxsVGV4dChjW3RdPz9gYCxuLngsbi55KzgpfWlmKCFWPy5oaWRkZW4pe2Uuc3Ryb2tlU3R5bGU9Vj8ubGluZUNvbG9yP2AjJHtWLmxpbmVDb2xvcn1gOmAjMDAwMDAwYCxlLmxpbmVXaWR0aD1WPy5saW5lV2lkdGhFbXU9PW51bGw/MTpydChWLmxpbmVXaWR0aEVtdSxyKTtsZXQgbj1HLnByb2plY3QocS54LGZlLC41KSxpPUcucHJvamVjdChxLngrcS53LGZlLC41KSxhPW4ueD49aS54P3EueDpxLngrcS53LG89Ry5wcm9qZWN0KGEsZmUsZGUpLHM9Ry5wcm9qZWN0KGEsZmUsdWUpO2UuYmVnaW5QYXRoKCksZS5tb3ZlVG8oby54LG8ueSksZS5saW5lVG8ocy54LHMueSksZS5zdHJva2UoKSxlLmZvbnQ9dXIoSCxscih0LFY/LmZvbnRGYWNlLGBtaW5vcmApLFY/LmZvbnRCb2xkPz8hMSxWPy5mb250SXRhbGljPz8hMSksZS5maWxsU3R5bGU9Vj8uZm9udENvbG9yP2AjJHtWLmZvbnRDb2xvcn1gOmAjMDAwMDAwYCxlLnRleHRBbGlnbj1gbGVmdGAsZS50ZXh0QmFzZWxpbmU9YG1pZGRsZWA7Zm9yKGxldCB0PTA7dDxkO3QrKyl7bGV0IG49Ry5wcm9qZWN0KGEsZmUsYWUodCkpO2UuZmlsbFRleHQobFt0XS5uYW1lLG4ueCs4LG4ueSl9fWlmKCF0LnZhbEF4aXNIaWRkZW4pe2xldCBuPUcudG9wb2xvZ3kuYXhpc1g9PT1gbWluYD9xLng6cS54K3EudyxpPUcucHJvamVjdChuLHEueStxLmgsZGUpLGE9Ry5wcm9qZWN0KG4scS55LGRlKTtpZihNYXRoLmh5cG90KGEueC1pLngsYS55LWkueSk+NCl7ZS5zdHJva2VTdHlsZT10LnZhbEF4aXNMaW5lQ29sb3I/YCMke3QudmFsQXhpc0xpbmVDb2xvcn1gOmAjMDAwMDAwYCxlLmxpbmVXaWR0aD10LnZhbEF4aXNMaW5lV2lkdGhFbXU9PW51bGw/MTpydCh0LnZhbEF4aXNMaW5lV2lkdGhFbXUsciksZS5iZWdpblBhdGgoKSxlLm1vdmVUbyhpLngsaS55KSxlLmxpbmVUbyhhLngsYS55KSxlLnN0cm9rZSgpLGUuZm9udD11cihsaSh0LnZhbEF4aXNGb250U2l6ZUhwdCxzLHIpLGxyKHQsdC52YWxBeGlzRm9udEZhY2UsYG1pbm9yYCkpLGUuZmlsbFN0eWxlPXQudmFsQXhpc0ZvbnRDb2xvcj9gIyR7dC52YWxBeGlzRm9udENvbG9yfWA6YCMwMDAwMDBgO2xldCBvPShpLngrYS54KS8yPFUrVy8yO2UudGV4dEFsaWduPW8/YHJpZ2h0YDpgbGVmdGAsZS50ZXh0QmFzZWxpbmU9YG1pZGRsZWA7Zm9yKGxldCByIG9mIEEpe2xldCBpPUcucHJvamVjdChuLG9lKHIpLGRlKTtlLmZpbGxUZXh0KHl0KHIsdC52YWxBeGlzRm9ybWF0Q29kZSx0LmRhdGUxOTA0KSxpLngrKG8/LTY6NiksaS55KX19fVByKGUsUCxGLGksYSxvLHMsVSx0ZSxXLG5lLGVlLmJhbmRIKzIscil9ZnVuY3Rpb24gUmkoZSx0LG4scil7bGV0e3g6aSx5OmEsdzpvLGg6c309bixjPURpKHQpLGw9Yy5sZW5ndGg7aWYobD09PTApcmV0dXJuO2xldCB1PXQuc2VyaWVzLm1hcCgoZSx0KT0+KHtzZXJpZXM6ZSxjaGFydEluZGV4OnR9KSkuZmlsdGVyKCh7c2VyaWVzOmV9KT0+ZS5zZXJpZXNUeXBlPT1udWxsfHxlLnNlcmllc1R5cGU9PT1gYXJlYWApLGQ9dC5zZXJpZXMubWFwKChlLHQpPT4oe3NlcmllczplLGNoYXJ0SW5kZXg6dH0pKS5maWx0ZXIoKHtzZXJpZXM6ZX0pPT5lLnNlcmllc1R5cGU9PT1gbGluZWApO2lmKHUubGVuZ3RoPT09MCYmZC5sZW5ndGg9PT0wKXJldHVybjtsZXQgZj10LmNoYXJ0VHlwZT09PWBzdGFja2VkQXJlYWB8fHQuY2hhcnRUeXBlPT09YHN0YWNrZWRBcmVhUGN0YCxwPXQuY2hhcnRUeXBlPT09YHN0YWNrZWRBcmVhUGN0YCxtPXA/Yy5tYXAoKGUsdCk9PntsZXQgbj0wO2ZvcihsZXR7c2VyaWVzOmV9b2YgdSluKz1NYXRoLmFicyhlLnZhbHVlc1t0XT8/MCk7cmV0dXJuIG58fDF9KTpudWxsLGg9KGUsdCk9PntsZXQgbj11W2VdLnNlcmllcy52YWx1ZXNbdF0/PzA7cmV0dXJuIHAmJm0/bi9tW3RdKjEwMDpufSxnPSFmJiZ0LnNlY29uZGFyeVZhbEF4aXMmJnQuc2VyaWVzLnNvbWUoZT0+ZS51c2VTZWNvbmRhcnlBeGlzPT09ITApP3Quc2Vjb25kYXJ5VmFsQXhpczpudWxsLF89ZT0+ZyE9bnVsbCYmZS51c2VTZWNvbmRhcnlBeGlzPT09ITAsdj13aShlLHQsbyxzLHIpLHk9di5mb250UHgsYj12LnRvcFBhZCx4PXYuYmFuZEgsUz1saSh0LmNhdEF4aXNGb250U2l6ZUhwdCxzLHIpLEM9bGkodC52YWxBeGlzRm9udFNpemVIcHQscyxyKSx3PWpyKGUsdCxvLHMsLjIyLHIpLHtsZWdSaWdodFc6VCxsZWdMZWZ0VzpFLGxlZ1RvcEg6RCxsZWdCb3R0b21IOk99PXllKHcpLGs9U2UodCxvLHMsciksQT1rLmNhdEZvbnRQeCxqPWsudmFsRm9udFB4LE09ay5jYXRCYW5kSCxOPWsudmFsQmFuZFcsUD14K0QrQy8yKzIsRj13ZShTKStNK08sST1zLVAtRixMPV9pKGcsdC5zZXJpZXMsSS9yKSxSPU1hdGgubWF4KDgsTWF0aC5taW4oMTEscy8yMCkpLHo9aGUoZz8uZm9udFNpemVIcHQscik/P1IsZWU9MDtpZihnJiZMJiYhZy5oaWRkZW4pe2xldCBuPWUuZm9udDtlLmZvbnQ9YCR7en1weCAke2xyKHQsZy5mb250RmFjZSxgbWlub3JgKX1gO2xldCByPTA7Zm9yKGxldCBuIG9mIEwubWFqb3JMaW5lcylyPU1hdGgubWF4KHIsZS5tZWFzdXJlVGV4dCgkcihuLGcuZm9ybWF0Q29kZT8/bnVsbCx0LmRhdGUxOTA0LGcuZGlzcGxheVVuaXRzKSkud2lkdGgpO2VlPXIrMTgsZS5mb250PW59bGV0IEI9ZyYmZy50aXRsZT9iZShnLnRpdGxlRm9udFNpemVIcHQscikrODowLFY9KCgpPT57bGV0IGU9MS8wLHQ9LTEvMDtmb3IobGV0IG49MDtuPGw7bisrKXtpZihmKXtsZXQgcj0wLGk9MDtmb3IobGV0IGU9MDtlPHUubGVuZ3RoO2UrKyl7bGV0IHQ9aChlLG4pO3Q+PTA/cis9dDppKz10fWU9TWF0aC5taW4oZSxpKSx0PU1hdGgubWF4KHQscil9ZWxzZSBmb3IobGV0e3NlcmllczpyfW9mIHUpe2lmKF8ocikpY29udGludWU7bGV0IGk9ci52YWx1ZXNbbl07aSE9bnVsbCYmKGU9TWF0aC5taW4oZSxpKSx0PU1hdGgubWF4KHQsaSkpfWZvcihsZXR7c2VyaWVzOnJ9b2YgZCl7aWYoXyhyKSljb250aW51ZTtsZXQgaT1yLnZhbHVlc1tuXTtpIT1udWxsJiYoZT1NYXRoLm1pbihlLGkpLHQ9TWF0aC5tYXgodCxpKSl9fXJldHVybiFpc0Zpbml0ZShlKXx8IWlzRmluaXRlKHQpP3ttaW46MCxtYXg6MX06cD97bWluOmU8MD8tMTAwOjAsbWF4OnQ+MD8xMDA6MH06e21pbjplLG1heDp0fX0pKCk7aWYoIXApe2xldCBlPWU9PntWPXttaW46TWF0aC5taW4oVi5taW4sZSksbWF4Ok1hdGgubWF4KFYubWF4LGUpfX07Zm9yKGxldCB0PTA7dDx1Lmxlbmd0aDt0Kyspe2xldHtzZXJpZXM6bn09dVt0XTtfKG4pfHxnaShuLGB5YCxlPT57aWYobi52YWx1ZXNbZV09PW51bGwpcmV0dXJuIG51bGw7aWYoIWYpcmV0dXJuIG4udmFsdWVzW2VdO2xldCByPTA7Zm9yKGxldCBuPTA7bjw9dDtuKyspcis9aChuLGUpO3JldHVybiByfSxlKX1mb3IobGV0e3Nlcmllczp0fW9mIGQpXyh0KXx8Z2kodCxgeWAsZT0+dC52YWx1ZXNbZV0/P251bGwsZSl9bGV0IEg9bmkodCxWLm1pbixWLm1heCxJL3IscCksVT10LnZhbEF4aXNGb250U2l6ZUhwdD09bnVsbD9NYXRoLm1heCg4LE1hdGgubWluKDExLEkvMjApKTpDLHRlPTA7aWYoIXQudmFsQXhpc0hpZGRlbiYmdC5wbG90QXJlYU1hbnVhbExheW91dCE9bnVsbCYmdC5wbG90QXJlYU1hbnVhbExheW91dC5sYXlvdXRUYXJnZXQhPT1gaW5uZXJgKXtsZXQgbj1lLmZvbnQ7ZS5mb250PWAke1V9cHggJHtscih0LHQudmFsQXhpc0ZvbnRGYWNlLGBtaW5vcmApfWA7Zm9yKGxldCBuIG9mIEgubWFqb3JMaW5lcyl0ZT1NYXRoLm1heCh0ZSxlLm1lYXN1cmVUZXh0KFpyKHQsbixwKSkud2lkdGgpO2UuZm9udD1ufWxldCBXPURlKHt2YWxBeGlzSGlkZGVuOnQudmFsQXhpc0hpZGRlbixjYXRBeGlzSGlkZGVuOnQuY2F0QXhpc0hpZGRlbix2YWxMYWJlbFdpZHRoOnRlLHZhbExhYmVsRm9udFB4OlUsY2F0TGFiZWxGb250UHg6Uyx2YWxMYWJlbEdhcFB4OnQudmFsQXhpc0ZvbnRTaXplSHB0PT1udWxsPzY6RWUoVSksY2F0TGFiZWxHYXBQeDp0LmNhdEF4aXNGb250U2l6ZUhwdD09bnVsbD8zOlRlKFMpLG91dGVyVGV4dE1hcmdpblB4OlBlKnIsdmFsVGl0bGVCYW5kVzpOLGNhdFRpdGxlQmFuZEg6TSxzZWNvbmRhcnlCYW5kVzplZStCfSksbmU9e3Q6UCxyOlQrbyouMDUrZWUrQixiOkYsbDpvKi4xMitOK0V9O0VpKGUsdCxpLGEsbyxzLGErYix5KTtsZXR7cGxvdFJlY3Q6e3B4MDpHLHB5MDpLLHB3OnEscGg6Sn19PWtlKHQsaSxhLG8scyxyLHt0aXRsZUJhbmQ6dixsZWdlbmRTaWRlUmVzZXJ2ZUZyYWM6LjIyLGxlZ2VuZFJlc2VydmU6dyxwYWQ6bmUsaG9ub3JQbG90QXJlYU1hbnVhbExheW91dDohMCxtYW51YWxPdXRlckluc2V0czpXfSk7aWYocTw9MHx8Sjw9MClyZXR1cm47dC5wbG90QXJlYUJnJiYoZS5maWxsU3R5bGU9YCMke3QucGxvdEFyZWFCZ31gLGUuZmlsbFJlY3QoRyxLLHEsSikpO2xldCBZPW5pKHQsVi5taW4sVi5tYXgsSi9yLHApLHJlPW90KHQpLGllPUpyKHQpLGFlPWhpKHQsYyksb2U9YWU/ZT0+RythZS5wb3NpdGlvbnNbZV0qcTpyZT9lPT5HKygoaWU/bC0xLWU6ZSkrLjUpL2wqcTplPT57bGV0IHQ9aWU/bC0xLWU6ZTtyZXR1cm4gRysobD09PTE/cS8yOnQvKGwtMSkqcSl9LHNlPWU9PksrSi1ZLmZyYWMoZSkqSixjZT1MP0wubWFrZVRvWShLLEopOnNlLGxlPWU9Pl8oZSk/Y2U6c2Use2NvbG9yOnVlLHdpZHRoOmRlfT1pdCh0LmNhdEF4aXNMaW5lQ29sb3IsdC5jYXRBeGlzTGluZVdpZHRoRW11LHIpLHtjb2xvcjpmZSx3aWR0aDpwZX09aXQodC52YWxBeGlzTGluZUNvbG9yLHQudmFsQXhpc0xpbmVXaWR0aEVtdSxyKTtpZighdC52YWxBeGlzSGlkZGVuKXtsZXQgbj16cih0LHIpLGk9QnIodCxyKTtpZih0LnZhbEF4aXNNaW5vckdyaWRsaW5lcylmb3IobGV0IHQgb2YgWS5taW5vckxpbmVzKVJyKGUsRyxxLHNlKHQpLCExLGkpO2lmKFlyKHQpKWZvcihsZXQgdCBvZiBZLm1ham9yTGluZXMpUnIoZSxHLHEsc2UodCksdD09PTAsbil9aWYoZyYmTCYmdmkoZSxnLEwsY2UsRyxxLHIpLCF0LmNhdEF4aXNIaWRkZW4mJlVyKHQpKXtsZXQgbj1Xcih0LHIpO2Uuc3Ryb2tlU3R5bGU9bi5jb2xvcixlLmxpbmVXaWR0aD1uLndpZHRoO2xldCBpPW4uZGFzaC5sZW5ndGg+MCYmZS5nZXRMaW5lRGFzaD9lLmdldExpbmVEYXNoKCk6W107bi5kYXNoLmxlbmd0aD4wJiZlLnNldExpbmVEYXNoKG4uZGFzaCk7bGV0IGE9YWU/YWUubWFqb3JUaWNrcy5tYXAoZT0+ZS5mcmFjdGlvbik6S3IodCxsKTtmb3IobGV0IHQgb2YgYSl7bGV0IG49Ryt0KnE7ZS5iZWdpblBhdGgoKSxlLm1vdmVUbyhuLEspLGUubGluZVRvKG4sSytKKSxlLnN0cm9rZSgpfW4uZGFzaC5sZW5ndGg+MCYmZS5zZXRMaW5lRGFzaChpKX1sZXQgbWU9Zj9BcnJheShsKS5maWxsKDApOm51bGwsZ2U9Zj91Lm1hcCgoZSx0KT0+dCk6dS5tYXAoKGUsdCk9PnUubGVuZ3RoLTEtdCk7Zm9yKGxldCB0IG9mIGdlKXtsZXR7c2VyaWVzOm4sY2hhcnRJbmRleDppfT11W3RdLGE9YXIoaSxuKSxvPUsrSixzPWxlKG4pLGM9bi5zbW9vdGg9PT0hMDtpZihlLmJlZ2luUGF0aCgpLGYmJm1lKXtsZXQgbj1bXTtmb3IobGV0IGU9MDtlPGw7ZSsrKW4ucHVzaCh7eDpvZShlKSx5OnNlKGgodCxlKSttZVtlXSl9KTtlLm1vdmVUbyhuWzBdLngsblswXS55KSxkYShlLG4sYyk7Zm9yKGxldCB0PWwtMTt0Pj0wO3QtLSllLmxpbmVUbyhvZSh0KSxzZShtZVt0XSkpO2ZvcihsZXQgZT0wO2U8bDtlKyspbWVbZV0rPWgodCxlKX1lbHNle2xldCB0PVtdO2ZvcihsZXQgZT0wO2U8bDtlKyspdC5wdXNoKHt4Om9lKGUpLHk6cyhuLnZhbHVlc1tlXT8/MCl9KTtlLm1vdmVUbyhvZSgwKSxvKSxlLmxpbmVUbyh0WzBdLngsdFswXS55KSxkYShlLHQsYyksZS5saW5lVG8ob2UobC0xKSxvKX1lLmNsb3NlUGF0aCgpLGUuZmlsbFN0eWxlPWEsZS5maWxsKCksbi5saW5lSGlkZGVuIT09ITAmJihlLnN0cm9rZVN0eWxlPW4ubGluZUNvbG9yP2AjJHtuLmxpbmVDb2xvcn1gOmEsZS5saW5lV2lkdGg9bi5saW5lV2lkdGhFbXU/cnQobi5saW5lV2lkdGhFbXUscik6MS41LGUuc2V0TGluZURhc2goW10pLGUuc3Ryb2tlKCkpfXtsZXQgbj1NYXRoLm1heCgyLDIuNSpyKSxkPShlLHQpPT57aWYoZil7bGV0IG49MDtmb3IobGV0IHI9MDtyPD1lO3IrKyluKz1oKHIsdCk7cmV0dXJuIG59cmV0dXJuIHVbZV0uc2VyaWVzLnZhbHVlc1t0XT8/MH07Zm9yKGxldCBmPTA7Zjx1Lmxlbmd0aDtmKyspe2xldHtzZXJpZXM6aCxjaGFydEluZGV4OnZ9PXVbZl0seT1vcihoLmRhdGFQb2ludE92ZXJyaWRlcyksYj1hcih2LGgpLHg9bGUoaCksUz1lPT5kKGYsZSk7Zm9yKGxldCB0IG9mIGguZXJyQmFycz8/W10pbWEoZSxoLHQsbCxvZSx4LFMsYik7aWYoaC5zaG93TWFya2VyPT09ITB8fHBhKGgpKWZvcihsZXQgdD0wO3Q8bDt0Kyspe2lmKGgudmFsdWVzW3RdPT1udWxsKWNvbnRpbnVlO2xldCBpPXkuZ2V0KHQpLGE9aT8ubWFya2VyU3ltYm9sPz9oLm1hcmtlclN5bWJvbD8/YGNpcmNsZWA7aWYoYT09PWBub25lYCljb250aW51ZTtsZXQgbz1vZSh0KSxzPXgoUyh0KSk7aWYocGEoaCkpe2xldCB0PWk/Lm1hcmtlclNpemU/P2gubWFya2VyU2l6ZT8/NSxuPWk/Lm1hcmtlckZpbGw/P2k/LmNvbG9yPz9oLm1hcmtlckZpbGw/P2IsYz1pPy5tYXJrZXJMaW5lPz9oLm1hcmtlckxpbmU/P251bGwsbD1pPy5tYXJrZXJMaW5lV2lkdGhFbXU/P2gubWFya2VyTGluZVdpZHRoRW11O2lhKGUsbyxzLGEsdCxuLGMscixsPT1udWxsP3ZvaWQgMDpydChsLHIpKX1lbHNlIGUuZmlsbFN0eWxlPWIsZS5iZWdpblBhdGgoKSxlLmFyYyhvLHMsbiwwLE1hdGguUEkqMiksZS5maWxsKCl9Z2EoZSxoLGMsbCxvZSx4LFMsSixyLHQuZGF0ZTE5MDQ/PyExLCEwLGxyKHQsdC5kYXRhTGFiZWxGb250RmFjZSxgbWlub3JgKSx0LmRhdGFMYWJlbFBvc2l0aW9uPz9gY3RyYCx7eDpHLHk6Syx3OnEsaDpKfSx7eDppLHk6YSx3Om8saDpzfSxwJiZtP2U9PihoLnZhbHVlc1tlXT8/MCkvbVtlXTp2b2lkIDAsdm9pZCAwLGU9PmxyKHQsZSxgbWlub3JgKSxfKGgpP2c/LmRpc3BsYXlVbml0czp0LnZhbEF4aXNEaXNwbGF5VW5pdHMpfX1mb3IobGV0e3Nlcmllczp1LGNoYXJ0SW5kZXg6Zn1vZiBkKXtsZXQgZD1vcih1LmRhdGFQb2ludE92ZXJyaWRlcykscD1hcihmLHUpLG09dS5saW5lQ29sb3I/YCMke3UubGluZUNvbG9yfWA6cCxoPWxlKHUpO2lmKHUubGluZUhpZGRlbiE9PSEwKXtlLnN0cm9rZVN0eWxlPW0sZS5saW5lV2lkdGg9dS5saW5lV2lkdGhFbXU/cnQodS5saW5lV2lkdGhFbXUscik6TWF0aC5tYXgoMSwyLjI1KnIpLGUuc2V0TGluZURhc2goW10pLGUuYmVnaW5QYXRoKCk7bGV0IG49W10saT0oKT0+e24ubGVuZ3RoIT09MCYmKGUubW92ZVRvKG5bMF0ueCxuWzBdLnkpLGRhKGUsbix1LnNtb290aD09PSEwKSxuPVtdKX07Zm9yKGxldCBlPTA7ZTxsO2UrKyl7bGV0IHI9dS52YWx1ZXNbZV07cj09bnVsbCYmKCh0LmRpc3BCbGFua3NBcz8/YGdhcGApPT09YGdhcGAmJmkoKSwodC5kaXNwQmxhbmtzQXM/P2BnYXBgKSE9PWB6ZXJvYCl8fG4ucHVzaCh7eDpvZShlKSx5Omgocj8/MCl9KX1pKCksZS5zdHJva2UoKX1sZXQgdj1lPT51LnZhbHVlc1tlXT8/MDtmb3IobGV0IHQgb2YgdS5lcnJCYXJzPz9bXSltYShlLHUsdCxsLG9lLGgsdixtKTtpZih1LnNob3dNYXJrZXI9PT0hMHx8cGEodSkpZm9yKGxldCB0PTA7dDxsO3QrKyl7bGV0IG49dS52YWx1ZXNbdF07aWYobj09bnVsbCljb250aW51ZTtsZXQgaT1kLmdldCh0KSxhPWk/Lm1hcmtlclN5bWJvbD8/dS5tYXJrZXJTeW1ib2w/P2BjaXJjbGVgO2EhPT1gbm9uZWAmJmlhKGUsb2UodCksaChuKSxhLGk/Lm1hcmtlclNpemU/P3UubWFya2VyU2l6ZT8/NSxpPy5tYXJrZXJGaWxsPz9pPy5jb2xvcj8/dS5tYXJrZXJGaWxsPz9tLGk/Lm1hcmtlckxpbmU/P3UubWFya2VyTGluZT8/bnVsbCxyLChpPy5tYXJrZXJMaW5lV2lkdGhFbXU/P3UubWFya2VyTGluZVdpZHRoRW11KT09bnVsbD92b2lkIDA6cnQoaT8ubWFya2VyTGluZVdpZHRoRW11Pz91Lm1hcmtlckxpbmVXaWR0aEVtdSxyKSl9Z2EoZSx1LGMsbCxvZSxoLHYsSixyLHQuZGF0ZTE5MDQ/PyExLCExLGxyKHQsdC5kYXRhTGFiZWxGb250RmFjZSxgbWlub3JgKSx0LmRhdGFMYWJlbFBvc2l0aW9uPz9gcmAse3g6Ryx5OkssdzpxLGg6Sn0se3g6aSx5OmEsdzpvLGg6c30sdm9pZCAwLHZvaWQgMCxlPT5scih0LGUsYG1pbm9yYCksXyh1KT9nPy5kaXNwbGF5VW5pdHM6dC52YWxBeGlzRGlzcGxheVVuaXRzKSxvaShlLHUsbSxvZSxoLHIsdm9pZCAwLHtjaGFydDp0LGNoYXJ0UmVjdDpuLHBsb3RSZWN0Ont4OkcseTpLLHc6cSxoOkp9fSl9aWYoIXQudmFsQXhpc0hpZGRlbil7bGV0IG49dC52YWxBeGlzRm9udFNpemVIcHQ9PW51bGw/TWF0aC5tYXgoOCxNYXRoLm1pbigxMSxKLzIwKSk6QztlLmZvbnQ9YCR7bn1weCAke2xyKHQsdC52YWxBeGlzRm9udEZhY2UsYG1pbm9yYCl9YCxlLnRleHRCYXNlbGluZT1gbWlkZGxlYDtmb3IobGV0IGkgb2YgWS5tYWpvckxpbmVzKXtsZXQgYT1zZShpKTtGcihlLHQudmFsQXhpc01ham9yVGlja01hcmssYHZhbGAsRyxhLGZlLHBlLCExLHQudmFsQXhpc0xpbmVIaWRkZW4sYG1ham9yYCxyKSxlLmZpbGxTdHlsZT10LnZhbEF4aXNGb250Q29sb3I/YCMke3QudmFsQXhpc0ZvbnRDb2xvcn1gOmAjNTU1YCxlLnRleHRBbGlnbj1gcmlnaHRgO2xldCBvPXQudmFsQXhpc0ZvbnRTaXplSHB0PT1udWxsPzY6RWUobik7ZS5maWxsVGV4dChacih0LGkscCksRy1vLGEpfWlmKHQudmFsQXhpc01pbm9yVGlja01hcmsmJnQudmFsQXhpc01pbm9yVGlja01hcmshPT1gbm9uZWApZm9yKGxldCBuIG9mIFkubWlub3JUaWNrcylGcihlLHQudmFsQXhpc01pbm9yVGlja01hcmssYHZhbGAsRyxzZShuKSxmZSxwZSwhMSx0LnZhbEF4aXNMaW5lSGlkZGVuLGBtaW5vcmAscil9aWYoIXQuY2F0QXhpc0hpZGRlbiYmIXQuY2F0QXhpc0xpbmVIaWRkZW4mJihlLnN0cm9rZVN0eWxlPXVlLGUubGluZVdpZHRoPWRlLGUuYmVnaW5QYXRoKCksZS5tb3ZlVG8oRyxLK0opLGUubGluZVRvKEcrcSxLK0opLGUuc3Ryb2tlKCkpLCF0LnZhbEF4aXNIaWRkZW4mJiF0LnZhbEF4aXNMaW5lSGlkZGVuJiZ0LnZhbEF4aXNMaW5lQ29sb3IhPW51bGwmJihlLnN0cm9rZVN0eWxlPWZlLGUubGluZVdpZHRoPXBlLGUuYmVnaW5QYXRoKCksZS5tb3ZlVG8oRyxLKSxlLmxpbmVUbyhHLEsrSiksZS5zdHJva2UoKSksIXQuY2F0QXhpc0hpZGRlbiYmdC5jYXRBeGlzTWFqb3JUaWNrTWFyayYmdC5jYXRBeGlzTWFqb3JUaWNrTWFyayE9PWBub25lYCl7bGV0IG49TWF0aC5tYXgoMSxNYXRoLmZsb29yKHQuY2F0QXhpc1RpY2tNYXJrU2tpcD8/MSkpO2lmKGFlKWZvcihsZXQgbiBvZiBhZS5tYWpvclRpY2tzKUZyKGUsdC5jYXRBeGlzTWFqb3JUaWNrTWFyayxgY2F0YCxLK0osRytuLmZyYWN0aW9uKnEsdWUsZGUsITEsdC5jYXRBeGlzTGluZUhpZGRlbixgbWFqb3JgLHIpO2Vsc2UgaWYocmUpZm9yKGxldCBpPTA7aTw9bDtpKz1uKUZyKGUsdC5jYXRBeGlzTWFqb3JUaWNrTWFyayxgY2F0YCxLK0osRytpL2wqcSx1ZSxkZSwhMSx0LmNhdEF4aXNMaW5lSGlkZGVuLGBtYWpvcmAscik7ZWxzZSBmb3IobGV0IGk9MDtpPGw7aSs9bilGcihlLHQuY2F0QXhpc01ham9yVGlja01hcmssYGNhdGAsSytKLG9lKGkpLHVlLGRlLCExLHQuY2F0QXhpc0xpbmVIaWRkZW4sYG1ham9yYCxyKX1pZighdC5jYXRBeGlzSGlkZGVuJiZ0LmNhdEF4aXNNaW5vclRpY2tNYXJrJiZ0LmNhdEF4aXNNaW5vclRpY2tNYXJrIT09YG5vbmVgJiZhZSlmb3IobGV0IG4gb2YgYWUubWlub3JUaWNrcylGcihlLHQuY2F0QXhpc01pbm9yVGlja01hcmssYGNhdGAsSytKLEcrbi5mcmFjdGlvbipxLHVlLGRlLCExLHQuY2F0QXhpc0xpbmVIaWRkZW4sYG1pbm9yYCxyKTtpZighdC5jYXRBeGlzSGlkZGVuKXtsZXQgbj10LmNhdEF4aXNGb250U2l6ZUhwdD09bnVsbD9NYXRoLm1heCg4LE1hdGgubWluKDExLHEvbCouOCkpOlM7ZS5maWxsU3R5bGU9dC5jYXRBeGlzRm9udENvbG9yP2AjJHt0LmNhdEF4aXNGb250Q29sb3J9YDpgIzU1NWAsZS50ZXh0QWxpZ249YGNlbnRlcmAsZS50ZXh0QmFzZWxpbmU9YHRvcGAsZS5mb250PWAke259cHggJHtscih0LHQuY2F0QXhpc0ZvbnRGYWNlLGBtaW5vcmApfWA7bGV0IHI9TWF0aC5tYXgoMSxNYXRoLmZsb29yKHQuY2F0QXhpc1RpY2tMYWJlbFNraXA/PzEpKSxpPWFlP2FlLm1ham9yVGlja3MubWFwKGU9Pih7bGFiZWw6YnQoU3RyaW5nKGUuc2VyaWFsKSx0LmNhdEF4aXNGb3JtYXRDb2RlLHQuZGF0ZTE5MDQpLHg6RytlLmZyYWN0aW9uKnF9KSk6QXJyYXkuZnJvbSh7bGVuZ3RoOk1hdGguY2VpbChsL3IpfSwoZSxuKT0+e2xldCBpPW4qcjtyZXR1cm57bGFiZWw6YnQoKGNbaV0/P2BgKS50b1N0cmluZygpLHQuY2F0QXhpc0Zvcm1hdENvZGUsdC5kYXRlMTkwNCkseDpvZShpKX19KTtmb3IobGV0IHIgb2YgaSl7bGV0IGk9ci5sYWJlbDtpZighaSljb250aW51ZTtsZXQgYT10LmNhdEF4aXNGb250U2l6ZUhwdD09bnVsbD8zOlRlKG4pO2UuZmlsbFRleHQoaSxyLngsSytKK2EpfX1pZihnJiZMKXtsZXQgaT10LnZhbEF4aXNGb250Q29sb3I/YCMke3QudmFsQXhpc0ZvbnRDb2xvcn1gOmAjNTU1YDt5aShlLHQsZyxMLGNlLG4sRyxLLHEsSixyLHosZWUsaSx0LmRhdGUxOTA0KX1QcihlLHQsdyxpLGEsbyxzLEcsSyxxLEoseCsyLHIpLGdyKGUsdCxpLGEsbyxzLEcsSyxxLEosRSxPLEEsail9Y29uc3Qgemk9Ljg4O2Z1bmN0aW9uIEJpKGUsdCl7bGV0IG49ZS5vZlBpZSxyPXQubWFwKChlLHQpPT4oe3ZhbHVlOmUsc291cmNlSW5kZXg6dH0pKS5maWx0ZXIoZT0+TnVtYmVyLmlzRmluaXRlKGUudmFsdWUpJiZlLnZhbHVlPjApLGk9bmV3IFNldDtpZihyLmxlbmd0aDwyKXJldHVybiBpO2xldCBhPW4/LnNwbGl0VHlwZT8/YGF1dG9gLG89bj8uc3BsaXRQb3M7aWYoYT09PWBjdXN0YClmb3IobGV0IGUgb2Ygbj8uY3VzdG9tU3BsaXRJbmRpY2VzPz9bXSlyLnNvbWUodD0+dC5zb3VyY2VJbmRleD09PWUpJiZpLmFkZChlKTtlbHNlIGlmKGE9PT1gdmFsYCYmbyE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKG8pKWZvcihsZXQgZSBvZiByKWUudmFsdWU8PW8mJmkuYWRkKGUuc291cmNlSW5kZXgpO2Vsc2UgaWYoYT09PWBwZXJjZW50YCYmbyE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKG8pKXtsZXQgZT1yLnJlZHVjZSgoZSx0KT0+ZSt0LnZhbHVlLDApO2ZvcihsZXQgdCBvZiByKWU+MCYmdC52YWx1ZS9lKjEwMDw9byYmaS5hZGQodC5zb3VyY2VJbmRleCl9ZWxzZXtsZXQgZT1hPT09YHBvc2AmJm8hPW51bGwmJk51bWJlci5pc0Zpbml0ZShvKT9NYXRoLm1heCgwLE1hdGguZmxvb3IobykpOjM7Zm9yKGxldCB0IG9mIHIuc2xpY2UoLWUpKWkuYWRkKHQuc291cmNlSW5kZXgpfXJldHVybiBpLnNpemU+PXIubGVuZ3RoJiZpLmRlbGV0ZShyWzBdLnNvdXJjZUluZGV4KSxpfWZ1bmN0aW9uIFZpKGUsdCxuLHIpe2xldCBpPXQuc2VyaWVzWzBdO2lmKCFpKXJldHVybjtsZXQgYT1pLnZhbHVlcy5tYXAoZT0+ZT09bnVsbD8wOk1hdGguYWJzKGUpKSxvPUJpKHQsYSk7aWYoby5zaXplPT09MCl7SGkoZSx7Li4udCxjaGFydFR5cGU6YHBpZWB9LG4sITEscik7cmV0dXJufWxldCBzPVtdLGM9W107Zm9yKGxldCBlPTA7ZTxhLmxlbmd0aDtlKyspe2xldCB0PWFbZV07ISh0PjApfHwhTnVtYmVyLmlzRmluaXRlKHQpfHwoby5oYXMoZSk/YzpzKS5wdXNoKHtzb3VyY2VJbmRleDplLHZhbHVlOnR9KX1pZihzLmxlbmd0aD09PTB8fGMubGVuZ3RoPT09MClyZXR1cm47bGV0IGw9ey4uLnQsY2hhcnRUeXBlOmBwaWVgfSx1PWpyKGUsbCxuLncsbi5oLC4yOCxyKSxkPWtlKHQsbi54LG4ueSxuLncsbi5oLHIse3RpdGxlVG9wUGFkRnJhYzouMDM1LHRpdGxlQm90dG9tUGFkRnJhYzouMDM1LGxlZ2VuZFNpZGVSZXNlcnZlRnJhYzouMjgsbGVnZW5kUmVzZXJ2ZTp1LHJhZGlhbEdhcEZyYWM6LjAyLGhvbm9yUGxvdEFyZWFNYW51YWxMYXlvdXQ6ITB9KTtFaShlLHQsbi54LG4ueSxuLncsbi5oLG4ueStkLnRpdGxlLnRvcFBhZCxkLnRpdGxlLmZvbnRQeCk7bGV0e3B4MDpmLHB5MDpwLHB3Om0scGg6aH09ZC5wbG90UmVjdDtpZighKG0+MCl8fCEoaD4wKSlyZXR1cm47bGV0IGc9dC5vZlBpZSxfPU1hdGgubWF4KC4wNSxNYXRoLm1pbigyLChnPy5zZWNvbmRQaWVTaXplUGVyY2VudD8/NzUpLzEwMCkpLHY9TWF0aC5tYXgoMCxnPy5nYXBXaWR0aFBlcmNlbnQ/PzE1MCkvMTAwLHk9TWF0aC5taW4oaCouNDQsbSouOS8oMisyKl8rdikpLGI9eSpfO2lmKCEoeT4wKXx8IShiPjApKXJldHVybjtsZXQgeD1mKyhtLSgyKnkrdip5KzIqYikpLzIsUz14K3ksQz14KzIqeSt2KnkrYix3PXAraC8yLFQ9Yy5yZWR1Y2UoKGUsdCk9PmUrdC52YWx1ZSwwKSxFPVsuLi5zLHtzb3VyY2VJbmRleDpjWzBdLnNvdXJjZUluZGV4LHZhbHVlOlR9XSxEPShuLHIsYSk9PntsZXQgbz1uLnJlZHVjZSgoZSx0KT0+ZSt0LnZhbHVlLDApLHM9LU1hdGguUEkvMixjPXMsbD1zO2ZvcihsZXQgdT0wO3U8bi5sZW5ndGg7dSsrKXtsZXQgZD1uW3VdLGY9bz4wP2QudmFsdWUvbypNYXRoLlBJKjI6MDtlLmJlZ2luUGF0aCgpLGUubW92ZVRvKHIsdyksZS5hcmMocix3LGEscyxzK2YpLGUuY2xvc2VQYXRoKCksZS5maWxsU3R5bGU9c3IoZC5zb3VyY2VJbmRleCxpLHQudmFyeUNvbG9ycyE9PSExKSxlLmZpbGwoKSxlLnN0cm9rZVN0eWxlPWAjZmZmYCxlLmxpbmVXaWR0aD0xLGUuc3Ryb2tlKCksdT09PW4ubGVuZ3RoLTEmJihjPXMsbD1zK2YpLHMrPWZ9cmV0dXJue2FnZ3JlZ2F0ZVN0YXJ0OmMsYWdncmVnYXRlRW5kOmx9fSxPPUQoRSxTLHkpLGs9dy1iLEE9dytiO2lmKChnPy50eXBlPz9gcGllYCk9PT1gYmFyYCl7bGV0IG49dy1iLHI9Yjtmb3IobGV0IGEgb2YgYyl7bGV0IG89VD4wPzIqYiphLnZhbHVlL1Q6MDtlLmZpbGxTdHlsZT1zcihhLnNvdXJjZUluZGV4LGksdC52YXJ5Q29sb3JzIT09ITEpLGUuZmlsbFJlY3QoQy1yLzIsbixyLG8pLGUuc3Ryb2tlU3R5bGU9YCNmZmZgLGUubGluZVdpZHRoPTEsZS5zdHJva2VSZWN0KEMtci8yLG4scixvKSxuKz1vfWs9dy1iLEE9dytifWVsc2UgRChjLEMsYik7aWYoZz8uc2VyaWVzTGluZXM/PyEwKXtlLnN0cm9rZVN0eWxlPWAjODA4MDgwYCxlLmxpbmVXaWR0aD1NYXRoLm1heCgxLC43NSpyKSxlLnNldExpbmVEYXNoKFtdKTtsZXQgdD17eDpTK01hdGguY29zKE8uYWdncmVnYXRlU3RhcnQpKnkseTp3K01hdGguc2luKE8uYWdncmVnYXRlU3RhcnQpKnl9LG49e3g6UytNYXRoLmNvcyhPLmFnZ3JlZ2F0ZUVuZCkqeSx5OncrTWF0aC5zaW4oTy5hZ2dyZWdhdGVFbmQpKnl9O2UuYmVnaW5QYXRoKCksZS5tb3ZlVG8odC54LHQueSksZS5saW5lVG8oQy1iLGspLGUuc3Ryb2tlKCksZS5iZWdpblBhdGgoKSxlLm1vdmVUbyhuLngsbi55KSxlLmxpbmVUbyhDLWIsQSksZS5zdHJva2UoKX11JiZQcihlLGwsdSxuLngsbi55LG4udyxuLmgsZixwLG0saCxkLnRpdGxlLmJhbmRIKzIscil9ZnVuY3Rpb24gSGkoZSx0LG4scixpKXtsZXR7eDphLHk6byx3OnMsaDpjfT1uLGw9dC5zZXJpZXNbMF07aWYoIWwpcmV0dXJuO2xldCB1PWwuY2F0ZWdvcmllcyYmbC5jYXRlZ29yaWVzLmxlbmd0aD4wP2wuY2F0ZWdvcmllczp0LmNhdGVnb3JpZXMsZD1sLnZhbHVlcy5tYXAoZT0+TWF0aC5hYnMoZT8/MCkpLGY9ZC5yZWR1Y2UoKGUsdCk9PmUrdCwwKTtpZihmPT09MClyZXR1cm47bGV0IHA9ey4uLnQsc2VyaWVzOlt7Li4ubCxjYXRlZ29yaWVzOnV9XX0sbT1qcihlLHAscyxjLC4yOCxpKSxoPWtlKHQsYSxvLHMsYyxpLHt0aXRsZVRvcFBhZEZyYWM6LjAzNSx0aXRsZUJvdHRvbVBhZEZyYWM6LjAzNSxsZWdlbmRTaWRlUmVzZXJ2ZUZyYWM6LjI4LGxlZ2VuZFJlc2VydmU6bSxyYWRpYWxHYXBGcmFjOi4wMixob25vclBsb3RBcmVhTWFudWFsTGF5b3V0OiEwfSksZz1oLnRpdGxlLmZvbnRQeCxfPWgudGl0bGUuYmFuZEg7RWkoZSx0LGEsbyxzLGMsbytoLnRpdGxlLnRvcFBhZCxnKTtsZXR7cHgwOnYscHkwOnkscHc6YixwaDp4fT1oLnBsb3RSZWN0LFM9aC5jZW50ZXIuY3gsQz1oLmNlbnRlci5jeSx3PU1hdGgubWluKGIseCkqLjQyLFQ9LU1hdGguUEkvMisodC5maXJzdFNsaWNlQW5nbGU/PzApKk1hdGguUEkvMTgwLEU9cj9NYXRoLm1heCgxLE1hdGgubWluKDkwLHQuaG9sZVNpemU/PzUwKSk6MCxEPXI/dC5zZXJpZXM6W2xdLE89bmV3IE1hcChELm1hcChlPT5bZSxvcihlLmRhdGFQb2ludE92ZXJyaWRlcyldKSksaz0ody1FLzEwMCp3KS9ELmxlbmd0aCxBPShlLHQpPT57bGV0IG49Ty5nZXQoZSk/LmdldCh0KT8uZXhwbG9zaW9uPz8wO3JldHVybiBuPjA/bi8xMDAqdzowfSxqPWwuc2VyaWVzRGF0YUxhYmVscz8/e3Nob3dWYWw6ITEsc2hvd0NhdE5hbWU6ITEsc2hvd1Nlck5hbWU6ITEsc2hvd1BlcmNlbnQ6ITF9LE09bC5zZXJpZXNEYXRhTGFiZWxzIT1udWxsfHwobC5kYXRhTGFiZWxPdmVycmlkZXM/Lmxlbmd0aD8/MCk+MCxOPXQuc2hvd0RhdGFMYWJlbHMmJiFNLFA9bHIodCxqLmZvbnRGYWNlPz90LmRhdGFMYWJlbEZvbnRGYWNlLGBtaW5vcmApO2ZvcihsZXQgbj0wO248RC5sZW5ndGg7bisrKXtsZXQgYT1EW25dLG89YS52YWx1ZXMubWFwKGU9Pk1hdGguYWJzKGU/PzApKSxzPW8ucmVkdWNlKChlLHQpPT5lK3QsMCk7aWYocz09PTApY29udGludWU7bGV0IGM9dy1uKmssbD1jLWssdT1UO2ZvcihsZXQgZD0wO2Q8by5sZW5ndGg7ZCsrKXtsZXQgZj1vW2RdL3MqTWF0aC5QSSoyLHA9c3IoZCxhLHQudmFyeUNvbG9ycyE9PSExKSxtPXUrZi8yLGg9QShhLGQpLGc9aD4wP01hdGguY29zKG0pKmg6MCxfPWg+MD9NYXRoLnNpbihtKSpoOjA7ZS5iZWdpblBhdGgoKSxsPi4wMT8oZS5hcmMoUytnLEMrXyxjLHUsdStmKSxlLmFyYyhTK2csQytfLGwsdStmLHUsITApKTooZS5tb3ZlVG8oUytnLEMrXyksZS5hcmMoUytnLEMrXyxjLHUsdStmKSksZS5jbG9zZVBhdGgoKSxlLmZpbGxTdHlsZT1wLGUuZmlsbCgpO2xldCB2PU8uZ2V0KGEpPy5nZXQoZCkseT12Py5saW5lSGlkZGVuPz9hLmxpbmVIaWRkZW4sYj12Py5saW5lQ29sb3I/P2EubGluZUNvbG9yO2lmKHkhPT0hMCYmYil7bGV0IHQ9dj8ubGluZVdpZHRoRW11Pz9hLmxpbmVXaWR0aEVtdSxuPXQ9PW51bGw/TWF0aC5tYXgoLjUsaSouNzUpOnJ0KHQsaSk7ZS5zYXZlKCksZS5zdHJva2VTdHlsZT1gIyR7Yn1gLGUubGluZVdpZHRoPW4sZS5zZXRMaW5lRGFzaChmYSh2Py5saW5lRGFzaD8/YS5jaGFydGV4U3R5bGU/LmxpbmVEYXNoPz92b2lkIDAsbikpLGUubGluZUNhcD1hLmNoYXJ0ZXhTdHlsZT8ubGluZUNhcD09PWBybmRgP2Byb3VuZGA6YS5jaGFydGV4U3R5bGU/LmxpbmVDYXA9PT1gc3FgP2BzcXVhcmVgOmBidXR0YCxlLmxpbmVKb2luPWEuY2hhcnRleFN0eWxlPy5saW5lSm9pbj09PWByb3VuZGB8fGEuY2hhcnRleFN0eWxlPy5saW5lSm9pbj09PWBiZXZlbGA/YS5jaGFydGV4U3R5bGUubGluZUpvaW46YG1pdGVyYCxlLnN0cm9rZSgpLGUucmVzdG9yZSgpfWlmKE4mJm49PT0wJiZmPi4xNSl7bGV0IHQ9dyoocj8uNzU6LjYpLG49UytnK01hdGguY29zKG0pKnQsaT1DK18rTWF0aC5zaW4obSkqdCxhPU1hdGgucm91bmQob1tkXS9zKjEwMCk7ZS5mb250PWBib2xkICR7TWF0aC5tYXgoOCx3Ki4xKX1weCAke1B9YCxlLmZpbGxTdHlsZT1gI2ZmZmAsZS50ZXh0QWxpZ249YGNlbnRlcmAsZS50ZXh0QmFzZWxpbmU9YG1pZGRsZWAsZS5maWxsVGV4dChgJHthfSVgLG4saSl9dSs9Zn19TSYmVWkoZSx0LGosbCx1LGQsZixTLEMsdyxyP3ctazowLFQsUCxpLHYseSxiLHgsYSxvLHMsYyksbSYmUHIoZSxwLG0sYSxvLHMsYyx2LHksYix4LF8rMixpKX1mdW5jdGlvbiBVaShlLHQsbixyLGksYSxvLHMsYyxsLHUsZCxmLHAsbSxoLGcsXyx2LHksYix4KXtsZXQgUz1vcihyLmRhdGFMYWJlbE92ZXJyaWRlcz8/W10pLEM9bmV3IFNldDtmb3IobGV0IGU9MDtlPGEubGVuZ3RoO2UrKykoUy5nZXQoZSk/LmxhYmVsQm94fHxuLmxhYmVsQm94KSYmQy5hZGQoZSk7Qy5zaXplPjAmJkppKGUsdCxuLHIsaSxhLG8scyxjLGwsdSxkLGYscCxtLGcsaCxfLHYseSxiLHgsQyxTKTtsZXQgdz1bXSxUPWQ7Zm9yKGxldCBkPTA7ZDxhLmxlbmd0aDtkKyspe2xldCBFPWFbZF0vbypNYXRoLlBJKjIsRD1UK0UvMjtpZihUKz1FLEMuaGFzKGQpKWNvbnRpbnVlO2xldCBPPVMuZ2V0KGQpO2lmKE8/LmRlbGV0ZWQpY29udGludWU7bGV0IGs9Tz8uc2hvd0NhdE5hbWU/P24uc2hvd0NhdE5hbWUsQT1PPy5zaG93U2VyTmFtZT8/bi5zaG93U2VyTmFtZSxqPU8/LnNob3dWYWw/P24uc2hvd1ZhbCxNPU8/LnNob3dQZXJjZW50Pz9uLnNob3dQZXJjZW50LE49YW4oe2N1c3RvbVRleHQ6Tz8udGV4dCxzaG93Q2F0ZWdvcnk6ayxzaG93U2VyaWVzOkEsc2hvd1ZhbHVlOmosc2hvd1BlcmNlbnQ6TSxjYXRlZ29yeTooaVtkXT8/YGApLnRvU3RyaW5nKCksc2VyaWVzTmFtZTpyLm5hbWUsc291cmNlVmFsdWU6YVtkXSxwZXJjZW50UmF0aW86YVtkXS9vLGZvcm1hdENvZGU6Tz8uZm9ybWF0Q29kZT8/bi5mb3JtYXRDb2RlPz9yLnZhbEZvcm1hdENvZGU/P251bGwscGVyY2VudEZvcm1hdENvZGU6Tz8uZm9ybWF0Q29kZT8/bi5mb3JtYXRDb2RlPz9gMCVgLGRhdGUxOTA0OnQuZGF0ZTE5MDQ/PyExLHNlcGFyYXRvcjpPPy5zZXBhcmF0b3I/P24uc2VwYXJhdG9yfSk7aWYoIU4pY29udGludWU7bGV0IFA9KE8/LnBvc2l0aW9uPz9uLnBvc2l0aW9uPz9gYmVzdEZpdGApPT09YG91dEVuZGAsRj1oZShPPy5mb250U2l6ZUhwdD8/bi5mb250U2l6ZUhwdCxwKT8/TWF0aC5tYXgoOCxsKi4xKSxJPU8/LmZvbnRCb2xkPz9uLmZvbnRCb2xkLEw9Tz8uZm9udENvbG9yPz9uLmZvbnRDb2xvcixSPU8/LmZvbnRGYWNlPz9uLmZvbnRGYWNlP2xyKHQsTz8uZm9udEZhY2U/P24uZm9udEZhY2UsYG1pbm9yYCk6Zix6PWNhKHQsTyxwLFIsST8/ITEpLGVlPXU+LjAxPyh1K2wpLzI6bCp6aTtpZihPPy5tYW51YWxMYXlvdXQpe2UuZm9udD1gJHtJP2Bib2xkIGA6YGB9JHtGfXB4ICR7Un1gLGxhKGUsTix7a2luZDpgcG9pbnRgLHg6cytNYXRoLmNvcyhEKSplZSx5OmMrTWF0aC5zaW4oRCkqZWUscG9zaXRpb246YGN0cmB9LHt4Om0seTpoLHc6ZyxoOl99LEYsTD9gIyR7TH1gOmAjZmZmYCxPLm1hbnVhbExheW91dCx7eDp2LHksdzpiLGg6eH0seik7Y29udGludWV9aWYoUCl7ZS5mb250PWAke0k/YGJvbGQgYDpgYH0ke0Z9cHggJHtSfWA7bGV0IHQ9ej9RdChlLHosRixMP2AjJHtMfWA6YCMzMzNgKTpudWxsLG49RioxLjE1LHI9dD9bXTpobihOLE1hdGgubWF4KDAsYi1GKSxNYXRoLm1heCgwLHgtRiksbix0PT5lLm1lYXN1cmVUZXh0KHQpLndpZHRoKTtpZih6JiYhdHx8IXQmJnIubGVuZ3RoPT09MCljb250aW51ZTtsZXQgaT10Py53aWR0aD8/ci5yZWR1Y2UoKHQsbik9Pk1hdGgubWF4KHQsZS5tZWFzdXJlVGV4dChuKS53aWR0aCksMCksYT10Py5oZWlnaHQ/P0YrTWF0aC5tYXgoMCxyLmxlbmd0aC0xKSpuO3cucHVzaChLaShyLEQscyxjLGwsTWF0aC5taW4oaSxNYXRoLm1heCgwLGItRikpLE1hdGgubWluKGEsTWF0aC5tYXgoMCx4LUYpKSxuLEYsST8/ITEsTD9gIyR7TH1gOmAjMzMzYCxSLHQ/P3ZvaWQgMCkpO2NvbnRpbnVlfWxldCBCPWVlLFY9cytNYXRoLmNvcyhEKSpCLEg9YytNYXRoLnNpbihEKSpCO2UuZm9udD1gJHtJP2Bib2xkIGA6YGB9JHtGfXB4ICR7Un1gO2xldCBVPTIqQipNYXRoLnNpbihNYXRoLm1pbihNYXRoLlBJLE1hdGguYWJzKEUpKS8yKS1GLHRlPXU+LjAxP2wtdS1GOmwtRjtpZighKFU+MCl8fCEodGU+MCkpY29udGludWU7bGV0IFc9T2koe3g6Vi1VLzIseTpILXRlLzIsdzpVLGg6dGV9LHt4Om0seTpoLHc6ZyxoOl99KTtXJiZsYShlLE4se2tpbmQ6YHBvaW50YCx4OlYseTpILHBvc2l0aW9uOmBjdHJgfSxXLEYsTD9gIyR7TH1gOmAjZmZmYCx2b2lkIDAse3g6dix5LHc6YixoOnh9LHopfXFpKGUsbix3LHMsYyxsLHAsdix5LGIseCl9ZnVuY3Rpb24gV2koZSx0LG4scixpLGEpe2xldCBvPU1hdGgubWF4KE1hdGguYWJzKG4tZSktaSwwKSxzPU1hdGgubWF4KE1hdGguYWJzKHItdCktYSwwKTtyZXR1cm4gTWF0aC5oeXBvdChvLHMpfWZ1bmN0aW9uIEdpKGUsdCxuLHIsaSl7bGV0IGE9TWF0aC5jb3MoZSksbz1NYXRoLnNpbihlKSxzPXQraSxjPTAsbD1zK01hdGguaHlwb3QobixyKTtmb3IobGV0IGU9MDtlPDMyO2UrKyl7bGV0IGU9KGMrbCkvMjtXaSgwLDAsYSplLG8qZSxuLHIpPj1zP2w9ZTpjPWV9cmV0dXJuIGx9ZnVuY3Rpb24gS2koZSx0LG4scixpLGEsbyxzLGMsbCx1LGQsZil7bGV0IHA9YyouNSxtPUdpKHQsaSxhLzIsby8yLHApLGg9bitNYXRoLmNvcyh0KSptLGc9citNYXRoLnNpbih0KSptO3JldHVybntsaW5lczplLHJpY2g6ZixyaW1YOm4rTWF0aC5jb3ModCkqaSxyaW1ZOnIrTWF0aC5zaW4odCkqaSxib3hXOmEsYm94SDpvLGxpbmVIZWlnaHQ6cyxmb250UHg6Yyxib2xkOmwsZm9udENvbG9yOnUsZm9udDpkLGN4Qm94OmgsY3lCb3g6Zyxpbml0aWFsQ3g6aCxpbml0aWFsQ3k6ZyxsZWZ0U2lkZTpNYXRoLmNvcyh0KTwwfX1mdW5jdGlvbiBxaShlLHQsbixyLGksYSxvLHMsYyxsLHUpe2lmKG4ubGVuZ3RoPT09MClyZXR1cm47bGV0IGQ9YyxmPWMrdSxwPWU9PntlLnNvcnQoKGUsdCk9PmUuY3lCb3gtdC5jeUJveCk7Zm9yKGxldCB0PTE7dDxlLmxlbmd0aDt0Kyspe2xldCBuPWVbdC0xXSxyPWVbdF0saT1uLmN5Qm94KyhuLmJveEgrci5ib3hIKS8yO3IuY3lCb3g8aSYmKHIuY3lCb3g9aSl9aWYoZS5sZW5ndGg9PT0wKXJldHVybjtsZXQgdD1lW2UubGVuZ3RoLTFdLmN5Qm94K2VbZS5sZW5ndGgtMV0uYm94SC8yLWY7aWYodD4wKWZvcihsZXQgbiBvZiBlKW4uY3lCb3gtPXQ7bGV0IG49ZC0oZVswXS5jeUJveC1lWzBdLmJveEgvMik7aWYobj4wKWZvcihsZXQgdCBvZiBlKXQuY3lCb3grPW59O3Aobi5maWx0ZXIoZT0+IWUubGVmdFNpZGUpKSxwKG4uZmlsdGVyKGU9PmUubGVmdFNpZGUpKTtmb3IobGV0IGUgb2Ygbil7bGV0IHQ9YStlLmZvbnRQeCouNSxuPWUuYm94Vy8yLG89ZS5ib3hILzIsYz1NYXRoLm1heChNYXRoLmFicyhlLmN5Qm94LWkpLW8sMCk7aWYoYzx0KXtsZXQgaT1NYXRoLnNxcnQoTWF0aC5tYXgoMCx0KnQtYypjKSk7ZS5jeEJveD1lLmxlZnRTaWRlP01hdGgubWluKGUuY3hCb3gsci1pLW4pOk1hdGgubWF4KGUuY3hCb3gscitpK24pfWxldCB1PXVhKGUuY3hCb3gscytuLHMrbC1uKTtXaShyLGksdSxlLmN5Qm94LG4sbyk+PXQmJihlLmN4Qm94PXUpfWUuc2F2ZSgpLGUuYmVnaW5QYXRoKCksZS5yZWN0KHMsYyxsLHUpLGUuY2xpcCgpO2xldCBtPXQubGVhZGVyTGluZUNvbG9yP2AjJHt0LmxlYWRlckxpbmVDb2xvcn1gOmAjYTZhNmE2YCxoPXQubGVhZGVyTGluZVdpZHRoRW11P01hdGgubWF4KC41LHQubGVhZGVyTGluZVdpZHRoRW11L2V0Km8pOjE7Zm9yKGxldCByIG9mIG4pe2xldCBuPU1hdGguYWJzKHIuY3hCb3gtci5pbml0aWFsQ3gpPi41fHxNYXRoLmFicyhyLmN5Qm94LXIuaW5pdGlhbEN5KT4uNTtpZighdC5zaG93TGVhZGVyTGluZXN8fCFuKWNvbnRpbnVlO2xldCBpPXVhKHIucmltWCxyLmN4Qm94LXIuYm94Vy8yLHIuY3hCb3grci5ib3hXLzIpLGE9dWEoci5yaW1ZLHIuY3lCb3gtci5ib3hILzIsci5jeUJveCtyLmJveEgvMik7ZS5iZWdpblBhdGgoKSxlLm1vdmVUbyhyLnJpbVgsci5yaW1ZKSxlLmxpbmVUbyhpLGEpLGUuc3Ryb2tlU3R5bGU9bSxlLmxpbmVXaWR0aD1oLGUuc3Ryb2tlKCl9Zm9yKGxldCB0IG9mIG4pe2lmKHQucmljaCl7JHQoZSx0LnJpY2gsdC5jeEJveCx0LmN5Qm94KTtjb250aW51ZX1lLmZvbnQ9YCR7dC5ib2xkP2Bib2xkIGA6YGB9JHt0LmZvbnRQeH1weCAke3QuZm9udH1gLGUuZmlsbFN0eWxlPXQuZm9udENvbG9yLGUudGV4dEFsaWduPWBjZW50ZXJgLGUudGV4dEJhc2VsaW5lPWBtaWRkbGVgO2xldCBuPXQuY3lCb3gtKHQubGluZXMubGVuZ3RoLTEpKnQubGluZUhlaWdodC8yO2ZvcihsZXQgcj0wO3I8dC5saW5lcy5sZW5ndGg7cisrKWUuZmlsbFRleHQodC5saW5lc1tyXSx0LmN4Qm94LG4rcip0LmxpbmVIZWlnaHQpfWUucmVzdG9yZSgpfWZ1bmN0aW9uIEppKGUsdCxuLHIsaSxhLG8scyxjLGwsdSxkLGYscCxtLGgsZyxfLHYseSxiLHgsUyxDKXtsZXQgdz1lPT5DLmdldChlKSxUPWhlKG4uZm9udFNpemVIcHQscCk/P01hdGgubWF4KDksbCouMDkpLEU9bi5sYWJlbEJveCxEPVtdLE89ZDtmb3IobGV0IGQ9MDtkPGEubGVuZ3RoO2QrKyl7bGV0IEM9YVtkXS9vKk1hdGguUEkqMixrPU8rQy8yO2lmKE8rPUMsQzw9MHx8IVMuaGFzKGQpKWNvbnRpbnVlO2xldCBBPXcoZCk7aWYoQT8uZGVsZXRlZCljb250aW51ZTtsZXQgaj1BPy5zaG93Q2F0TmFtZT8/bi5zaG93Q2F0TmFtZSxNPUE/LnNob3dTZXJOYW1lPz9uLnNob3dTZXJOYW1lLE49QT8uc2hvd1ZhbD8/bi5zaG93VmFsLFA9QT8uc2hvd1BlcmNlbnQ/P24uc2hvd1BlcmNlbnQsRj1oZShBPy5mb250U2l6ZUhwdCxwKT8/VCxJPUE/LmZvbnRCb2xkPz9uLmZvbnRCb2xkPz8hMSxMPUE/LmZvbnRGYWNlPz9uLmZvbnRGYWNlP2xyKHQsQT8uZm9udEZhY2U/P24uZm9udEZhY2UsYG1pbm9yYCk6ZixSPUE/LmZvbnRDb2xvcj9gIyR7QS5mb250Q29sb3J9YDpuLmZvbnRDb2xvcj9gIyR7bi5mb250Q29sb3J9YDpgIzAwMGAsej1BPy5sYWJlbEJveD8/RSxlZT16Py5maWxsP2AjJHt6LmZpbGx9YDpudWxsLEI9ej8uYm9yZGVyQ29sb3I/YCMke3ouYm9yZGVyQ29sb3J9YDpudWxsLFY9ej8uYm9yZGVyV2lkdGhFbXU/TWF0aC5tYXgoLjc1LHouYm9yZGVyV2lkdGhFbXUvZXQqcCk6MSxIPUE/LnBvc2l0aW9uPz9uLnBvc2l0aW9uPz9gYmVzdEZpdGAsVT1hbih7Y3VzdG9tVGV4dDpBPy50ZXh0LHNob3dDYXRlZ29yeTpqLHNob3dTZXJpZXM6TSxzaG93VmFsdWU6TixzaG93UGVyY2VudDpQLGNhdGVnb3J5OihpW2RdPz9gYCkudG9TdHJpbmcoKSxzZXJpZXNOYW1lOnIubmFtZSxzb3VyY2VWYWx1ZTphW2RdLHBlcmNlbnRSYXRpbzphW2RdL28sZm9ybWF0Q29kZTpBPy5mb3JtYXRDb2RlPz9uLmZvcm1hdENvZGU/P3IudmFsRm9ybWF0Q29kZT8/bnVsbCxwZXJjZW50Rm9ybWF0Q29kZTpBPy5mb3JtYXRDb2RlPz9uLmZvcm1hdENvZGU/P2AwJWAsZGF0ZTE5MDQ6dC5kYXRlMTkwND8/ITEsc2VwYXJhdG9yOkE/LnNlcGFyYXRvcj8/bi5zZXBhcmF0b3IsZGVmYXVsdFNlcGFyYXRvcjpgCmB9KTtpZighVSljb250aW51ZTtsZXQgdGU9Y2EodCxBLHAsTCxJKSxXPU1hdGgubWF4KDQsRiouNDUpLG5lPU1hdGgubWF4KDIsRiouMjgpLEc9RiouMjIsSz1GK0c7ZS5mb250PWAke0k/YGJvbGQgYDpgYH0ke0Z9cHggJHtMfWA7bGV0IHE9dGU/UXQoZSx0ZSxGLFIpOm51bGw7aWYodGUmJiFxKWNvbnRpbnVlO2xldCBKPXE/W106aG4oVSxNYXRoLm1heCgwLGgtVyoyKSxNYXRoLm1heCgwLF8tbmUqMiksSyx0PT5lLm1lYXN1cmVUZXh0KHQpLndpZHRoKTtpZighcSYmSi5sZW5ndGg9PT0wKWNvbnRpbnVlO2xldCBZPXE/LndpZHRoPz8wO2lmKCFxKWZvcihsZXQgdCBvZiBKKVk9TWF0aC5tYXgoWSxlLm1lYXN1cmVUZXh0KHQpLndpZHRoKTtsZXQgcmU9TWF0aC5taW4oWStXKjIsaCksaWU9cT8uaGVpZ2h0Pz9KLmxlbmd0aCpLLUc7aWU9TWF0aC5taW4oaWUrbmUqMixfKTtsZXQgYWU9cytNYXRoLmNvcyhrKSpsLG9lPWMrTWF0aC5zaW4oaykqbCxzZT1NYXRoLmNvcyhrKTwwLGNlPU1hdGgubWF4KHJlLGllKSouNTUrbCouMDYsbGU9YWUrTWF0aC5jb3MoaykqY2UsdWU9b2UrTWF0aC5zaW4oaykqY2UsZGUsZmU9ITE7aWYoQT8ubWFudWFsTGF5b3V0KXtsZXQgdD1mbih7a2luZDpgcG9pbnRgLHg6bGUseTp1ZSxwb3NpdGlvbjpgY3RyYH0se3g6bSx5OmcsdzpoLGg6X30se3c6cmUsaDppZX0sRixBLm1hbnVhbExheW91dCx7eDp2LHksdzpiLGg6eH0pO2lmKCF0fHwocmU9dC5yZWN0LncsaWU9dC5yZWN0LmgsIXEmJihKPWhuKFUsTWF0aC5tYXgoMCxyZS1XKjIpLE1hdGgubWF4KDAsaWUtbmUqMiksSyx0PT5lLm1lYXN1cmVUZXh0KHQpLndpZHRoKSxKLmxlbmd0aD09PTApKSljb250aW51ZTtsZT10LnJlY3QueCt0LnJlY3Qudy8yLHVlPXQucmVjdC55K3QucmVjdC5oLzIsc2U9bGU8cyxkZT10LmNsaXB9ZWxzZSBpZihIIT09YGJlc3RGaXRgJiZIIT09YG91dEVuZGApe2xldCB0PXU+LjAxPyh1K2wpLzI6bCp6aSxuPXMrTWF0aC5jb3MoaykqdCxyPWMrTWF0aC5zaW4oaykqdCxpPTIqdCpNYXRoLnNpbihNYXRoLm1pbihNYXRoLlBJLE1hdGguYWJzKEMpKS8yKS1GLGE9dT4uMDE/bC11LUY6bC1GLG89T2koe3g6bi1pLzIseTpyLWEvMix3OmksaDphfSx7eDptLHk6Zyx3OmgsaDpffSk7aWYoIW8pY29udGludWU7aWYocSlyZT1NYXRoLm1pbihyZSxvLncpLGllPU1hdGgubWluKGllLG8uaCk7ZWxzZXtpZihKPWhuKFUsTWF0aC5tYXgoMCxvLnctVyoyKSxNYXRoLm1heCgwLG8uaC1uZSoyKSxLLHQ9PmUubWVhc3VyZVRleHQodCkud2lkdGgpLEoubGVuZ3RoPT09MCljb250aW51ZTtZPUoucmVkdWNlKCh0LG4pPT5NYXRoLm1heCh0LGUubWVhc3VyZVRleHQobikud2lkdGgpLDApLHJlPVkrVyoyLGllPUoubGVuZ3RoKkstRytuZSoyfWxldCBkPWZuKHtraW5kOmBwb2ludGAseDpuLHk6cixwb3NpdGlvbjpIPT09YGluQmFzZWB8fEg9PT1gaW5FbmRgP2BjdHJgOkh9LG8se3c6cmUsaDppZX0sRik7aWYoIWQpY29udGludWU7bGU9ZC50ZXh0QWxpZ249PT1gbGVmdGA/ZC54K3JlLzI6ZC50ZXh0QWxpZ249PT1gcmlnaHRgP2QueC1yZS8yOmQueCx1ZT1kLnRleHRCYXNlbGluZT09PWB0b3BgP2QueStpZS8yOmQudGV4dEJhc2VsaW5lPT09YGJvdHRvbWA/ZC55LWllLzI6ZC55LHNlPWxlPHMsZGU9ZC5jbGlwLGZlPSEwfUQucHVzaCh7bGluZXM6SixyaWNoOnE/P3ZvaWQgMCxsaW5lSGVpZ2h0OkssbWlkQW5nbGU6ayxyaW1YOmFlLHJpbVk6b2UsYm94VzpyZSxib3hIOmllLGN4Qm94OmxlLGN5Qm94OnVlLGxlZnRTaWRlOnNlLGZvbnRDb2xvcjpSLGJveEZpbGw6ZWUsYm94Qm9yZGVyOkIsYm94Qm9yZGVyUHg6Vixmb250UHg6Rixib2xkOkksZm9udDpMLGluc2lkZTpmZSxtYW51YWxDbGlwOmRlfSl9bGV0IGs9ZysyLEE9ZytfLTIsaj1BLWssTT1lPT57aWYoZS5sZW5ndGg9PT0wKXJldHVybjtlLnNvcnQoKGUsdCk9PmUuY3lCb3gtdC5jeUJveCk7bGV0IHQ9MDtmb3IobGV0IG4gb2YgZSl0Kz1uLmJveEg7aWYodCs9KGUubGVuZ3RoLTEpKjMsdD5qKXtsZXQgdD1lLnJlZHVjZSgoZSx0KT0+ZSt0LmJveEgsMCksbj1lLmxlbmd0aDtpZihuPT09MSl7ZVswXS5jeUJveD1NYXRoLm1pbihNYXRoLm1heChlWzBdLmN5Qm94LGsrZVswXS5ib3hILzIpLEEtZVswXS5ib3hILzIpO3JldHVybn1sZXQgcj0oai10KS8obi0xKSxpPWs7Zm9yKGxldCB0IG9mIGUpdC5jeUJveD1pK3QuYm94SC8yLGkrPXQuYm94SCtyO3JldHVybn1mb3IobGV0IHQ9MTt0PGUubGVuZ3RoO3QrKyl7bGV0IG49ZVt0LTFdLHI9ZVt0XSxpPShuLmJveEgrci5ib3hIKS8yKzM7ci5jeUJveC1uLmN5Qm94PGkmJihyLmN5Qm94PW4uY3lCb3graSl9bGV0IG49ZVtlLmxlbmd0aC0xXS5jeUJveCtlW2UubGVuZ3RoLTFdLmJveEgvMi1BO2lmKG4+MClmb3IobGV0IHQgb2YgZSl0LmN5Qm94LT1uO2xldCByPWstKGVbMF0uY3lCb3gtZVswXS5ib3hILzIpO2lmKHI+MClmb3IobGV0IHQgb2YgZSl0LmN5Qm94Kz1yfTtNKEQuZmlsdGVyKGU9PiFlLm1hbnVhbENsaXAmJiFlLmxlZnRTaWRlKSksTShELmZpbHRlcihlPT4hZS5tYW51YWxDbGlwJiZlLmxlZnRTaWRlKSk7Zm9yKGxldCBlIG9mIEQpZS5tYW51YWxDbGlwfHwoZS5jeUJveD1NYXRoLm1heChrK2UuYm94SC8yLGUuY3lCb3gpLGUuY3lCb3g9TWF0aC5taW4oQS1lLmJveEgvMixlLmN5Qm94KSk7bGV0IE49bSsyLFA9bStoLTI7Zm9yKGxldCBlIG9mIEQpe2lmKGUubWFudWFsQ2xpcCljb250aW51ZTtsZXQgdD1lLmJveFcvMjtlLmN4Qm94LXQ8TiYmKGUuY3hCb3g9Tit0KSxlLmN4Qm94K3Q+UCYmKGUuY3hCb3g9UC10KX1lLnNhdmUoKSxlLmJlZ2luUGF0aCgpLGUucmVjdChtLGcsaCxfKSxlLmNsaXAoKTtsZXQgRj1uLmxlYWRlckxpbmVDb2xvcj9gIyR7bi5sZWFkZXJMaW5lQ29sb3J9YDpgI2E2YTZhNmAsST1uLmxlYWRlckxpbmVXaWR0aEVtdT9NYXRoLm1heCguNSxuLmxlYWRlckxpbmVXaWR0aEVtdS9ldCpwKToxO2ZvcihsZXQgdCBvZiBEKXtsZXQgcj10LmN4Qm94Kyh0LmxlZnRTaWRlP3QuYm94Vy8yOi10LmJveFcvMiksaT10LmN5Qm94LGE9ci10LnJpbVgsbz1pLXQucmltWSxzPU1hdGguaHlwb3QoYSxvKTshdC5pbnNpZGUmJm4uc2hvd0xlYWRlckxpbmVzJiZzPnQuZm9udFB4Ki45JiYoZS5iZWdpblBhdGgoKSxlLm1vdmVUbyh0LnJpbVgsdC5yaW1ZKSxlLmxpbmVUbyhyLGkpLGUuc3Ryb2tlU3R5bGU9RixlLmxpbmVXaWR0aD1JLGUuc3Ryb2tlKCkpfWZvcihsZXQgdCBvZiBEKXt0Lm1hbnVhbENsaXAmJihlLnNhdmUoKSxlLmJlZ2luUGF0aCgpLGUucmVjdCh0Lm1hbnVhbENsaXAueCx0Lm1hbnVhbENsaXAueSx0Lm1hbnVhbENsaXAudyx0Lm1hbnVhbENsaXAuaCksZS5jbGlwKCkpO2xldCBuPXQuY3hCb3gtdC5ib3hXLzIscj10LmN5Qm94LXQuYm94SC8yO2lmKHQuYm94RmlsbCYmKGUuZmlsbFN0eWxlPXQuYm94RmlsbCxlLmZpbGxSZWN0KG4scix0LmJveFcsdC5ib3hIKSksdC5ib3hCb3JkZXImJihlLnN0cm9rZVN0eWxlPXQuYm94Qm9yZGVyLGUubGluZVdpZHRoPXQuYm94Qm9yZGVyUHgsZS5zdHJva2VSZWN0KG4scix0LmJveFcsdC5ib3hIKSksdC5yaWNoKXtlLnNhdmUoKSxlLmJlZ2luUGF0aCgpLGUucmVjdChuLHIsdC5ib3hXLHQuYm94SCksZS5jbGlwKCksJHQoZSx0LnJpY2gsdC5jeEJveCx0LmN5Qm94KSxlLnJlc3RvcmUoKSx0Lm1hbnVhbENsaXAmJmUucmVzdG9yZSgpO2NvbnRpbnVlfWUuZm9udD1gJHt0LmJvbGQ/YGJvbGQgYDpgYH0ke3QuZm9udFB4fXB4ICR7dC5mb250fWAsZS5maWxsU3R5bGU9dC5mb250Q29sb3IsZS50ZXh0QWxpZ249YGNlbnRlcmAsZS50ZXh0QmFzZWxpbmU9YG1pZGRsZWA7bGV0IGk9dC5saW5lSGVpZ2h0LXQuZm9udFB4LGE9dC5jeUJveC0odC5saW5lcy5sZW5ndGgqdC5saW5lSGVpZ2h0LWkpLzIrdC5mb250UHgvMjtmb3IobGV0IG49MDtuPHQubGluZXMubGVuZ3RoO24rKyllLmZpbGxUZXh0KHQubGluZXNbbl0sdC5jeEJveCxhK24qdC5saW5lSGVpZ2h0KTt0Lm1hbnVhbENsaXAmJmUucmVzdG9yZSgpfWUucmVzdG9yZSgpfWZ1bmN0aW9uIFlpKGUsdCxuLHIpe2xldHt4OmkseTphLHc6byxoOnN9PW4sYz1EaSh0KSxsPWMubGVuZ3RoO2lmKGw8MylyZXR1cm47bGV0IHU9anIoZSx0LG8scywuMjIsciksZD1rZSh0LGksYSxvLHMscix7dGl0bGVUb3BQYWRGcmFjOi4wMzUsdGl0bGVCb3R0b21QYWRGcmFjOi4wMzUsbGVnZW5kU2lkZVJlc2VydmVGcmFjOi4yMixsZWdlbmRSZXNlcnZlOnUscmFkaWFsR2FwRnJhYzouMDJ9KSxmPWQudGl0bGUuZm9udFB4O0VpKGUsdCxpLGEsbyxzLGErZC50aXRsZS50b3BQYWQsZik7bGV0e3B4MDpwLHB5MDptLHB3OmgscGg6Z309ZC5wbG90UmVjdCxfPWQuY2VudGVyLmN4LHY9ZC5jZW50ZXIuY3kseT1NYXRoLm1pbihoLGcpKi4zOCxiPTEvMCx4PS0xLzA7Zm9yKGxldCBlIG9mIHQuc2VyaWVzKWZvcihsZXQgdCBvZiBlLnZhbHVlcyl0IT1udWxsJiYoYj1NYXRoLm1pbihiLHQpLHg9TWF0aC5tYXgoeCx0KSk7aXNGaW5pdGUoYil8fChiPTAseD0xKSx4PT09MCYmKHg9MSk7bGV0IFM9dC52YWxBeGlzTWlub3JUaWNrTWFyayE9bnVsbCYmdC52YWxBeGlzTWlub3JUaWNrTWFyayE9PWBub25lYCxDPXQudmFsQXhpc0xvZ0Jhc2UhPW51bGwmJk51bWJlci5pc0Zpbml0ZSh0LnZhbEF4aXNMb2dCYXNlKSYmdC52YWxBeGlzTG9nQmFzZT49Mix3PXQudmFsQXhpc01ham9yVW5pdD8/KEM/bnVsbDp6ZSh0LnZhbE1pbj8/Yix0LnZhbE1heD8/eCx5L3IpKSxUPVhlKHtkYXRhTWluOmIsZGF0YU1heDp4LGV4cGxpY2l0TWluOnQudmFsTWluLGV4cGxpY2l0TWF4OnQudmFsTWF4LGF4aXNMZW5QdDp5L3IsYXhpc09yaWVudGF0aW9uOmB2ZXJ0aWNhbGAsbWFqb3JVbml0OncsbWlub3JVbml0OnQudmFsQXhpc01pbm9yVW5pdCxuZWVkTWlub3I6dC52YWxBeGlzTWlub3JHcmlkbGluZXM9PT0hMHx8Uyxsb2dCYXNlOnQudmFsQXhpc0xvZ0Jhc2UscmV2ZXJzZWQ6cXIodCl9KSxFPWU9PnVhKFQuZnJhY3Rpb24oZSksMCwxKSxEPS1NYXRoLlBJLzIsTz1lPT5EK2UvbCpNYXRoLlBJKjIsaz1ULm1ham9yVGlja3MuZmlsdGVyKGU9PkUoZSk+MCksQT10PT57bGV0IG49RSh0KSp5O2UuYmVnaW5QYXRoKCk7Zm9yKGxldCB0PTA7dDxsO3QrKyl7bGV0IHI9Tyh0KSxpPV8rTWF0aC5jb3MocikqbixhPXYrTWF0aC5zaW4ocikqbjt0PT09MD9lLm1vdmVUbyhpLGEpOmUubGluZVRvKGksYSl9ZS5jbG9zZVBhdGgoKSxlLnN0cm9rZSgpfTtpZih0LnZhbEF4aXNNaW5vckdyaWRsaW5lcyl7bGV0IG49QnIodCxyKTtlLnN0cm9rZVN0eWxlPW4uY29sb3IsZS5saW5lV2lkdGg9bi53aWR0aDtsZXQgaT1uLmRhc2gubGVuZ3RoPjAmJmUuZ2V0TGluZURhc2g/ZS5nZXRMaW5lRGFzaCgpOltdO24uZGFzaC5sZW5ndGg+MCYmZS5zZXRMaW5lRGFzaChuLmRhc2gpO2ZvcihsZXQgZSBvZiBULm1pbm9yVGlja3MpQShlKTtuLmRhc2gubGVuZ3RoPjAmJmUuc2V0TGluZURhc2goaSl9aWYoIXQudmFsQXhpc0hpZGRlbiYmWXIodCkpe2xldCBuPXpyKHQscik7ZS5zdHJva2VTdHlsZT1uLmNvbG9yLGUubGluZVdpZHRoPW4ud2lkdGg7bGV0IGk9bi5kYXNoLmxlbmd0aD4wJiZlLmdldExpbmVEYXNoP2UuZ2V0TGluZURhc2goKTpbXTtuLmRhc2gubGVuZ3RoPjAmJmUuc2V0TGluZURhc2gobi5kYXNoKTtmb3IobGV0IGUgb2YgaylBKGUpO24uZGFzaC5sZW5ndGg+MCYmZS5zZXRMaW5lRGFzaChpKX1lLnN0cm9rZVN0eWxlPWAjYmJiYCxlLmxpbmVXaWR0aD0uNTtmb3IobGV0IHQ9MDt0PGw7dCsrKXtsZXQgbj1PKHQpO2UuYmVnaW5QYXRoKCksZS5tb3ZlVG8oXyx2KSxlLmxpbmVUbyhfK01hdGguY29zKG4pKnksditNYXRoLnNpbihuKSp5KSxlLnN0cm9rZSgpfWlmKCF0LnZhbEF4aXNIaWRkZW4pe2xldCBuPWxpKHQudmFsQXhpc0ZvbnRTaXplSHB0LHMscik7ZS5mb250PWAke3QudmFsQXhpc0ZvbnRJdGFsaWM/YGl0YWxpYyBgOmBgfSR7dC52YWxBeGlzRm9udEJvbGQ/YGJvbGQgYDpgYH0ke259cHggJHtscih0LHQudmFsQXhpc0ZvbnRGYWNlLGBtaW5vcmApfWAsZS5maWxsU3R5bGU9dC52YWxBeGlzRm9udENvbG9yP2AjJHt0LnZhbEF4aXNGb250Q29sb3J9YDpgIzU1NWAsZS50ZXh0QWxpZ249YHJpZ2h0YCxlLnRleHRCYXNlbGluZT1gbWlkZGxlYDtmb3IobGV0IG4gb2Ygayl7bGV0IGk9di1FKG4pKnksYT1pdCh0LnZhbEF4aXNMaW5lQ29sb3IsdC52YWxBeGlzTGluZVdpZHRoRW11LHIpO0ZyKGUsdC52YWxBeGlzTWFqb3JUaWNrTWFyayxgdmFsYCxfLGksYS5jb2xvcixhLndpZHRoLCExLHQudmFsQXhpc0xpbmVIaWRkZW4sYG1ham9yYCxyKSx0LnZhbEF4aXNUaWNrTGFiZWxQb3MhPT1gbm9uZWAmJmUuZmlsbFRleHQoWnIodCxuLCExKSxfLTMsaSl9aWYoUyl7bGV0IG49aXQodC52YWxBeGlzTGluZUNvbG9yLHQudmFsQXhpc0xpbmVXaWR0aEVtdSxyKTtmb3IobGV0IGkgb2YgVC5taW5vclRpY2tzKUZyKGUsdC52YWxBeGlzTWlub3JUaWNrTWFyayxgdmFsYCxfLHYtRShpKSp5LG4uY29sb3Isbi53aWR0aCwhMSx0LnZhbEF4aXNMaW5lSGlkZGVuLGBtaW5vcmAscil9fWxldCBqPXQuY2F0QXhpc0ZvbnRTaXplSHB0PT1udWxsP01hdGgubWF4KDgsTWF0aC5taW4oMTEseSouMikpOmxpKHQuY2F0QXhpc0ZvbnRTaXplSHB0LHMscik7ZS5mb250PWAke3QuY2F0QXhpc0ZvbnRJdGFsaWM/YGl0YWxpYyBgOmBgfSR7dC5jYXRBeGlzRm9udEJvbGQ/YGJvbGQgYDpgYH0ke2p9cHggJHtscih0LHQuY2F0QXhpc0ZvbnRGYWNlLGBtaW5vcmApfWAsZS5maWxsU3R5bGU9dC5jYXRBeGlzRm9udENvbG9yP2AjJHt0LmNhdEF4aXNGb250Q29sb3J9YDpgIzQ0NGAsZS50ZXh0QmFzZWxpbmU9YG1pZGRsZWA7bGV0IE09Xy1oLzIsTj1fK2gvMjtpZighdC5jYXRBeGlzSGlkZGVuJiZmaSh0KSlmb3IobGV0IG49MDtuPGw7bisrKXtsZXQgcj1PKG4pLGk9XytNYXRoLmNvcyhyKSooeSsxMiksYT12K01hdGguc2luKHIpKih5KzEyKSxvPU1hdGguY29zKHIpPC0uMT9gcmlnaHRgOk1hdGguY29zKHIpPi4xP2BsZWZ0YDpgY2VudGVyYDtlLnRleHRBbGlnbj1vO2xldCBzPW89PT1gcmlnaHRgP2ktTTpvPT09YGxlZnRgP04taToyKk1hdGgubWluKE4taSxpLU0pLGw9YnQoKGNbbl0/P2BgKS50b1N0cmluZygpLHQuY2F0QXhpc0Zvcm1hdENvZGUsdC5kYXRlMTkwNCk7ZS5maWxsVGV4dChPdChlLGwscyksaSxhKX1sZXQgUD10LnJhZGFyU3R5bGU9PT1gZmlsbGVkYCxGPU1hdGgubWF4KDIseSouMDI1KTtmb3IobGV0IG49MDtuPHQuc2VyaWVzLmxlbmd0aDtuKyspe2xldCBpPXQuc2VyaWVzW25dLGE9YXIobixpKSxvPVtdO2ZvcihsZXQgZT0wO2U8bDtlKyspe2xldCB0PWkudmFsdWVzW2VdO2lmKHQ9PW51bGwpe28ucHVzaChudWxsKTtjb250aW51ZX1sZXQgbj1FKHQpLHI9TyhlKTtvLnB1c2goW18rTWF0aC5jb3MocikqeSpuLHYrTWF0aC5zaW4ocikqeSpuXSl9ZS5iZWdpblBhdGgoKTtsZXQgcz0hMTtmb3IobGV0IHQgb2Ygbyl7aWYodD09bnVsbCl7cz0hMTtjb250aW51ZX1zP2UubGluZVRvKHRbMF0sdFsxXSk6KGUubW92ZVRvKHRbMF0sdFsxXSkscz0hMCl9bGV0IGM9by5ldmVyeShlPT5lIT1udWxsKTtpZihQJiZjPyhlLmNsb3NlUGF0aCgpLGUuZmlsbFN0eWxlPVBuKGEsLjI1KSxlLmZpbGwoKSk6YyYmZS5jbG9zZVBhdGgoKSxpLmxpbmVIaWRkZW4hPT0hMCl7bGV0IHQ9ZS5nZXRMaW5lRGFzaD9lLmdldExpbmVEYXNoKCk6W10sbj1lLmxpbmVDYXAsbz1lLmxpbmVKb2luO2Uuc3Ryb2tlU3R5bGU9aS5saW5lQ29sb3I/YCMke2kubGluZUNvbG9yfWA6YSxlLmxpbmVXaWR0aD1pLmxpbmVXaWR0aEVtdT09bnVsbD8yOnJ0KGkubGluZVdpZHRoRW11LHIpLGUuc2V0TGluZURhc2goZmEoaS5jaGFydGV4U3R5bGU/LmxpbmVEYXNoPz92b2lkIDAsZS5saW5lV2lkdGgpKSxlLmxpbmVDYXA9aS5jaGFydGV4U3R5bGU/LmxpbmVDYXA9PT1gcm5kYD9gcm91bmRgOmkuY2hhcnRleFN0eWxlPy5saW5lQ2FwPT09YHNxYD9gc3F1YXJlYDpgYnV0dGAsZS5saW5lSm9pbj1pLmNoYXJ0ZXhTdHlsZT8ubGluZUpvaW49PT1gcm91bmRgfHxpLmNoYXJ0ZXhTdHlsZT8ubGluZUpvaW49PT1gYmV2ZWxgP2kuY2hhcnRleFN0eWxlLmxpbmVKb2luOmBtaXRlcmAsZS5zdHJva2UoKSxlLnNldExpbmVEYXNoKHQpLGUubGluZUNhcD1uLGUubGluZUpvaW49b31pZighUCYmaS5zaG93TWFya2VyIT09ITEmJmkubWFya2VyU3ltYm9sIT09YG5vbmVgKXtsZXQgdD1vcihpLmRhdGFQb2ludE92ZXJyaWRlcyk7Zm9yKGxldCBuPTA7bjxvLmxlbmd0aDtuKyspe2xldCBzPW9bbl07aWYocz09bnVsbCljb250aW51ZTtsZXQgYz10LmdldChuKSxsPWM/Lm1hcmtlclN5bWJvbD8/aS5tYXJrZXJTeW1ib2w/P2BjaXJjbGVgO2lmKGw9PT1gbm9uZWApY29udGludWU7bGV0IHU9Yz8ubWFya2VyU2l6ZT8/aS5tYXJrZXJTaXplPz9NYXRoLm1heCg0LEYqMi9yKSxkPWM/Lm1hcmtlckZpbGw/P2kubWFya2VyRmlsbD8/YSxmPWM/Lm1hcmtlckxpbmU/P2kubWFya2VyTGluZT8/bnVsbCxwPWM/Lm1hcmtlckxpbmVXaWR0aEVtdT8/aS5tYXJrZXJMaW5lV2lkdGhFbXU7aWEoZSxzWzBdLHNbMV0sbCx1LGQsZixyLHA9PW51bGw/MTpydChwLHIpKX19fVByKGUsdCx1LGksYSxvLHMscCxtLGgsZyxkLnRpdGxlLmJhbmRIKzIscil9ZnVuY3Rpb24gWGkoZSx0LG4pe2lmKG4pcmV0dXJuIHQ7bGV0IHI9ZVt0XTtpZihyPT1udWxsKXJldHVybiBudWxsO2xldCBpPXBhcnNlRmxvYXQocik7cmV0dXJuIE51bWJlci5pc05hTihpKT9udWxsOml9ZnVuY3Rpb24gWmkoZSx0KXtyZXR1cm4gZS5idWJibGVTaXplUmVwcmVzZW50cz09PWB3YD90Ok1hdGguc3FydCh0KX1mdW5jdGlvbiBRaShlLHQpe3JldHVybiB0PT1udWxsfHwhTnVtYmVyLmlzRmluaXRlKHQpfHx0PT09MHx8dDwwJiZlLnNob3dOZWdhdGl2ZUJ1YmJsZXMhPT0hMD9udWxsOk1hdGguYWJzKHQpfWZ1bmN0aW9uICRpKGUsdCxuLHIpe3JldHVybiB0Py5tYXJrZXJGaWxsPz90Py5jb2xvcj8/ZS5kYXRhUG9pbnRDb2xvcnM/LltuXT8/ZS5tYXJrZXJGaWxsPz9yfWZ1bmN0aW9uIGVhKGUsdCxuKXtyZXR1cm57c2VyaWVzOnQsZmFsbGJhY2tDb2xvcjphcihuLHQpLGNhdHM6dC5jYXRlZ29yaWVzPz9lLmNhdGVnb3JpZXMscG9pbnRPdmVycmlkZXM6bmV3IE1hcCgodC5kYXRhUG9pbnRPdmVycmlkZXM/P1tdKS5tYXAoZT0+W2UuaWR4LGVdKSl9fWZ1bmN0aW9uIHRhKGUsdCxuLHIsaSl7bGV0IGE9dWEoZS5idWJibGVTY2FsZT8/MTAwLDAsMzAwKTtpZihhPD0wKXJldHVybiAwO2xldCBvPTA7Zm9yKGxldHtzZXJpZXM6cixjYXRzOmkscG9pbnRPdmVycmlkZXM6YX1vZiB0KWlmKCEoci5zaG93TWFya2VyPT09ITF8fHIubWFya2VyU3ltYm9sPT09YG5vbmVgKSlmb3IobGV0IHQ9MDt0PHIudmFsdWVzLmxlbmd0aDt0Kyspe2lmKHIudmFsdWVzW3RdPT1udWxsfHxYaShpLHQsbik9PW51bGx8fGEuZ2V0KHQpPy5tYXJrZXJTeW1ib2w9PT1gbm9uZWApY29udGludWU7bGV0IHM9UWkoZSxyLmJ1YmJsZVNpemVzPy5bdF0pO3MhPW51bGwmJihvPU1hdGgubWF4KG8sWmkoZSxzKSkpfXJldHVybiBvPD0wPzA6TWF0aC5taW4ocixpKSphLygzMDArYSkvb31mdW5jdGlvbiBuYShlLHQsbixyLGksYSxvLHMsYyxsLHUsZCxmLHAsbSxoKXtsZXQgZz1wPT09YGxpbmVgfHxwPT09YGxpbmVNYXJrZXJgfHxwPT09YGxpbmVOb01hcmtlcmAsXz1wPT09YHNtb290aGB8fHA9PT1gc21vb3RoTWFya2VyYHx8cD09PWBzbW9vdGhOb01hcmtlcmAsdj1wPT09YGxpbmVOb01hcmtlcmB8fHA9PT1gc21vb3RoTm9NYXJrZXJgLHk9bi5tYXAoKHtzZXJpZXM6ZSxpbmRleDpufSk9PmVhKHQsZSxuKSksYj1mP3RhKHQseSxyLGwsdSk6MDtmb3IobGV0e3Nlcmllczp0LGZhbGxiYWNrQ29sb3I6bixjYXRzOm99b2YgeSlmb3IobGV0IHMgb2YgdC5lcnJCYXJzPz9bXSlhYShlLHQscyxvLHIsaSxhLG4pO2ZvcihsZXR7c2VyaWVzOnQsZmFsbGJhY2tDb2xvcjpuLGNhdHM6b31vZiB5KWlmKChnfHxfKSYmdC5saW5lSGlkZGVuIT09ITApe2xldCBzPVtdO2ZvcihsZXQgZT0wO2U8dC52YWx1ZXMubGVuZ3RoO2UrKyl7bGV0IG49dC52YWx1ZXNbZV07aWYobj09bnVsbCljb250aW51ZTtsZXQgYz1YaShvLGUscik7YyE9bnVsbCYmcy5wdXNoKHt4OmkoYykseTphKG4pfSl9aWYocy5sZW5ndGg+PTIpe2lmKGUuc2F2ZSgpLGUuc3Ryb2tlU3R5bGU9dC5jb2xvcj9gIyR7dC5jb2xvcn1gOm4sZS5saW5lV2lkdGg9MS41LGUuYmVnaW5QYXRoKCksZS5tb3ZlVG8oc1swXS54LHNbMF0ueSksXyYmcy5sZW5ndGg+PTMpZm9yKGxldCB0PTA7dDxzLmxlbmd0aC0xO3QrKyl7bGV0IG49c1t0LTFdPz9zW3RdLHI9c1t0XSxpPXNbdCsxXSxhPXNbdCsyXT8/aTtlLmJlemllckN1cnZlVG8oci54KyhpLngtbi54KS82LHIueSsoaS55LW4ueSkvNixpLngtKGEueC1yLngpLzYsaS55LShhLnktci55KS82LGkueCxpLnkpfWVsc2UgZm9yKGxldCB0PTE7dDxzLmxlbmd0aDt0KyspZS5saW5lVG8oc1t0XS54LHNbdF0ueSk7ZS5zdHJva2UoKSxlLnJlc3RvcmUoKX19Zm9yKGxldHtzZXJpZXM6bixmYWxsYmFja0NvbG9yOm8sY2F0czpzLHBvaW50T3ZlcnJpZGVzOmN9b2YgeSlpZighKHZ8fG4uc2hvd01hcmtlcj09PSExfHx0eXBlb2Ygbi5tYXJrZXJTeW1ib2w9PWBzdHJpbmdgJiZuLm1hcmtlclN5bWJvbD09PWBub25lYCkpZm9yKGxldCBsPTA7bDxuLnZhbHVlcy5sZW5ndGg7bCsrKXtsZXQgdT1uLnZhbHVlc1tsXTtpZih1PT1udWxsKWNvbnRpbnVlO2xldCBwPVhpKHMsbCxyKTtpZihwPT1udWxsKWNvbnRpbnVlO2xldCBtPWMuZ2V0KGwpLGg9bT8ubWFya2VyU3ltYm9sPz9uLm1hcmtlclN5bWJvbD8/YGNpcmNsZWA7aWYoaD09PWBub25lYCljb250aW51ZTtsZXQgZz1tPy5tYXJrZXJTaXplPz9uLm1hcmtlclNpemU/PzU7aWYoZil7aWYoYjw9MCljb250aW51ZTtsZXQgZT1RaSh0LG4uYnViYmxlU2l6ZXM/LltsXSk7aWYoZT09bnVsbCljb250aW51ZTtnPVppKHQsZSkqYi9kfWxldCBfPSRpKG4sbSxsLG8pLHY9bT8ubWFya2VyTGluZT8/bi5tYXJrZXJMaW5lPz8oZj9uLmxpbmVDb2xvcjpudWxsKT8/bnVsbCx5PW0/Lm1hcmtlckxpbmVXaWR0aEVtdT8/bi5tYXJrZXJMaW5lV2lkdGhFbXUseD1tPy5saW5lV2lkdGhFbXU/P24ubGluZVdpZHRoRW11LFM9Zj94OnksQz1TPT1udWxsP3ZvaWQgMDpydChTLGQpO2lhKGUsaShwKSxhKHUpLGgsZyxfLHYsZCxDKX1mb3IobGV0e3NlcmllczpuLGNhdHM6b31vZiB5KW9hKGUsbixvLHIsaSxhLHUsZCx0LmRhdGUxOTA0LGxyKHQsdC5kYXRhTGFiZWxGb250RmFjZSxgbWlub3JgKSx0LmRhdGFMYWJlbFBvc2l0aW9uPz9gcmAse3g6cyx5OmMsdzpsLGg6dX0sbSxlPT5scih0LGUsYG1pbm9yYCksaCk7Zm9yKGxldHtzZXJpZXM6bixmYWxsYmFja0NvbG9yOmYsY2F0czpwfW9mIHkpb2koZSxuLGYsaSxhLGQsbi52YWx1ZXMubWFwKChlLHQpPT5YaShwLHQscikpLHtjaGFydDp0LGNoYXJ0UmVjdDpvLHBsb3RSZWN0Ont4OnMseTpjLHc6bCxoOnV9LGNsaXBMaW5lVG9QbG90OiEwfSl9ZnVuY3Rpb24gcmEoZSx0LG4scil7bGV0e3g6aSx5OmEsdzpvLGg6c309bixjPXQuc2VyaWVzLm1hcCgoZSx0KT0+KHtzZXJpZXM6ZSxpbmRleDp0fSkpLmZpbHRlcigoe3NlcmllczplfSk9PmUudXNlU2Vjb25kYXJ5QXhpcyE9PSEwKSxsPXQuc2VyaWVzLm1hcCgoZSx0KT0+KHtzZXJpZXM6ZSxpbmRleDp0fSkpLmZpbHRlcigoe3NlcmllczplfSk9PmUudXNlU2Vjb25kYXJ5QXhpcz09PSEwKSx1PWwubGVuZ3RoPjA/dC5zZWNvbmRhcnlDYXRBeGlzOm51bGwsZD1sLmxlbmd0aD4wP3Quc2Vjb25kYXJ5VmFsQXhpczpudWxsLGY9KGU9PntsZXQgbj1bXTtmb3IobGV0e3NlcmllczpyfW9mIGUpe2xldCBlPXIuY2F0ZWdvcmllcz8/dC5jYXRlZ29yaWVzO2ZvcihsZXQgdCBvZiBlKXtsZXQgZT1wYXJzZUZsb2F0KHQpO051bWJlci5pc0Zpbml0ZShlKSYmbi5wdXNoKGUpfX1yZXR1cm4gbn0pKHQuc2VyaWVzLm1hcCgoZSx0KT0+KHtzZXJpZXM6ZSxpbmRleDp0fSkpKS5sZW5ndGg9PT0wLHA9ZT0+e2xldCBuPVtdLHI9W107Zm9yKGxldHtzZXJpZXM6aX1vZiBlKXtsZXQgZT1pLmNhdGVnb3JpZXM/P3QuY2F0ZWdvcmllcztmb3IobGV0IHQ9MDt0PGkudmFsdWVzLmxlbmd0aDt0Kyspe2xldCBhPWkudmFsdWVzW3RdO2lmKGE9PW51bGwpY29udGludWU7bGV0IG89WGkoZSx0LGYpO28hPW51bGwmJihuLnB1c2gobyksci5wdXNoKGEpKX1naShpLGB4YCx0PT5pLnZhbHVlc1t0XT09bnVsbD9udWxsOlhpKGUsdCxmKSxlPT5uLnB1c2goZSkpLGdpKGksYHlgLHQ9PlhpKGUsdCxmKT09bnVsbD9udWxsOmkudmFsdWVzW3RdPz9udWxsLGU9PnIucHVzaChlKSl9aWYoZiYmbi5sZW5ndGg9PT0wKXtsZXQgdD0wO2ZvcihsZXR7c2VyaWVzOm59b2YgZSl0PU1hdGgubWF4KHQsbi52YWx1ZXMubGVuZ3RoKTtmb3IobGV0IGU9MDtlPHQ7ZSsrKW4ucHVzaChlKX1yZXR1cm57eDpJZShuKSx5OkllKHIpfX0sbT1wKGMubGVuZ3RoPjA/YzpsKSxoPXAobCksZz13aShlLHQsbyxzLHIpLF89Zy5mb250UHgsdj1nLnRvcFBhZCx5PWxpKHQuY2F0QXhpc0ZvbnRTaXplSHB0LHMsciksYj1saSh0LnZhbEF4aXNGb250U2l6ZUhwdCxzLHIpLHg9anIoZSx0LG8scywuMjIscikse2xlZ1JpZ2h0VzpTLGxlZ0xlZnRXOkMsbGVnVG9wSDp3LGxlZ0JvdHRvbUg6VH09eWUoeCksRT1TZSh0LG8scyxyKSxEPUUuY2F0Rm9udFB4LE89RS52YWxGb250UHgsaz1FLmNhdEJhbmRILEE9RS52YWxCYW5kVztFaShlLHQsaSxhLG8scyxhK3YsXyk7bGV0IGo9ZD9YZSh7ZGF0YU1pbjpoLnkubWluLGRhdGFNYXg6aC55Lm1heCxleHBsaWNpdE1pbjpkLm1pbixleHBsaWNpdE1heDpkLm1heCxheGlzTGVuUHQ6TWF0aC5tYXgoMSxzKi43L3IpLGF4aXNPcmllbnRhdGlvbjpgdmVydGljYWxgLG1ham9yVW5pdDpkLm1ham9yVW5pdCxtaW5vclVuaXQ6ZC5taW5vclVuaXQsbmVlZE1pbm9yOmQubWlub3JHcmlkbGluZXM9PT0hMHx8ZC5taW5vclRpY2tNYXJrIT1udWxsJiZkLm1pbm9yVGlja01hcmshPT1gbm9uZWAsbG9nQmFzZTpkLmxvZ0Jhc2UscmV2ZXJzZWQ6ZC5vcmllbnRhdGlvbj09PWBtYXhNaW5gfSk6bnVsbCxNPTA7aWYoZCYmaiYmIWQuaGlkZGVuJiZkLnRpY2tMYWJlbFBvcyE9PWBub25lYCl7bGV0IG49ZS5mb250O2UuZm9udD11cihoZShkLmZvbnRTaXplSHB0LHIpPz9iLGxyKHQsZC5mb250RmFjZSxgbWlub3JgKSxkLmZvbnRCb2xkPz8hMSxkLmZvbnRJdGFsaWM/PyExKTtmb3IobGV0IG4gb2Ygai5tYWpvclRpY2tzKU09TWF0aC5tYXgoTSxlLm1lYXN1cmVUZXh0KCRyKG4sZC5mb3JtYXRDb2RlLHQuZGF0ZTE5MDQsZC5kaXNwbGF5VW5pdHMpKS53aWR0aCk7TSs9RWUoYikrNCxlLmZvbnQ9bn1sZXQgTj11JiYhdS5oaWRkZW4mJnUudGlja0xhYmVsUG9zIT09YG5vbmVgPyhoZSh1LmZvbnRTaXplSHB0LHIpPz95KStUZSh5KSsyOjAse3Bsb3RSZWN0OntweDA6UCxweTA6RixwdzpJLHBoOkx9fT1rZSh0LGksYSxvLHMscix7dGl0bGVCYW5kOmcsbGVnZW5kU2lkZVJlc2VydmVGcmFjOi4yMixsZWdlbmRSZXNlcnZlOngscGFkOnt0OmcuYmFuZEgrdytiLzIrMitOLHI6UytvKi4wNStNLGI6KHQuY2F0QXhpc0hpZGRlbj9zKi4wNDp3ZSh5KSkraytULGw6KHQudmFsQXhpc0hpZGRlbj9vKi4wNDpvKi4xMikrQStDfSxob25vclBsb3RBcmVhTWFudWFsTGF5b3V0OiEwfSk7aWYoSTw9MHx8TDw9MClyZXR1cm47dC5wbG90QXJlYUJnJiYoZS5maWxsU3R5bGU9YCMke3QucGxvdEFyZWFCZ31gLGUuZmlsbFJlY3QoUCxGLEksTCkpO2xldHttaW46UixtYXg6en09bS54LHttaW46ZWUsbWF4OkJ9PW0ueTt0LnZhbE1pbiE9bnVsbCYmKGVlPXQudmFsTWluKSx0LnZhbE1heCE9bnVsbCYmKEI9dC52YWxNYXgpO2xldCBWPXQudmFsQXhpc01pbm9yR3JpZGxpbmVzPT09ITB8fHQudmFsQXhpc01pbm9yVGlja01hcmshPW51bGwmJnQudmFsQXhpc01pbm9yVGlja01hcmshPT1gbm9uZWAsSD1YZSh7ZGF0YU1pbjplZSxkYXRhTWF4OkIsZXhwbGljaXRNaW46dC52YWxNaW4sZXhwbGljaXRNYXg6dC52YWxNYXgsYXhpc0xlblB0OkwvcixheGlzT3JpZW50YXRpb246YHZlcnRpY2FsYCxtYWpvclVuaXQ6dC52YWxBeGlzTWFqb3JVbml0LG1pbm9yVW5pdDp0LnZhbEF4aXNNaW5vclVuaXQsbmVlZE1pbm9yOlYsbG9nQmFzZTp0LnZhbEF4aXNMb2dCYXNlLHJldmVyc2VkOnFyKHQpfSk7ZWU9SC5taW4sQj1ILm1heDtsZXQgVT10LmNhdEF4aXNNaW5vckdyaWRsaW5lcz09PSEwfHx0LmNhdEF4aXNNaW5vclRpY2tNYXJrIT1udWxsJiZ0LmNhdEF4aXNNaW5vclRpY2tNYXJrIT09YG5vbmVgLHRlPVhlKHtkYXRhTWluOlIsZGF0YU1heDp6LGV4cGxpY2l0TWluOnQuY2F0QXhpc01pbixleHBsaWNpdE1heDp0LmNhdEF4aXNNYXgsYXhpc0xlblB0OkkvcixheGlzT3JpZW50YXRpb246YGhvcml6b250YWxgLG1ham9yVW5pdDp0LmNhdEF4aXNNYWpvclVuaXQsbWlub3JVbml0OnQuY2F0QXhpc01pbm9yVW5pdCxuZWVkTWlub3I6VSxsb2dCYXNlOnQuY2F0QXhpc0xvZ0Jhc2UscmV2ZXJzZWQ6SnIodCl9KTtSPXRlLm1pbix6PXRlLm1heDtsZXQgVz11P1hlKHtkYXRhTWluOmgueC5taW4sZGF0YU1heDpoLngubWF4LGV4cGxpY2l0TWluOnUubWluLGV4cGxpY2l0TWF4OnUubWF4LGF4aXNMZW5QdDpJL3IsYXhpc09yaWVudGF0aW9uOmBob3Jpem9udGFsYCxtYWpvclVuaXQ6dS5tYWpvclVuaXQsbWlub3JVbml0OnUubWlub3JVbml0LG5lZWRNaW5vcjp1Lm1pbm9yR3JpZGxpbmVzPT09ITB8fHUubWlub3JUaWNrTWFyayE9bnVsbCYmdS5taW5vclRpY2tNYXJrIT09YG5vbmVgLGxvZ0Jhc2U6dS5sb2dCYXNlLHJldmVyc2VkOnUub3JpZW50YXRpb249PT1gbWF4TWluYH0pOm51bGwsbmU9ZD9YZSh7ZGF0YU1pbjpoLnkubWluLGRhdGFNYXg6aC55Lm1heCxleHBsaWNpdE1pbjpkLm1pbixleHBsaWNpdE1heDpkLm1heCxheGlzTGVuUHQ6TC9yLGF4aXNPcmllbnRhdGlvbjpgdmVydGljYWxgLG1ham9yVW5pdDpkLm1ham9yVW5pdCxtaW5vclVuaXQ6ZC5taW5vclVuaXQsbmVlZE1pbm9yOmQubWlub3JHcmlkbGluZXM9PT0hMHx8ZC5taW5vclRpY2tNYXJrIT1udWxsJiZkLm1pbm9yVGlja01hcmshPT1gbm9uZWAsbG9nQmFzZTpkLmxvZ0Jhc2UscmV2ZXJzZWQ6ZC5vcmllbnRhdGlvbj09PWBtYXhNaW5gfSk6bnVsbCxHPWU9PlArdGUuZnJhY3Rpb24oZSkqSSxLPWU9PkYrTC1ILmZyYWN0aW9uKGUpKkwscT1lPT5QKyhXPy5mcmFjdGlvbihlKT8/MCkqSSxKPWU9PkYrTC0obmU/LmZyYWN0aW9uKGUpPz8wKSpMLFk9dGUubWFqb3JVbml0LHJlPUgubWFqb3JUaWNrcyxpZT1ILm1pbm9yVGlja3MsYWU9dGUubWFqb3JUaWNrcyxvZT10ZS5taW5vclRpY2tzLHNlPUYrTDtpZih0LmNhdEF4aXNDcm9zc2VzQXQhPW51bGwpc2U9dWEoSyh0LmNhdEF4aXNDcm9zc2VzQXQpLEYsRitMKTtlbHNle2xldCBlPXQuY2F0QXhpc0Nyb3NzZXM/P2BhdXRvWmVyb2A7ZT09PWBhdXRvWmVyb2AmJmVlPDAmJkI+MD9zZT11YShLKDApLEYsRitMKTplPT09YG1heGAmJihzZT1GKX1sZXQgY2U9UDtpZih0LnZhbEF4aXNDcm9zc2VzQXQhPW51bGwpY2U9dWEoRyh0LnZhbEF4aXNDcm9zc2VzQXQpLFAsUCtJKTtlbHNle2xldCBlPXQudmFsQXhpc0Nyb3NzZXM/P2BhdXRvWmVyb2A7ZT09PWBhdXRvWmVyb2AmJlI8MCYmej4wP2NlPXVhKEcoMCksUCxQK0kpOmU9PT1gbWF4YCYmKGNlPVArSSl9bGV0IGxlPXpyKHQscik7aWYoIXQudmFsQXhpc0hpZGRlbil7bGV0IG49dC52YWxBeGlzRm9udFNpemVIcHQ9PW51bGw/TWF0aC5tYXgoOCxNYXRoLm1pbigxMSxMLzIwKSk6bGkodC52YWxBeGlzRm9udFNpemVIcHQscyxyKSxpPXQudmFsQXhpc0ZvbnRTaXplSHB0PT1udWxsPzQ6RWUobik7ZS5mb250PXVyKG4sbHIodCx0LnZhbEF4aXNGb250RmFjZSxgbWlub3JgKSx0LnZhbEF4aXNGb250Qm9sZD8/ITEsdC52YWxBeGlzRm9udEl0YWxpYz8/ITEpO2xldCBhPXQudmFsQXhpc0xpbmVDb2xvcj9gIyR7dC52YWxBeGlzTGluZUNvbG9yfWA6dm9pZCAwLG89cnQodC52YWxBeGlzTGluZVdpZHRoRW11LHIpLGM9dC52YWxBeGlzTGluZUhpZGRlbj8wOkxyKHQudmFsQXhpc01ham9yVGlja01hcmssYG1ham9yYCxvLHIpO2lmKHQudmFsQXhpc01pbm9yR3JpZGxpbmVzKXtsZXQgbj1Ccih0LHIpO2ZvcihsZXQgdCBvZiBpZSlScihlLFAsSSxLKHQpLCExLG4pfWZvcihsZXQgbiBvZiByZSl7bGV0IHM9SyhuKTtpZihlLnN0cm9rZVN0eWxlPWxlLmNvbG9yLGUubGluZVdpZHRoPWxlLndpZHRoLFlyKHQpKXtsZXQgdD1sZS5kYXNoLmxlbmd0aD4wJiZlLmdldExpbmVEYXNoP2UuZ2V0TGluZURhc2goKTpbXTtsZS5kYXNoLmxlbmd0aD4wJiZlLnNldExpbmVEYXNoKGxlLmRhc2gpLGUuYmVnaW5QYXRoKCksZS5tb3ZlVG8oUCxzKSxlLmxpbmVUbyhQK0kscyksZS5zdHJva2UoKSxsZS5kYXNoLmxlbmd0aD4wJiZlLnNldExpbmVEYXNoKHQpfWlmKHQudmFsQXhpc1RpY2tMYWJlbFBvcyE9PWBub25lYCl7ZS5maWxsU3R5bGU9dC52YWxBeGlzRm9udENvbG9yP2AjJHt0LnZhbEF4aXNGb250Q29sb3J9YDpgIzU1NWA7bGV0IHI9dC52YWxBeGlzVGlja0xhYmVsUG9zPz9gbmV4dFRvYCxhO3I9PT1gaGlnaGA/KGUudGV4dEFsaWduPWBsZWZ0YCxhPVArSStpKTpyPT09YGxvd2A/KGUudGV4dEFsaWduPWByaWdodGAsYT1QLWkpOihlLnRleHRBbGlnbj1gcmlnaHRgLGE9Y2UtYy1pKSxlLnRleHRCYXNlbGluZT1gbWlkZGxlYCxlLmZpbGxUZXh0KFpyKHQsbiwhMSksYSxzKX1GcihlLHQudmFsQXhpc01ham9yVGlja01hcmssYHZhbGAsY2UscyxhLG8sITEsdC52YWxBeGlzTGluZUhpZGRlbixgbWFqb3JgLHIpfWlmKHQudmFsQXhpc01pbm9yVGlja01hcmsmJnQudmFsQXhpc01pbm9yVGlja01hcmshPT1gbm9uZWApZm9yKGxldCBuIG9mIGllKUZyKGUsdC52YWxBeGlzTWlub3JUaWNrTWFyayxgdmFsYCxjZSxLKG4pLGEsbywhMSx0LnZhbEF4aXNMaW5lSGlkZGVuLGBtaW5vcmAscil9aWYoIXQuY2F0QXhpc0hpZGRlbiYmVXIodCkmJlk+MCl7bGV0IG49V3IodCxyKTtlLnN0cm9rZVN0eWxlPW4uY29sb3IsZS5saW5lV2lkdGg9bi53aWR0aDtsZXQgaT1uLmRhc2gubGVuZ3RoPjAmJmUuZ2V0TGluZURhc2g/ZS5nZXRMaW5lRGFzaCgpOltdO24uZGFzaC5sZW5ndGg+MCYmZS5zZXRMaW5lRGFzaChuLmRhc2gpO2ZvcihsZXQgdCBvZiBhZSl7bGV0IG49Ryh0KTtlLmJlZ2luUGF0aCgpLGUubW92ZVRvKG4sRiksZS5saW5lVG8obixGK0wpLGUuc3Ryb2tlKCl9bi5kYXNoLmxlbmd0aD4wJiZlLnNldExpbmVEYXNoKGkpfWlmKCF0LmNhdEF4aXNIaWRkZW4mJnQuY2F0QXhpc01pbm9yR3JpZGxpbmVzJiZZPjApe2xldCBuPUdyKHQsciksaT1uLmRhc2gubGVuZ3RoPjAmJmUuZ2V0TGluZURhc2g/ZS5nZXRMaW5lRGFzaCgpOltdO2Uuc3Ryb2tlU3R5bGU9bi5jb2xvcixlLmxpbmVXaWR0aD1uLndpZHRoLG4uZGFzaC5sZW5ndGg+MCYmZS5zZXRMaW5lRGFzaChuLmRhc2gpO2ZvcihsZXQgdCBvZiBvZSl7bGV0IG49Ryh0KTtlLmJlZ2luUGF0aCgpLGUubW92ZVRvKG4sRiksZS5saW5lVG8obixGK0wpLGUuc3Ryb2tlKCl9bi5kYXNoLmxlbmd0aD4wJiZlLnNldExpbmVEYXNoKGkpfWlmKCF0LmNhdEF4aXNIaWRkZW4mJiF0LmNhdEF4aXNMaW5lSGlkZGVuJiYoZS5zYXZlKCksZS5zdHJva2VTdHlsZT10LmNhdEF4aXNMaW5lQ29sb3I/YCMke3QuY2F0QXhpc0xpbmVDb2xvcn1gOmAjODg4YCxlLmxpbmVXaWR0aD1ydCh0LmNhdEF4aXNMaW5lV2lkdGhFbXUsciksZS5saW5lQ2FwPWBidXR0YCxlLmJlZ2luUGF0aCgpLGUubW92ZVRvKFAsc2UpLGUubGluZVRvKFArSSxzZSksZS5zdHJva2UoKSxlLnJlc3RvcmUoKSksIXQudmFsQXhpc0hpZGRlbiYmIXQudmFsQXhpc0xpbmVIaWRkZW4mJihlLnNhdmUoKSxlLnN0cm9rZVN0eWxlPXQudmFsQXhpc0xpbmVDb2xvcj9gIyR7dC52YWxBeGlzTGluZUNvbG9yfWA6YCM4ODhgLGUubGluZVdpZHRoPXJ0KHQudmFsQXhpc0xpbmVXaWR0aEVtdSxyKSxlLmJlZ2luUGF0aCgpLGUubW92ZVRvKGNlLEYpLGUubGluZVRvKGNlLEYrTCksZS5zdHJva2UoKSxlLnJlc3RvcmUoKSksIXQuY2F0QXhpc0hpZGRlbil7bGV0IG49dC5jYXRBeGlzRm9udFNpemVIcHQ9PW51bGw/TWF0aC5tYXgoOCxNYXRoLm1pbigxMSxMLzIwKSk6bGkodC5jYXRBeGlzRm9udFNpemVIcHQscyxyKSxpPXQuY2F0QXhpc0ZvbnRTaXplSHB0PT1udWxsPzQ6VGUobik7ZS5mb250PXVyKG4sbHIodCx0LmNhdEF4aXNGb250RmFjZSxgbWlub3JgKSx0LmNhdEF4aXNGb250Qm9sZD8/ITEsdC5jYXRBeGlzRm9udEl0YWxpYz8/ITEpLGUuZmlsbFN0eWxlPXQuY2F0QXhpc0ZvbnRDb2xvcj9gIyR7dC5jYXRBeGlzRm9udENvbG9yfWA6YCM1NTVgLGUudGV4dEFsaWduPWBjZW50ZXJgO2xldCBhPXQuY2F0QXhpc1RpY2tMYWJlbFBvcz8/YG5leHRUb2Asbz1ydCh0LmNhdEF4aXNMaW5lV2lkdGhFbXUsciksYz10LmNhdEF4aXNMaW5lQ29sb3I/YCMke3QuY2F0QXhpc0xpbmVDb2xvcn1gOnZvaWQgMCxsPXQuY2F0QXhpc0xpbmVIaWRkZW4/MDpMcih0LmNhdEF4aXNNYWpvclRpY2tNYXJrLGBtYWpvcmAsbyxyKSx1PWE9PT1gbG93YD9GK0wraTphPT09YGhpZ2hgP0YtaTpzZStsK2k7ZS50ZXh0QmFzZWxpbmU9YT09PWBoaWdoYD9gYm90dG9tYDpgdG9wYDtmb3IobGV0IG4gb2YgYWUpe2xldCBpPUcobik7YSE9PWBub25lYCYmZS5maWxsVGV4dCgkcihuLHQuY2F0QXhpc0Zvcm1hdENvZGUsdC5kYXRlMTkwNCx0LmNhdEF4aXNEaXNwbGF5VW5pdHMpLGksdSksRnIoZSx0LmNhdEF4aXNNYWpvclRpY2tNYXJrLGBjYXRgLHNlLGksYyxvLCExLHQuY2F0QXhpc0xpbmVIaWRkZW4sYG1ham9yYCxyKX1pZih0LmNhdEF4aXNNaW5vclRpY2tNYXJrJiZ0LmNhdEF4aXNNaW5vclRpY2tNYXJrIT09YG5vbmVgKWZvcihsZXQgbiBvZiBvZSlGcihlLHQuY2F0QXhpc01pbm9yVGlja01hcmssYGNhdGAsc2UsRyhuKSxjLG8sITEsdC5jYXRBeGlzTGluZUhpZGRlbixgbWlub3JgLHIpfWxldCB1ZT10LmNoYXJ0VHlwZT09PWBidWJibGVgLGRlPXVlP2BtYXJrZXJgOnQuc2NhdHRlclN0eWxlPz9gbWFya2VyYDtpZihuYShlLHQsYyxmLEcsSyxuLFAsRixJLEwscix1ZSxkZSx7eDppLHk6YSx3Om8saDpzfSx0LnZhbEF4aXNEaXNwbGF5VW5pdHMpLGwubGVuZ3RoPjAmJlcmJm5lJiZuYShlLHQsbCxmLHEsSixuLFAsRixJLEwscix1ZSxkZSx7eDppLHk6YSx3Om8saDpzfSxkPy5kaXNwbGF5VW5pdHMpLHUmJlcmJiF1LmhpZGRlbil7bGV0IG49aXQodS5saW5lQ29sb3IsdS5saW5lV2lkdGhFbXUscik7dS5saW5lSGlkZGVufHwoZS5zdHJva2VTdHlsZT1uLmNvbG9yLGUubGluZVdpZHRoPW4ud2lkdGgsZS5iZWdpblBhdGgoKSxlLm1vdmVUbyhQLEYpLGUubGluZVRvKFArSSxGKSxlLnN0cm9rZSgpKTtsZXQgaT1oZSh1LmZvbnRTaXplSHB0LHIpPz95O2UuZm9udD11cihpLGxyKHQsdS5mb250RmFjZSxgbWlub3JgKSx1LmZvbnRCb2xkPz8hMSx1LmZvbnRJdGFsaWM/PyExKSxlLmZpbGxTdHlsZT11LmZvbnRDb2xvcj9gIyR7dS5mb250Q29sb3J9YDpgIzU1NWAsZS50ZXh0QWxpZ249YGNlbnRlcmAsZS50ZXh0QmFzZWxpbmU9YGJvdHRvbWA7bGV0IGE9dS5saW5lSGlkZGVuPzA6THIodS5tYWpvclRpY2tNYXJrLGBtYWpvcmAsbi53aWR0aCxyKTtmb3IobGV0IG8gb2YgVy5tYWpvclRpY2tzKXtsZXQgcz1xKG8pO3UudGlja0xhYmVsUG9zIT09YG5vbmVgJiZlLmZpbGxUZXh0KCRyKG8sdS5mb3JtYXRDb2RlLHQuZGF0ZTE5MDQsdS5kaXNwbGF5VW5pdHMpLHMsRi1hLVRlKGkpKSxGcihlLHUubWFqb3JUaWNrTWFyayxgY2F0YCxGLHMsbi5jb2xvcixuLndpZHRoLCEwLHUubGluZUhpZGRlbixgbWFqb3JgLHIpfWlmKHUubWlub3JUaWNrTWFyayYmdS5taW5vclRpY2tNYXJrIT09YG5vbmVgKWZvcihsZXQgdCBvZiBXLm1pbm9yVGlja3MpRnIoZSx1Lm1pbm9yVGlja01hcmssYGNhdGAsRixxKHQpLG4uY29sb3Isbi53aWR0aCwhMCx1LmxpbmVIaWRkZW4sYG1pbm9yYCxyKX1kJiZuZSYmeWkoZSx0LGQse21pbjpuZS5taW4sbWF4Om5lLm1heCxzdGVwOm5lLm1ham9yVW5pdCxtYWpvckxpbmVzOm5lLm1ham9yVGlja3MsbWlub3JUaWNrczpuZS5taW5vclRpY2tzLG1ha2VUb1k6KCk9Pkp9LEosbixQLEYsSSxMLHIsaGUoZC5mb250U2l6ZUhwdCxyKT8/YixNLHQudmFsQXhpc0ZvbnRDb2xvcj9gIyR7dC52YWxBeGlzRm9udENvbG9yfWA6YCM1NTVgLHQuZGF0ZTE5MDQpLFByKGUsdCx4LGksYSxvLHMsUCxGLEksTCxnLmJhbmRIKzIsciksZ3IoZSx0LGksYSxvLHMsUCxGLEksTCxDLFQsRCxPKX1mdW5jdGlvbiBpYShlLHQsbixyLGksYSxvLHMsYz0xKXtsZXQgbD1NYXRoLm1heCgyLGkqcyksdT1sLzIsZD1hLnN0YXJ0c1dpdGgoYCNgKT9hOmAjJHthfWAsZj1vP28uc3RhcnRzV2l0aChgI2ApP286YCMke299YDpudWxsO3N3aXRjaChlLnNhdmUoKSxlLmZpbGxTdHlsZT1kLGYmJihlLnN0cm9rZVN0eWxlPWYsZS5saW5lV2lkdGg9Yykscil7Y2FzZWBzcXVhcmVgOmUuZmlsbFJlY3QodC11LG4tdSxsLGwpLG8mJmUuc3Ryb2tlUmVjdCh0LXUsbi11LGwsbCk7YnJlYWs7Y2FzZWBkaWFtb25kYDplLmJlZ2luUGF0aCgpLGUubW92ZVRvKHQsbi11KSxlLmxpbmVUbyh0K3UsbiksZS5saW5lVG8odCxuK3UpLGUubGluZVRvKHQtdSxuKSxlLmNsb3NlUGF0aCgpLGUuZmlsbCgpLG8mJmUuc3Ryb2tlKCk7YnJlYWs7Y2FzZWB0cmlhbmdsZWA6ZS5iZWdpblBhdGgoKSxlLm1vdmVUbyh0LG4tdSksZS5saW5lVG8odCt1LG4rdSksZS5saW5lVG8odC11LG4rdSksZS5jbG9zZVBhdGgoKSxlLmZpbGwoKSxvJiZlLnN0cm9rZSgpO2JyZWFrO2Nhc2VgeGA6ZS5zdHJva2VTdHlsZT1kLGUubGluZVdpZHRoPU1hdGgubWF4KDEsbCouMTgpLGUuYmVnaW5QYXRoKCksZS5tb3ZlVG8odC11LG4tdSksZS5saW5lVG8odCt1LG4rdSksZS5tb3ZlVG8odC11LG4rdSksZS5saW5lVG8odCt1LG4tdSksZS5zdHJva2UoKTticmVhaztjYXNlYHBsdXNgOmUuc3Ryb2tlU3R5bGU9ZCxlLmxpbmVXaWR0aD1NYXRoLm1heCgxLGwqLjE4KSxlLmJlZ2luUGF0aCgpLGUubW92ZVRvKHQtdSxuKSxlLmxpbmVUbyh0K3UsbiksZS5tb3ZlVG8odCxuLXUpLGUubGluZVRvKHQsbit1KSxlLnN0cm9rZSgpO2JyZWFrO2Nhc2Vgc3RhcmA6ZS5iZWdpblBhdGgoKTtmb3IobGV0IHI9MDtyPDEwO3IrKyl7bGV0IGk9ciUyPT0wP3U6dSouNDUsYT0tTWF0aC5QSS8yK3IqTWF0aC5QSS81LG89dCtNYXRoLmNvcyhhKSppLHM9bitNYXRoLnNpbihhKSppO3I9PT0wP2UubW92ZVRvKG8scyk6ZS5saW5lVG8obyxzKX1lLmNsb3NlUGF0aCgpLGUuZmlsbCgpLG8mJmUuc3Ryb2tlKCk7YnJlYWs7Y2FzZWBkb3RgOmUuYmVnaW5QYXRoKCksZS5hcmModCxuLE1hdGgubWF4KDEsbCouMjUpLDAsTWF0aC5QSSoyKSxlLmZpbGwoKTticmVhaztjYXNlYGRhc2hgOntsZXQgcj1NYXRoLm1heCgxLGwqLjI1KTtlLmZpbGxSZWN0KHQtdSxuLXIvMixsLHIpO2JyZWFrfWRlZmF1bHQ6ZS5iZWdpblBhdGgoKSxlLmFyYyh0LG4sdSwwLE1hdGguUEkqMiksZS5maWxsKCksbyYmZS5zdHJva2UoKTticmVha31lLnJlc3RvcmUoKX1mdW5jdGlvbiBhYShlLHQsbixyLGksYSxvLHMpe2Uuc2F2ZSgpLGUuc3Ryb2tlU3R5bGU9bi5jb2xvcj9gIyR7bi5jb2xvcn1gOnMsZS5saW5lV2lkdGg9bi5saW5lV2lkdGhFbXU/TWF0aC5tYXgoLjUsbi5saW5lV2lkdGhFbXUvZXQpOjEsZS5zZXRMaW5lRGFzaChmYShuLmRhc2gsZS5saW5lV2lkdGgpKTtsZXQgYz1uLmJhclR5cGU9PT1gcGx1c2B8fG4uYmFyVHlwZT09PWBib3RoYCxsPW4uYmFyVHlwZT09PWBtaW51c2B8fG4uYmFyVHlwZT09PWBib3RoYCx1PW4uZGlyPT09YHhgLGQ9ZS5saW5lV2lkdGgvMjtmb3IobGV0IHM9MDtzPHQudmFsdWVzLmxlbmd0aDtzKyspe2xldCBmPXQudmFsdWVzW3NdO2lmKGY9PW51bGwpY29udGludWU7bGV0IHA9WGkocixzLGkpO2lmKHA9PW51bGwpY29udGludWU7bGV0IG09YShwKSxoPW8oZiksZz10PT57bGV0IHI9bSxpPWg7dT9yPWEocCt0KTppPW8oZit0KSxlLmJlZ2luUGF0aCgpLGUubW92ZVRvKG0saCksZS5saW5lVG8ocixpKSxlLnN0cm9rZSgpLG4ubm9FbmRDYXB8fChlLnNhdmUoKSxlLnNldExpbmVEYXNoKFtdKSxlLmJlZ2luUGF0aCgpLHU/KGUubW92ZVRvKHIsaS1kKSxlLmxpbmVUbyhyLGkrZCkpOihlLm1vdmVUbyhyLWQsaSksZS5saW5lVG8ocitkLGkpKSxlLnN0cm9rZSgpLGUucmVzdG9yZSgpKX07aWYoYyl7bGV0IGU9bi5wbHVzW3NdO2UhPW51bGwmJmcoZSl9aWYobCl7bGV0IGU9bi5taW51c1tzXTtlIT1udWxsJiZnKC1lKX19ZS5yZXN0b3JlKCl9ZnVuY3Rpb24gb2EoZSx0LG4scixpLGEsbyxzLGM9ITEsbD1gc2Fucy1zZXJpZmAsdT1gcmAsZD17eDotMWU2LHk6LTFlNix3OjJlNixoOjJlNn0sZj1kLHAsbSl7bGV0IGg9dC5kYXRhTGFiZWxPdmVycmlkZXM/P1tdLGc9b3IoaCk7aWYoaC5sZW5ndGg9PT0wJiYhdC5zZXJpZXNEYXRhTGFiZWxzKXJldHVybjtsZXQgXz10LnNlcmllc0RhdGFMYWJlbHM7Zm9yKGxldCBoPTA7aDx0LnZhbHVlcy5sZW5ndGg7aCsrKXtsZXQgdj10LnZhbHVlc1toXTtpZih2PT1udWxsKWNvbnRpbnVlO2xldCB5PVhpKG4saCxyKTtpZih5PT1udWxsKWNvbnRpbnVlO2xldCBiPWcuZ2V0KGgpO2lmKGI/LmRlbGV0ZWQpY29udGludWU7bGV0IHg9Yj8uc2hvd0NhdE5hbWU/P18/LnNob3dDYXROYW1lLFM9Yj8uc2hvd1Nlck5hbWU/P18/LnNob3dTZXJOYW1lLEM9Yj8uc2hvd1ZhbD8/Xz8uc2hvd1ZhbCx3PWFuKHtjdXN0b21UZXh0OmI/LnRleHQsc2hvd0NhdGVnb3J5OngmJiFyLHNob3dTZXJpZXM6UyxzaG93VmFsdWU6QyxjYXRlZ29yeTp5dCh5LHQuY2F0Rm9ybWF0Q29kZXM/LltoXT8/dC5jYXRGb3JtYXRDb2RlPz9udWxsLGMpLHNlcmllc05hbWU6dC5uYW1lLHNvdXJjZVZhbHVlOnYsdmFsdWVEaXZpc29yOlFyKG0pLGZvcm1hdENvZGU6Yj8uZm9ybWF0Q29kZT8/Xz8uZm9ybWF0Q29kZT8/bnVsbCxkYXRlMTkwNDpjLHNlcGFyYXRvcjpiPy5zZXBhcmF0b3I/P18/LnNlcGFyYXRvcn0pO2lmKCF3KWNvbnRpbnVlO2xldCBUPWI/LnBvc2l0aW9uPz9fPy5wb3NpdGlvbj8/dSxFPWhlKGI/LmZvbnRTaXplSHB0Pz9fPy5mb250U2l6ZUhwdCxzKT8/TWF0aC5tYXgoOSxNYXRoLm1pbigxMSxvLzI1KSksRD1iPy5mb250Q29sb3I/P18/LmZvbnRDb2xvcixPPWI/LmZvbnRCb2xkPz9fPy5mb250Qm9sZD8/ITEsaz1iPy5mb250RmFjZT8/Xz8uZm9udEZhY2UsQT1rJiZwP3Aoayk6bDtzYShlLGkoeSksYSh2KSx3LFQsRSxELE8sQSwwLGQsYj8ubWFudWFsTGF5b3V0LGYsYj8ucmljaFJ1bnMscyxwKX19ZnVuY3Rpb24gc2EoZSx0LG4scixpLGEsbyxzLGM9YHNhbnMtc2VyaWZgLGw9MCx1PXt4Oi0xZTYseTotMWU2LHc6MmU2LGg6MmU2fSxkLGY9dSxwLG09MSxoKXtlLnNhdmUoKSxlLmZvbnQ9YCR7cz9gYm9sZCBgOmBgfSR7YX1weCAke2N9YCxsYShlLHIse2tpbmQ6YHBvaW50YCx4OnQseTpuLHBvc2l0aW9uOmksbWFya2VyR2FwOmx9LHUsYSxvP2AjJHtvfWA6YCMzMzNgLGQsZixwJiZwLmxlbmd0aD4wP3tydW5zOnAscHRUb1B4Om0sZm9udEZhbWlseTpjLGZhbGxiYWNrQm9sZDpzLGZvbnRGYW1pbHlGb3JGYWNlOmh9OnZvaWQgMCksZS5yZXN0b3JlKCl9ZnVuY3Rpb24gY2EoZSx0LG4scixpKXtpZighKCF0Py50ZXh0fHwhdC5yaWNoUnVuc3x8dC5yaWNoUnVucy5sZW5ndGg9PT0wKSlyZXR1cm57cnVuczp0LnJpY2hSdW5zLHB0VG9QeDpuLGZvbnRGYW1pbHk6cixmYWxsYmFja0JvbGQ6aSxmb250RmFtaWx5Rm9yRmFjZTp0PT5scihlLHQsYG1pbm9yYCl9fWZ1bmN0aW9uIGxhKGUsdCxuLHIsaSxhLG8scz1yLGMpe2lmKCF0fHwhTnVtYmVyLmlzRmluaXRlKGkpfHxpPD0wKXJldHVybjtpZihjKXtsZXQgdD1RdChlLGMsaSxhKTtpZighdClyZXR1cm47bGV0IGw9Zm4obixyLHt3OnQud2lkdGgsaDp0LmhlaWdodH0saSxvLHMpO2lmKCFsKXJldHVybjtlLnNhdmUoKSxlLmJlZ2luUGF0aCgpLGUucmVjdChsLmNsaXAueCxsLmNsaXAueSxsLmNsaXAudyxsLmNsaXAuaCksZS5jbGlwKCksJHQoZSx0LGwueCxsLnksbC50ZXh0QWxpZ24sbC50ZXh0QmFzZWxpbmUpLGUucmVzdG9yZSgpO3JldHVybn1sZXQgbD1pKjEuMTUsdT1tbih0KS52YWx1ZS5zcGxpdCgvXHI/XG4vKSxkPWZuKG4scix7dzp1LnJlZHVjZSgodCxuKT0+TWF0aC5tYXgodCxlLm1lYXN1cmVUZXh0KG4pLndpZHRoKSwwKSxoOk1hdGgubWF4KGwsdS5sZW5ndGgqbCl9LGksbyxzKTtpZighZClyZXR1cm47bGV0IGY9dD0+ZS5tZWFzdXJlVGV4dCh0KS53aWR0aCxwPWhuKHQsZC5tYXhXaWR0aCxkLm1heEhlaWdodCxsLGYpO2lmKHAubGVuZ3RoPT09MHx8KGQ9Zm4obixyLHt3OnAucmVkdWNlKChlLHQpPT5NYXRoLm1heChlLGYodCkpLDApLGg6cC5sZW5ndGgqbH0saSxvLHMpLCFkKSlyZXR1cm47ZS5zYXZlKCksZS5iZWdpblBhdGgoKSxlLnJlY3QoZC5jbGlwLngsZC5jbGlwLnksZC5jbGlwLncsZC5jbGlwLmgpLGUuY2xpcCgpLGUuZmlsbFN0eWxlPWEsZS50ZXh0QWxpZ249ZC50ZXh0QWxpZ24sZS50ZXh0QmFzZWxpbmU9ZC50ZXh0QmFzZWxpbmU7bGV0IG09ZC50ZXh0QmFzZWxpbmU9PT1gbWlkZGxlYD9kLnktKHAubGVuZ3RoLTEpKmwvMjpkLnRleHRCYXNlbGluZT09PWBib3R0b21gP2QueS0ocC5sZW5ndGgtMSkqbDpkLnk7Zm9yKGxldCB0PTA7dDxwLmxlbmd0aDt0KyspZS5maWxsVGV4dChwW3RdLGQueCxtK3QqbCk7ZS5yZXN0b3JlKCl9ZnVuY3Rpb24gdWEoZSx0LG4pe3JldHVybiBlPHQ/dDplPm4/bjplfWZ1bmN0aW9uIGRhKGUsdCxuKXtpZih0Lmxlbmd0aCE9PTApaWYobiYmdC5sZW5ndGg+PTMpZm9yKGxldCBuPTA7bjx0Lmxlbmd0aC0xO24rKyl7bGV0IHI9dFtuLTFdPz90W25dLGk9dFtuXSxhPXRbbisxXSxvPXRbbisyXT8/YSxzPWkueCsoYS54LXIueCkvNixjPWkueSsoYS55LXIueSkvNixsPWEueC0oby54LWkueCkvNix1PWEueS0oby55LWkueSkvNjtlLmJlemllckN1cnZlVG8ocyxjLGwsdSxhLngsYS55KX1lbHNlIGZvcihsZXQgbj0xO248dC5sZW5ndGg7bisrKWUubGluZVRvKHRbbl0ueCx0W25dLnkpfWZ1bmN0aW9uIGZhKGUsdD0xKXtyZXR1cm4gT24oZT8/YHNvbGlkYCxOdW1iZXIuaXNGaW5pdGUodCkmJnQ+MD90OjEpfWZ1bmN0aW9uIHBhKGUpe3JldHVybiBlLm1hcmtlclN5bWJvbCE9bnVsbHx8ZS5tYXJrZXJTaXplIT1udWxsfHxlLm1hcmtlckZpbGwhPW51bGx8fGUubWFya2VyTGluZSE9bnVsbHx8ZS5tYXJrZXJMaW5lV2lkdGhFbXUhPW51bGx8fGUuZGF0YVBvaW50T3ZlcnJpZGVzIT1udWxsJiZlLmRhdGFQb2ludE92ZXJyaWRlcy5sZW5ndGg+MH1mdW5jdGlvbiBtYShlLHQsbixyLGksYSxvLHMpe2lmKG4uZGlyPT09YHhgKXJldHVybjtsZXQgYz1uLmJhclR5cGU9PT1gcGx1c2B8fG4uYmFyVHlwZT09PWBib3RoYCxsPW4uYmFyVHlwZT09PWBtaW51c2B8fG4uYmFyVHlwZT09PWBib3RoYDtlLnNhdmUoKSxlLnN0cm9rZVN0eWxlPW4uY29sb3I/YCMke24uY29sb3J9YDpzLGUubGluZVdpZHRoPW4ubGluZVdpZHRoRW11P01hdGgubWF4KC41LG4ubGluZVdpZHRoRW11L2V0KToxLGUuc2V0TGluZURhc2goZmEobi5kYXNoLGUubGluZVdpZHRoKSk7bGV0IHU9ZS5saW5lV2lkdGgvMjtmb3IobGV0IHM9MDtzPHI7cysrKXtpZih0LnZhbHVlc1tzXT09bnVsbCljb250aW51ZTtsZXQgcj1vKHMpLGQ9aShzKSxmPWEocikscD10PT57bGV0IGk9YShyK3QpO2UuYmVnaW5QYXRoKCksZS5tb3ZlVG8oZCxmKSxlLmxpbmVUbyhkLGkpLGUuc3Ryb2tlKCksbi5ub0VuZENhcHx8KGUuc2F2ZSgpLGUuc2V0TGluZURhc2goW10pLGUuYmVnaW5QYXRoKCksZS5tb3ZlVG8oZC11LGkpLGUubGluZVRvKGQrdSxpKSxlLnN0cm9rZSgpLGUucmVzdG9yZSgpKX07aWYoYyl7bGV0IGU9bi5wbHVzW3NdO2UhPW51bGwmJnAoZSl9aWYobCl7bGV0IGU9bi5taW51c1tzXTtlIT1udWxsJiZwKC1lKX19ZS5yZXN0b3JlKCl9ZnVuY3Rpb24gaGEoZSx0LG4scixpLGEsbyxzLGMsbCl7aWYoIWkmJm4uZGlyPT09YHhgfHxpJiZuLmRpcj09PWB5YClyZXR1cm47bGV0IHU9bi5iYXJUeXBlPT09YHBsdXNgfHxuLmJhclR5cGU9PT1gYm90aGAsZD1uLmJhclR5cGU9PT1gbWludXNgfHxuLmJhclR5cGU9PT1gYm90aGA7ZS5zYXZlKCksZS5zdHJva2VTdHlsZT1uLmNvbG9yP2AjJHtuLmNvbG9yfWA6YyxlLmxpbmVXaWR0aD1uLmxpbmVXaWR0aEVtdT9NYXRoLm1heCguNSxuLmxpbmVXaWR0aEVtdS9ldCpsKTpNYXRoLm1heCguNSxsKi43NSksZS5zZXRMaW5lRGFzaChmYShuLmRhc2gsZS5saW5lV2lkdGgpKTtsZXQgZj1NYXRoLm1heChlLmxpbmVXaWR0aC8yLDIqbCk7Zm9yKGxldCBjPTA7YzxyO2MrKyl7aWYodC52YWx1ZXNbY109PW51bGwpY29udGludWU7bGV0IHI9cyhjKSxsPWEoYykscD1vKHIpLG09dD0+e2xldCBhPW8ocit0KTtlLmJlZ2luUGF0aCgpLGk/KGUubW92ZVRvKHAsbCksZS5saW5lVG8oYSxsKSk6KGUubW92ZVRvKGwscCksZS5saW5lVG8obCxhKSksZS5zdHJva2UoKSxuLm5vRW5kQ2FwfHwoZS5zYXZlKCksZS5zZXRMaW5lRGFzaChbXSksZS5iZWdpblBhdGgoKSxpPyhlLm1vdmVUbyhhLGwtZiksZS5saW5lVG8oYSxsK2YpKTooZS5tb3ZlVG8obC1mLGEpLGUubGluZVRvKGwrZixhKSksZS5zdHJva2UoKSxlLnJlc3RvcmUoKSl9O2lmKHUpe2xldCBlPW4ucGx1c1tjXTtlIT1udWxsJiZtKGUpfWlmKGQpe2xldCBlPW4ubWludXNbY107ZSE9bnVsbCYmbSgtZSl9fWUucmVzdG9yZSgpfWZ1bmN0aW9uIGdhKGUsdCxuLHIsaSxhLG8scyxjLGwsdSxkPWBzYW5zLXNlcmlmYCxmPWB0YCxwPXt4Oi0xZTYseTotMWU2LHc6MmU2LGg6MmU2fSxtPXAsaCxnLF8sdil7bGV0IHk9dC5kYXRhTGFiZWxPdmVycmlkZXM/P1tdLGI9b3IoeSkseD10LnNlcmllc0RhdGFMYWJlbHM7aWYoeS5sZW5ndGg9PT0wJiYheClyZXR1cm4hMTtmb3IobGV0IHk9MDt5PHI7eSsrKXtpZih0LnZhbHVlc1t5XT09bnVsbCYmIXUpY29udGludWU7bGV0IHI9byh5KSxTPXQudmFsdWVzW3ldPz8wLEM9Yi5nZXQoeSk7aWYoQz8uZGVsZXRlZCljb250aW51ZTtsZXQgdz1DPy5zaG93Q2F0TmFtZT8/eD8uc2hvd0NhdE5hbWUsVD1DPy5zaG93U2VyTmFtZT8/eD8uc2hvd1Nlck5hbWUsRT1DPy5zaG93VmFsPz94Py5zaG93VmFsLEQ9Qz8uc2hvd1BlcmNlbnQ/P3g/LnNob3dQZXJjZW50LE89YW4oe2N1c3RvbVRleHQ6Qz8udGV4dCxzaG93Q2F0ZWdvcnk6dyxzaG93U2VyaWVzOlQsc2hvd1ZhbHVlOkUsc2hvd1BlcmNlbnQ6RCxjYXRlZ29yeTpuW3ldPz9gYCxzZXJpZXNOYW1lOnQubmFtZSxzb3VyY2VWYWx1ZTpTLHZhbHVlRGl2aXNvcjpRcih2KSxwZXJjZW50UmF0aW86aD8uKHkpLGZvcm1hdENvZGU6Qz8uZm9ybWF0Q29kZT8/eD8uZm9ybWF0Q29kZT8/bnVsbCxkYXRlMTkwNDpsLHNlcGFyYXRvcjpDPy5zZXBhcmF0b3I/P3g/LnNlcGFyYXRvcn0pO2lmKCFPKWNvbnRpbnVlO2xldCBrPUM/LnBvc2l0aW9uPz94Py5wb3NpdGlvbj8/ZixBPWhlKEM/LmZvbnRTaXplSHB0Pz94Py5mb250U2l6ZUhwdCxjKT8/TWF0aC5tYXgoOSxNYXRoLm1pbigxMSxzLzI1KSksaj1DPy5mb250Q29sb3I/P3g/LmZvbnRDb2xvcixNPUM/LmZvbnRCb2xkPz94Py5mb250Qm9sZD8/ITEsTj1DPy5mb250RmFjZT8/eD8uZm9udEZhY2UsUD1OJiZfP18oTik6ZDtzYShlLGkoeSksYShyKSxPLGssQSxqLE0sUCxnPy4oeSk/PzAscCxDPy5tYW51YWxMYXlvdXQsbSxDPy5yaWNoUnVucyxjLF8pfXJldHVybiEwfWZ1bmN0aW9uIF9hKGUsdCl7cmV0dXJuIGU/LmNoYXJ0ZXhGb3JtYXRJZHg/P3R9ZnVuY3Rpb24gdmEoZSx0LG4scixpLGEsbyxzLGMpe2lmKCF0KXJldHVybiBudWxsO2xldCBsPXQuc2VyaWVzRGF0YUxhYmVscyx1PW8uZ2V0KG4pO2lmKHU/LmRlbGV0ZWR8fCFsJiYhdSYmIWEudmlzaWJsZSlyZXR1cm4gbnVsbDtsZXQgZD10eXBlb2Ygcz09YGJvb2xlYW5gP3M6ITEsZj10eXBlb2Ygcz09YG51bWJlcmA/czp2b2lkIDAscD0hZCYmKHU/LnNob3dWYWw/P2w/LnNob3dWYWw/P2Euc2hvd1ZhbCksbT11Py5zaG93Q2F0TmFtZT8/bD8uc2hvd0NhdE5hbWU/P2Euc2hvd0NhdE5hbWUsaD11Py5zaG93U2VyTmFtZT8/bD8uc2hvd1Nlck5hbWU/P2Euc2hvd1Nlck5hbWU/PyExLGc9dT8uc2hvd1BlcmNlbnQ/P2w/LnNob3dQZXJjZW50Pz9hLnNob3dQZXJjZW50Pz8hMSxfPXU/LmZvcm1hdENvZGU/P2w/LmZvcm1hdENvZGU/P2UuZGF0YUxhYmVsRm9ybWF0Q29kZT8/bnVsbCx2PWFuKHtjdXN0b21UZXh0OnU/LnRleHQsc2hvd0NhdGVnb3J5Om0sc2hvd1NlcmllczpoLHNob3dWYWx1ZTpwLHNob3dQZXJjZW50OmcsY2F0ZWdvcnk6cixzZXJpZXNOYW1lOnQubmFtZSxzb3VyY2VWYWx1ZTppLHZhbHVlRGl2aXNvcjpRcihjKSxwZXJjZW50UmF0aW86Zixmb3JtYXRDb2RlOl8/P3QudmFsRm9ybWF0Q29kZT8/bnVsbCxwZXJjZW50Rm9ybWF0Q29kZTpfPz9gMCVgLGRhdGUxOTA0OmUuZGF0ZTE5MDQsc2VwYXJhdG9yOnU/LnNlcGFyYXRvcj8/bD8uc2VwYXJhdG9yfSk7cmV0dXJuIHY/e3RleHQ6dixwb3NpdGlvbjp1Py5wb3NpdGlvbj8/bD8ucG9zaXRpb24sZm9udENvbG9yOnU/LmZvbnRDb2xvcj8/bD8uZm9udENvbG9yLGZvbnRTaXplSHB0OnU/LmZvbnRTaXplSHB0Pz9sPy5mb250U2l6ZUhwdCxmb250Qm9sZDp1Py5mb250Qm9sZD8/bD8uZm9udEJvbGQsZm9udEZhY2U6dT8uZm9udEZhY2U/P2w/LmZvbnRGYWNlLG1hbnVhbExheW91dDp1Py5tYW51YWxMYXlvdXR9Om51bGx9ZnVuY3Rpb24geWEoZSx0LG4scixpKXtsZXQgYT1uPT09YGZpbGxgP3Q/LmZpbGxDb2xvcnM6dD8ubGluZUNvbG9ycztyZXR1cm4gYT8ubGVuZ3RoP2FbKChuPT09YGZpbGxgP3Q/LmZpbGxDb2xvckluZGV4OnQ/LmxpbmVDb2xvckluZGV4KT8/ciklYS5sZW5ndGhdPz9udWxsOm51bGx9ZnVuY3Rpb24gYmEoZSx0LG4scil7aWYoIXQubGVuZ3RoKXJldHVybiBudWxsO2xldCBpPWUuY2hhcnRleENvbG9yU3R5bGVNZXRob2Q7cmV0dXJuIGk9PT1gd2l0aGluTGluZWFyYHx8aT09PWBhY3Jvc3NMaW5lYXJgfHxpPT09YHdpdGhpbkxpbmVhclJldmVyc2VkYHx8aT09PWBhY3Jvc3NMaW5lYXJSZXZlcnNlZGA/dFtpPT09YHdpdGhpbkxpbmVhcmB8fGk9PT1gd2l0aGluTGluZWFyUmV2ZXJzZWRgPzA6biV0Lmxlbmd0aF0/P251bGw6dFtuJXQubGVuZ3RoXT8/bnVsbH1mdW5jdGlvbiB4YShlLHQsbil7cmV0dXJuKGUuY2hhcnRleENvbG9yUGFsZXR0ZT9iYShlLGUuY2hhcnRleENvbG9yUGFsZXR0ZSx0LG4pOm51bGwpPz9lLmNoYXJ0ZXhBY2NlbnRzPy5bdCUoZS5jaGFydGV4QWNjZW50cy5sZW5ndGh8fDEpXT8/aXJbdCVpci5sZW5ndGhdfWZ1bmN0aW9uIFNhKGUsdCxuLHIpe3JldHVybiB5YShlLHIsYGZpbGxgLHQsbik/P3lhKGUsZS5jaGFydGV4RGF0YVBvaW50U3R5bGUsYGZpbGxgLHQsbik/P3hhKGUsdCxuKX1mdW5jdGlvbiBDYShlLHQpe2xldCBuPWU/LmZpbGxQYWludHM7cmV0dXJuIG4/Lmxlbmd0aD9uWyhlPy5maWxsQ29sb3JJbmRleD8/dCklbi5sZW5ndGhdPz9udWxsOm51bGx9ZnVuY3Rpb24gd2EoZSx0LG4scil7aWYoIXQpcmV0dXJuO2lmKHQuZmlsbEhpZGRlbilyZXR1cm4gdC5maWxsTm9TdHlsZT92b2lkIDA6bnVsbDtsZXQgaT1DYSh0LG4pO2lmKGkpcmV0dXJuIGk7bGV0IGE9eWEoZSx0LGBmaWxsYCxuLHIpO3JldHVybiBhP3tmaWxsVHlwZTpgc29saWRgLGNvbG9yOmF9OnZvaWQgMH1mdW5jdGlvbiBUYShlLHQsbixyLGksYT1lLmNoYXJ0ZXhEYXRhUG9pbnRTdHlsZSl7bGV0IG89cj8uZmlsbEhpZGRlbj92b2lkIDA6d2EoZSxyLHQsbik7aWYobyE9PXZvaWQgMClyZXR1cm4gbztpZihyJiZpKXJldHVybntmaWxsVHlwZTpgc29saWRgLGNvbG9yOml9O2xldCBzPXdhKGUsYSx0LG4pO3JldHVybiBzPT09dm9pZCAwP2k/e2ZpbGxUeXBlOmBzb2xpZGAsY29sb3I6aX06e2ZpbGxUeXBlOmBzb2xpZGAsY29sb3I6eGEoZSx0LG4pfTpzfWZ1bmN0aW9uIEVhKGUsdCxuLHIsaSxhLG8scz0wKXtyZXR1cm4gdC5maWxsVHlwZT09PWBzb2xpZGA/dC5jb2xvci5zdGFydHNXaXRoKGAjYCk/dC5jb2xvcjpgIyR7dC5jb2xvcn1gOkxuKHQsZSxuLHIsaSxhLHMpPz9vfWZ1bmN0aW9uIERhKGUsdCxuLHIsaSxhLG89e30pe2xldCBzPSh0LG4pPT4oe3Zpc2libGU6dD8ubGluZUhpZGRlbiE9PSEwLGNvbG9yOnlhKGUsdCxgbGluZWAscixpKT8/bix3aWR0aEVtdTp0Py5saW5lV2lkdGhFbXU/P251bGwsZGFzaDp0Py5saW5lRGFzaD8/bnVsbCxjYXA6dD8ubGluZUNhcD8/bnVsbCxqb2luOnQ/LmxpbmVKb2luPz9udWxsfSksYz1uPy5jaGFydGV4U3R5bGU7aWYoKGM/LmxpbmVIaWRkZW4hPW51bGx8fGM/LmxpbmVDb2xvcnM/LnNvbWUoQm9vbGVhbil8fGM/LmxpbmVXaWR0aEVtdSE9bnVsbHx8Yz8ubGluZURhc2ghPW51bGx8fGM/LmxpbmVDYXAhPW51bGx8fGM/LmxpbmVKb2luIT1udWxsKSYmIShjPy5saW5lSGlkZGVuJiZjLmxpbmVOb1N0eWxlKSl7bGV0IGU9cyhjLG4/LmxpbmVDb2xvcj8/YSk7cmV0dXJuIGUud2lkdGhFbXU/Pz1uPy5saW5lV2lkdGhFbXU/P251bGwsZX1yZXR1cm4gbj8ubGluZUhpZGRlbiE9bnVsbHx8bj8ubGluZUNvbG9yIT1udWxsfHxuPy5saW5lV2lkdGhFbXUhPW51bGw/e3Zpc2libGU6bj8ubGluZUhpZGRlbiE9PSEwLGNvbG9yOm4/LmxpbmVDb2xvcj8/YSx3aWR0aEVtdTpuPy5saW5lV2lkdGhFbXU/P251bGwsZGFzaDpudWxsLGNhcDpudWxsLGpvaW46bnVsbH06dD8ubGluZU5vU3R5bGUmJm8ubGlua2VkTm9TdHlsZUZhbGxiYWNrP3MobnVsbCxhKTpzKHQsYSl9ZnVuY3Rpb24gT2EoZSx0LG4pe3JldHVybiB0LnZpc2libGU/KGUuc3Ryb2tlU3R5bGU9dC5jb2xvci5zdGFydHNXaXRoKGAjYCk/dC5jb2xvcjpgIyR7dC5jb2xvcn1gLGUubGluZVdpZHRoPXQud2lkdGhFbXU9PW51bGw/MTpydCh0LndpZHRoRW11LG4pLGUuc2V0TGluZURhc2goZmEodC5kYXNoPz92b2lkIDAsZS5saW5lV2lkdGgpKSxlLmxpbmVDYXA9dC5jYXA9PT1gcm5kYD9gcm91bmRgOnQuY2FwPT09YHNxYD9gc3F1YXJlYDpgYnV0dGAsZS5saW5lSm9pbj10LmpvaW49PT1gcm91bmRgfHx0LmpvaW49PT1gYmV2ZWxgP3Quam9pbjpgbWl0ZXJgLCEwKTohMX1mdW5jdGlvbiBrYShlLHQsbixyLGksYSxvLHMsYz17fSl7cmV0dXJuIE9hKGUsRGEodCxuLHIsaSxhLG8sYykscyl9ZnVuY3Rpb24gQWEoZSx0LG4scixpLGEsbyxzPSExLGM9ITApe2xldCBsPURhKGUscixuLGksYSxvLHtsaW5rZWROb1N0eWxlRmFsbGJhY2s6c30pO3JldHVybntuYW1lOnQsdmFsdWVzOltdLGNvbG9yOm8ucmVwbGFjZSgvXiMvLGBgKSxsaW5lSGlkZGVuOiFjfHwhbC52aXNpYmxlLGxpbmVDb2xvcjpjJiZsLnZpc2libGU/bC5jb2xvci5yZXBsYWNlKC9eIy8sYGApOm51bGwsbGluZVdpZHRoRW11OmM/bC53aWR0aEVtdTpudWxsLGNoYXJ0ZXhTdHlsZTp7bGluZURhc2g6Yz9sLmRhc2g6bnVsbCxsaW5lQ2FwOmM/bC5jYXA6bnVsbCxsaW5lSm9pbjpjP2wuam9pbjpudWxsfX19Y29uc3QgamE9MWU0LE1hPW5ldyBTZXQoW2BjbHVzdGVyZWRCYXJgLGBjbHVzdGVyZWRCYXJIYCxgc3RhY2tlZEJhcmAsYHN0YWNrZWRCYXJIYCxgc3RhY2tlZEJhclBjdGAsYHN0YWNrZWRCYXJIUGN0YCxgY2x1c3RlcmVkQ29sdW1uYCxgbGluZWAsYHN0YWNrZWRMaW5lYCxgc3RhY2tlZExpbmVQY3RgLGBhcmVhYCxgc3RhY2tlZEFyZWFgLGBzdGFja2VkQXJlYVBjdGAsYHBpZWAsYGRvdWdobnV0YCxgcmFkYXJgLGBzY2F0dGVyYCxgYnViYmxlYCxgc3RvY2tgLGBzdXJmYWNlYF0pO2Z1bmN0aW9uIE5hKGUpe2lmKCFNYS5oYXMoZS5jaGFydFR5cGUpKXJldHVybiBudWxsO2xldCB0PTA7Zm9yKGxldCBuIG9mIGUuc2VyaWVzKXtsZXQgcj0wO2ZvcihsZXQgZSBvZiBuLmVyckJhcnM/P1tdKXI9TWF0aC5tYXgocixlLnBsdXMubGVuZ3RoLGUubWludXMubGVuZ3RoKTtsZXQgaT1NYXRoLm1heCgxLGUuY2F0ZWdvcmllcy5sZW5ndGgsbi5jYXRlZ29yaWVzPy5sZW5ndGg/PzAsbi52YWx1ZXMubGVuZ3RoLG4uYnViYmxlU2l6ZXM/Lmxlbmd0aD8/MCxuLmRhdGFQb2ludE92ZXJyaWRlcz8ubGVuZ3RoPz8wLG4uZGF0YUxhYmVsT3ZlcnJpZGVzPy5sZW5ndGg/PzAsbi50cmVuZExpbmVzPy5sZW5ndGg/PzAscik7aWYoIU51bWJlci5pc1NhZmVJbnRlZ2VyKGkpfHxpPmphLXQpcmV0dXJuIGphKzE7dCs9aX1yZXR1cm4gdH1mdW5jdGlvbiBQYShlLHQpe2lmKCFlLnRocmVlRHx8IXR8fCFuZXcgU2V0KFtgcGllYCxgbGluZWAsYHN0YWNrZWRMaW5lYCxgc3RhY2tlZExpbmVQY3RgLGBhcmVhYCxgc3RhY2tlZEFyZWFgLGBzdGFja2VkQXJlYVBjdGAsYGNsdXN0ZXJlZEJhcmAsYGNsdXN0ZXJlZEJhckhgLGBzdGFja2VkQmFyYCxgc3RhY2tlZEJhckhgLGBzdGFja2VkQmFyUGN0YCxgc3RhY2tlZEJhckhQY3RgXSkuaGFzKGUuY2hhcnRUeXBlKSlyZXR1cm4gbnVsbDtsZXQgbj0wO2ZvcihsZXQgdCBvZiBlLnNlcmllcyl7bGV0IHI9TWF0aC5tYXgoMSx0LnZhbHVlcy5sZW5ndGgsdC5jYXRlZ29yaWVzPy5sZW5ndGg/PzApLGk9dC50aHJlZURTaGFwZT8/ZS50aHJlZUQuc2hhcGU/P2Bib3hgLGE9ZS5jaGFydFR5cGU9PT1gcGllYD8zNjplLmNoYXJ0VHlwZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGBiYXJgKT9pPT09YGJveGA/NDozNjplLmNoYXJ0VHlwZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGBhcmVhYCk/NDp0LnNtb290aD09PSEwPzI1OjM7aWYoIU51bWJlci5pc1NhZmVJbnRlZ2VyKHIpfHxyPk1hdGguZmxvb3IoamEvYSl8fChuKz1yKmEsbj5qYSkpcmV0dXJuIGphKzF9cmV0dXJuIG59ZnVuY3Rpb24gRmEoZSx0LG4pe3JldHVybiBuPD1qYT8hMTooZS5maWxsU3R5bGU9YCM4ODhgLGUuZm9udD1gMTJweCBzYW5zLXNlcmlmYCxlLnRleHRBbGlnbj1gY2VudGVyYCxlLnRleHRCYXNlbGluZT1gbWlkZGxlYCxlLmZpbGxUZXh0KGAodG9vIG1hbnkgZGF0YSBwb2ludHMpYCx0LngrdC53LzIsdC55K3QuaC8yKSwhMCl9ZnVuY3Rpb24gSWEoZSx0LG4scil7bGV0IGk9dC5zZXJpZXNbMF07aWYoIWkpcmV0dXJuO2xldCBhPUl0KGkudmFsdWVzLHQuY2hhcnRleEhpc3RvZ3JhbUJpbm5pbmc/P3t9KTtpZihhLmtpbmQ9PT1gdG9vTWFueUlucHV0UG9pbnRzYCl7RmEoZSxuLGphKzEpO3JldHVybn1qaShlLHsuLi50LGNoYXJ0VHlwZTpgY2x1c3RlcmVkQmFyYCxjYXRlZ29yaWVzOmEuY2F0ZWdvcmllcyxzZXJpZXM6W3suLi5pLGNhdGVnb3JpZXM6dm9pZCAwLHZhbHVlczphLmNvdW50c31dfSxuLHIse2dhcFBvbGljeTpgY2hhcnRleGB9KX1mdW5jdGlvbiBMYShlLHQsbixyLGkpe2xldHt4OmEseTpvLHc6cyxoOmN9PW4sbD10LnNlcmllc1swXT8udmFsdWVzPz9bXSx1PXQuY2F0ZWdvcmllcyxkPU1hdGgubWF4KGwubGVuZ3RoLHUubGVuZ3RoKTtpZihkPT09MHx8RmEoZSxuLGQpKXJldHVybjtsZXQgZj1uZXcgU2V0KHQuc3VidG90YWxJbmRpY2VzKSxwPSExLG09KGUsdCk9PntsZXQgbj1lK3Q7cmV0dXJuIE51bWJlci5pc0Zpbml0ZShuKT9uOihwPSEwLG48MD8tTnVtYmVyLk1BWF9WQUxVRTpOdW1iZXIuTUFYX1ZBTFVFKX0saD0wLGc9W10sXz0tMS8wLHY9MDtmb3IobGV0IGU9MDtlPGQ7ZSsrKXtsZXQgdD1sW2VdLG49dCE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKHQpLHI9dD09bnVsbHx8bixpPW4/dDowO2lmKGYuaGFzKGUpKXtsZXQgZT17c3RhcnQ6MCxlbmQ6aSxpc1N1YjohMCxpc1BvczohMCxoYXNWYWx1ZTpuLHBhaW50U2xvdDpyfTtnLnB1c2goZSksciYmKF89TWF0aC5tYXgoXyxlLnN0YXJ0LGUuZW5kKSx2PU1hdGgubWluKHYsZS5zdGFydCxlLmVuZCkpLG4mJihoPWkpfWVsc2V7bGV0IGU9bShoLGkpLHQ9e3N0YXJ0Omk+PTA/aDplLGVuZDppPj0wP2U6aCxpc1N1YjohMSxpc1BvczppPj0wLGhhc1ZhbHVlOm4scGFpbnRTbG90OnJ9O2cucHVzaCh0KSxyJiYoXz1NYXRoLm1heChfLHQuc3RhcnQsdC5lbmQpLHY9TWF0aC5taW4odix0LnN0YXJ0LHQuZW5kKSksbiYmKGg9ZSl9fWlmKHApe2UuZmlsbFN0eWxlPWAjODg4YCxlLmZvbnQ9YDEycHggc2Fucy1zZXJpZmAsZS50ZXh0QWxpZ249YGNlbnRlcmAsZS50ZXh0QmFzZWxpbmU9YG1pZGRsZWAsZS5maWxsVGV4dChgKGNoYXJ0IHZhbHVlcyBvdXQgb2YgcmFuZ2UpYCxhK3MvMixvK2MvMik7cmV0dXJufWlmKF88PXYpcmV0dXJuO2xldCB5PWYuc2l6ZT09PTAmJmcuZXZlcnkoKGUsdCk9PiFlLmhhc1ZhbHVlfHxsW3RdPj0wKSxiPSF0LnZhbEF4aXNIaWRkZW4mJnQudmFsQXhpc1RpY2tMYWJlbFBvcyE9PWBub25lYCYmIXkseD13aShlLHQscyxjLHIpLFM9U2UodCxzLGMsciksQz1saSh0LnZhbEF4aXNGb250U2l6ZUhwdCxjLHIpLHc9bGkodC5jYXRBeGlzRm9udFNpemVIcHQsYyxyKSxUPWxyKHQsdC52YWxBeGlzRm9udEZhY2UsYG1pbm9yYCksRT1scih0LHQuY2F0QXhpc0ZvbnRGYWNlLGBtaW5vcmApLEQ9bmkodCx2LF8sYy9yKTtlLnNhdmUoKTtsZXQgTz0wO2lmKGIpe2UuZm9udD11cihDLFQsdC52YWxBeGlzRm9udEJvbGQ/PyExLHQudmFsQXhpc0ZvbnRJdGFsaWM/PyExKTtsZXQgbj0wO2ZvcihsZXQgciBvZiBELm1ham9yTGluZXMpbj1NYXRoLm1heChuLGUubWVhc3VyZVRleHQoWnIodCxyLCExKSkud2lkdGgpO089bis4fWxldCBrPU1hdGgubWF4KDEscy1TLnZhbEJhbmRXLU8tcyouMDIpL2Q7ZS5mb250PXVyKHcsRSx0LmNhdEF4aXNGb250Qm9sZD8/ITEsdC5jYXRBeGlzRm9udEl0YWxpYz8/ITEpO2xldCBBPXUuc2xpY2UoMCxkKS5tYXAobj0+dWkoZSxidChuLHQuY2F0QXhpc0Zvcm1hdENvZGUsdC5kYXRlMTkwNCksTWF0aC5tYXgoMSxrLTgpKSksaj0wO2ZvcihsZXQgZSBvZiBBKWUuc29tZShCb29sZWFuKSYmKGo9TWF0aC5tYXgoaixlLmxlbmd0aCkpO2xldCBNPXQuY2F0QXhpc0hpZGRlbnx8aj09PTA/MDpqKih3KzIpKzQsTj10LnNlcmllc1swXSxQPW9yKE4/LmRhdGFMYWJlbE92ZXJyaWRlcyksRj1OPy5jaGFydGV4U3R5bGUsST1gIyR7Tj8uY29sb3I/P1NhKHQsMCwzLEYpfWAsTD1gIyR7U2EodCwxLDMsRil9YCxSPWAjJHtTYSh0LDIsMyxGKX1gLHo9VGEodCwwLDMsRixOPy5jb2xvciksZWU9VGEodCwxLDMsRiksQj1UYSh0LDIsMyxGKSxWPXsuLi50LGNoYXJ0VHlwZTpgY2x1c3RlcmVkQmFyYCxzZXJpZXM6W0FhKHQsYEluY3JlYXNlYCxOLHQuY2hhcnRleERhdGFQb2ludFN0eWxlLDAsMyxJKSxBYSh0LGBEZWNyZWFzZWAsTix0LmNoYXJ0ZXhEYXRhUG9pbnRTdHlsZSwxLDMsTCksQWEodCxgVG90YWxgLE4sdC5jaGFydGV4RGF0YVBvaW50U3R5bGUsMiwzLFIpXX0sSD1qcihlLFYscyxjLC4yMixyKSx7bGVnUmlnaHRXOlUsbGVnTGVmdFc6dGUsbGVnVG9wSDpXLGxlZ0JvdHRvbUg6bmV9PXllKEgpLEc9a2UodCxhLG8scyxjLHIse3RpdGxlQmFuZDp4LGxlZ2VuZFNpZGVSZXNlcnZlRnJhYzowLGxlZ2VuZFJlc2VydmU6SCxwYWQ6e3Q6eC5iYW5kSCtXK0MvMisyLHI6VStzKi4wMixiOm5lK1MuY2F0QmFuZEgrTSxsOnRlK1MudmFsQmFuZFcrKHQudmFsQXhpc0hpZGRlbj9zKi4wMjpNYXRoLm1heChzKi4wMyxPKSl9fSk7RWkoZSx0LGEsbyxzLGMsbytHLnRpdGxlLnRvcFBhZCxHLnRpdGxlLmZvbnRQeCk7bGV0e3B4MDpLLHB5MDpxLHB3OkoscGg6WX09Ry5wbG90UmVjdCxyZT1uaSh0LHYsXyxZL3IpLGllPWU9PnErWS1yZS5mcmFjKGUpKlksYWU9aXQodC52YWxBeGlzTGluZUNvbG9yLHQudmFsQXhpc0xpbmVXaWR0aEVtdSxyKSxvZT1pdCh0LmNhdEF4aXNMaW5lQ29sb3IsdC5jYXRBeGlzTGluZVdpZHRoRW11LHIpLHNlPXpyKHQscik7aWYoIXQudmFsQXhpc0hpZGRlbil7ZS5mb250PXVyKEMsVCx0LnZhbEF4aXNGb250Qm9sZD8/ITEsdC52YWxBeGlzRm9udEl0YWxpYz8/ITEpLGUuZmlsbFN0eWxlPXQudmFsQXhpc0ZvbnRDb2xvcj9gIyR7dC52YWxBeGlzRm9udENvbG9yfWA6YCM1OTU5NTlgLGUudGV4dEFsaWduPWByaWdodGAsZS50ZXh0QmFzZWxpbmU9YG1pZGRsZWA7bGV0IG49QnIodCxyKTtmb3IobGV0IHQgb2YgcmUubWlub3JMaW5lcylScihlLEssSixpZSh0KSwhMSxuKTtmb3IobGV0IG4gb2YgcmUubWFqb3JMaW5lcyl7bGV0IGk9aWUobik7aWYoWXIodCkpe2Uuc3Ryb2tlU3R5bGU9c2UuY29sb3IsZS5saW5lV2lkdGg9c2Uud2lkdGg7bGV0IHQ9c2UuZGFzaC5sZW5ndGg+MCYmZS5nZXRMaW5lRGFzaD9lLmdldExpbmVEYXNoKCk6W107c2UuZGFzaC5sZW5ndGg+MCYmZS5zZXRMaW5lRGFzaChzZS5kYXNoKSxlLmJlZ2luUGF0aCgpLGUubW92ZVRvKEssaSksZS5saW5lVG8oSytKLGkpLGUuc3Ryb2tlKCksc2UuZGFzaC5sZW5ndGg+MCYmZS5zZXRMaW5lRGFzaCh0KX1iJiZlLmZpbGxUZXh0KFpyKHQsbiwhMSksSy00LGkpLEZyKGUsdC52YWxBeGlzTWFqb3JUaWNrTWFyayxgdmFsYCxLLGksYWUuY29sb3IsYWUud2lkdGgsITEsdC52YWxBeGlzTGluZUhpZGRlbixgbWFqb3JgLHIpfWZvcihsZXQgbiBvZiByZS5taW5vclRpY2tzKUZyKGUsdC52YWxBeGlzTWlub3JUaWNrTWFyayxgdmFsYCxLLGllKG4pLGFlLmNvbG9yLGFlLndpZHRoLCExLHQudmFsQXhpc0xpbmVIaWRkZW4sYG1pbm9yYCxyKX1sZXQgY2U9IXQudmFsQXhpc0hpZGRlbiYmIXQudmFsQXhpc0xpbmVIaWRkZW4sbGU9IXQuY2F0QXhpc0hpZGRlbiYmIXQuY2F0QXhpc0xpbmVIaWRkZW47Y2UmJihlLnN0cm9rZVN0eWxlPWFlLmNvbG9yLGUubGluZVdpZHRoPWFlLndpZHRoLGUuYmVnaW5QYXRoKCksZS5tb3ZlVG8oSyxxKSxlLmxpbmVUbyhLLHErWSksZS5zdHJva2UoKSksbGUmJihlLnN0cm9rZVN0eWxlPW9lLmNvbG9yLGUubGluZVdpZHRoPW9lLndpZHRoLGUuYmVnaW5QYXRoKCksZS5tb3ZlVG8oSyxxK1kpLGUubGluZVRvKEsrSixxK1kpLGUuc3Ryb2tlKCkpO2xldCB1ZT1KL2QsZGU9dWUvKDErTXQodC5iYXJHYXBXaWR0aCxgY2hhcnRleGApLzEwMCk7Zy5mb3JFYWNoKChuLGYpPT57bGV0IHA9Syt1ZSpmKyh1ZS1kZSkvMixtPU1hdGgubWluKGllKG4uc3RhcnQpLGllKG4uZW5kKSksaD1NYXRoLm1heChpZShuLnN0YXJ0KSxpZShuLmVuZCkpLF89TWF0aC5tYXgoMSxoLW0pLHY9bi5pc1N1Yj9COm4uaXNQb3M/ejplZSx5PW4uaXNTdWI/UjpuLmlzUG9zP0k6TDtuLnBhaW50U2xvdCYmdiYmKGUuZmlsbFN0eWxlPUVhKGUsdixwLG0sZGUsXyx5LGkpLGUuZmlsbFJlY3QocCxtLGRlLF8pKTtsZXQgYj1uLmlzU3ViPzI6KyFuLmlzUG9zLHg9eWEodCx0LmNoYXJ0ZXhEYXRhUG9pbnRTdHlsZSxgbGluZWAsYiwzKTtpZihuLnBhaW50U2xvdCYma2EoZSx0LHQuY2hhcnRleERhdGFQb2ludFN0eWxlLE4sYiwzLHg/YCMke3h9YDp5LHIpJiZlLnN0cm9rZVJlY3QocCxtLGRlLF8pLG4ucGFpbnRTbG90JiZnW2YrMV0/LnBhaW50U2xvdCYmZjxkLTEmJnQuY2hhcnRleENvbm5lY3RvckxpbmVzIT09ITEpe2xldCBpPUsrdWUqKGYrMSkrKHVlLWRlKS8yLGE9bi5pc1Bvcz9tOmg7ZS5zYXZlKCk7bGV0IG89RGEodCx0LmNoYXJ0ZXhTZXJpZXNMaW5lU3R5bGUsTixiLDMsYCMwMDAwMDBgLHtsaW5rZWROb1N0eWxlRmFsbGJhY2s6ITB9KTtPYShlLG8scikmJihvLndpZHRoRW11Pz8oZS5saW5lV2lkdGg9Ljc1KnIpLGUuYmVnaW5QYXRoKCksZS5tb3ZlVG8ocCtkZSxhKSxlLmxpbmVUbyhpLGEpLGUuc3Ryb2tlKCkpLGUucmVzdG9yZSgpfWxldCBTPW4uaGFzVmFsdWU/bFtmXTowLEM9dmEodCxOLGYsdVtmXT8/YGAsUyx7dmlzaWJsZTp0LnNob3dEYXRhTGFiZWxzLHNob3dWYWw6ITAsc2hvd0NhdE5hbWU6ITF9LFAsIW4uaGFzVmFsdWUpO2lmKEMpe2xldCBuPU4/LmRhdGFMYWJlbENvbG9ycz8uW2ZdPz9DLmZvbnRDb2xvcj8/bnVsbCxpPW4/YCMke259YDp0LmRhdGFMYWJlbEZvbnRDb2xvcj9gIyR7dC5kYXRhTGFiZWxGb250Q29sb3J9YDpgIzU5NTk1OWAsbD1oZShDLmZvbnRTaXplSHB0LHIpPz9saSh0LmRhdGFMYWJlbEZvbnRTaXplSHB0LGMsciksdT1DLmZvbnRCb2xkPz90LmRhdGFMYWJlbEZvbnRCb2xkPz8hMSxkPWxyKHQsQy5mb250RmFjZT8/dC5kYXRhTGFiZWxGb250RmFjZSxgbWlub3JgKTtlLmZvbnQ9YCR7dT9gYm9sZCBgOmBgfSR7bH1weCAke2R9YCxsYShlLEMudGV4dCx7a2luZDpgYmFyYCxyZWN0Ont4OnAseTptLHc6ZGUsaDpffSxvcmllbnRhdGlvbjpgdmVydGljYWxgLG5lZ2F0aXZlOlM8MCxwb3NpdGlvbjpDLnBvc2l0aW9uPz9gb3V0RW5kYH0se3g6Syx5OnEsdzpKLGg6WX0sbCxpLEMubWFudWFsTGF5b3V0LHt4OmEseTpvLHc6cyxoOmN9KX19KSxlLnRleHRBbGlnbj1gY2VudGVyYCxlLnRleHRCYXNlbGluZT1gdG9wYCxlLmZpbGxTdHlsZT10LmNhdEF4aXNGb250Q29sb3I/YCMke3QuY2F0QXhpc0ZvbnRDb2xvcn1gOmAjNTk1OTU5YCxlLmZvbnQ9dXIodyxFLHQuY2F0QXhpc0ZvbnRCb2xkPz8hMSx0LmNhdEF4aXNGb250SXRhbGljPz8hMSk7bGV0IGZlPXErWSs0O2ZvcihsZXQgbj0wO248ZCYmIXQuY2F0QXhpc0hpZGRlbjtuKyspe2xldCB0PUsrdWUqbit1ZS8yOyhBW25dPz9bXSkuZm9yRWFjaCgobixyKT0+biYmZS5maWxsVGV4dChuLHQsZmUrcioodysyKSkpfWdyKGUsdCxhLG8scyxjLEsscSxKLFksdGUsbmUsUy5jYXRGb250UHgsUy52YWxGb250UHgpLFByKGUsVixILGEsbyxzLGMsSyxxLEosWSx4LmJhbmRIKzIscixbeixlZSxCXSxpKSxlLnJlc3RvcmUoKX1mdW5jdGlvbiBSYShlLHQsbixyLGkpe2xldCBhPXQuc2VyaWVzWzBdPy52YWx1ZXM/P1tdLG89TWF0aC5tYXgoYS5sZW5ndGgsdC5jYXRlZ29yaWVzLmxlbmd0aCk7aWYobz09PTB8fEZhKGUsbixvKSlyZXR1cm47bGV0IHM9MDtmb3IobGV0IGU9MDtlPG87ZSsrKXM9TWF0aC5tYXgocyxhW2VdPz8wKTtpZighKHM+MCkpcmV0dXJuO2xldHt4OmMseTpsLHc6dSxoOmR9PW4sZj13aShlLHQsdSxkLHIpLHA9dC5zZXJpZXNbMF0sbT1vcihwPy5kYXRhTGFiZWxPdmVycmlkZXMpLGg9YCMke3A/LmNvbG9yPz9TYSh0LDAsMSxwPy5jaGFydGV4U3R5bGUpfWAsZz1UYSh0LDAsMSxwPy5jaGFydGV4U3R5bGUscD8uY29sb3IpLF89ey4uLnQsc2VyaWVzOltBYSh0LHA/Lm5hbWU/P2BgLHAsdC5jaGFydGV4RGF0YVBvaW50U3R5bGUsMCwxLGgpXX0sdj1qcihlLF8sdSxkLC4yMixyKSx7bGVnUmlnaHRXOnksbGVnTGVmdFc6YixsZWdUb3BIOngsbGVnQm90dG9tSDpTfT15ZSh2KSxDPWxpKHQuY2F0QXhpc0ZvbnRTaXplSHB0LGQscik7ZS5zYXZlKCksZS5mb250PXVyKEMsbHIodCx0LmNhdEF4aXNGb250RmFjZSxgbWlub3JgKSx0LmNhdEF4aXNGb250Qm9sZD8/ITEsdC5jYXRBeGlzRm9udEl0YWxpYz8/ITEpO2xldCB3PTA7aWYoIXQuY2F0QXhpc0hpZGRlbil7Zm9yKGxldCBuPTA7bjxNYXRoLm1pbihvLHQuY2F0ZWdvcmllcy5sZW5ndGgpO24rKyl3PU1hdGgubWF4KHcsZS5tZWFzdXJlVGV4dCh0LmNhdGVnb3JpZXNbbl0pLndpZHRoKTt0LmNhdGVnb3JpZXMubGVuZ3RoPjAmJih3Kz0xMCl9bGV0IFQ9a2UodCxjLGwsdSxkLHIse3RpdGxlQmFuZDpmLGxlZ2VuZFNpZGVSZXNlcnZlRnJhYzouMjIsbGVnZW5kUmVzZXJ2ZTp2LHBhZDp7dDpmLmJhbmRIK3grMixyOnkrdSouMDIsYjpTK2QqLjAyLGw6Yit3K3UqLjAyfX0pO0VpKGUsdCxjLGwsdSxkLGwrVC50aXRsZS50b3BQYWQsVC50aXRsZS5mb250UHgpO2xldHtweDA6RSxweTA6RCxwdzpPLHBoOmt9PVQucGxvdFJlY3QsQT1rL28saj1BLygxK010KHQuYmFyR2FwV2lkdGgsYGNoYXJ0ZXhgKS8xMDApO2ZvcihsZXQgbj0wO248bztuKyspe2xldCBvPU1hdGgubWF4KDAsYVtuXT8/MCksZj1PKm8vcyxfPUUrKE8tZikvMix2PUQrQSpuKyhBLWopLzI7ZyYmKGUuZmlsbFN0eWxlPUVhKGUsZyxfLHYsZixqLGgsaSksZS5maWxsUmVjdChfLHYsZixqKSksa2EoZSx0LHQuY2hhcnRleERhdGFQb2ludFN0eWxlLHAsMCwxLGgscikmJmUuc3Ryb2tlUmVjdChfLHYsZixqKTtsZXQgeT10LmNhdGVnb3JpZXNbbl07IXQuY2F0QXhpc0hpZGRlbiYmeSE9bnVsbCYmKGUuZmlsbFN0eWxlPXQuY2F0QXhpc0ZvbnRDb2xvcj9gIyR7dC5jYXRBeGlzRm9udENvbG9yfWA6YCM1OTU5NTlgLGUudGV4dEFsaWduPWByaWdodGAsZS50ZXh0QmFzZWxpbmU9YG1pZGRsZWAsZS5maWxsVGV4dCh5LEUtNix2K2ovMikpO2xldCBiPXZhKHQscCxuLHk/P2BgLG8se3Zpc2libGU6ITEsc2hvd1ZhbDohMSxzaG93Q2F0TmFtZTohMX0sbSk7aWYoYil7bGV0IG49aGUoYi5mb250U2l6ZUhwdCxyKT8/bGkodC5kYXRhTGFiZWxGb250U2l6ZUhwdCxkLHIpLGk9bHIodCxiLmZvbnRGYWNlPz90LmRhdGFMYWJlbEZvbnRGYWNlLGBtaW5vcmApO2UuZm9udD1gJHtiLmZvbnRCb2xkP2Bib2xkIGA6YGB9JHtufXB4ICR7aX1gLGxhKGUsYi50ZXh0LHtraW5kOmBiYXJgLHJlY3Q6e3g6Xyx5OnYsdzpmLGg6an0sb3JpZW50YXRpb246YGhvcml6b250YWxgLG5lZ2F0aXZlOiExLHBvc2l0aW9uOmIucG9zaXRpb24/P2BjdHJgfSx7eDpFLHk6RCx3Ok8saDprfSxuLGIuZm9udENvbG9yP2AjJHtiLmZvbnRDb2xvcn1gOmAjZmZmZmZmYCxiLm1hbnVhbExheW91dCx7eDpjLHk6bCx3OnUsaDpkfSl9fWlmKCF0LmNhdEF4aXNIaWRkZW4mJiF0LmNhdEF4aXNMaW5lSGlkZGVuKXtsZXQgbj1pdCh0LmNhdEF4aXNMaW5lQ29sb3IsdC5jYXRBeGlzTGluZVdpZHRoRW11LHIpO2Uuc3Ryb2tlU3R5bGU9bi5jb2xvcixlLmxpbmVXaWR0aD1uLndpZHRoLGUuYmVnaW5QYXRoKCksZS5tb3ZlVG8oRSxEKSxlLmxpbmVUbyhFLEQrayksZS5zdHJva2UoKX1QcihlLF8sdixjLGwsdSxkLEUsRCxPLGssZi5iYW5kSCsyLHIsW2ddLGkpLGUucmVzdG9yZSgpfWZ1bmN0aW9uIHphKGUsdCxuLHIpe2xldCBpPXQuc2VyaWVzWzBdO2lmKCFpfHxGYShlLG4sTWF0aC5tYXgodC5jYXRlZ29yaWVzLmxlbmd0aCxpLmNhdGVnb3JpZXM/Lmxlbmd0aD8/MCxpLnZhbHVlcy5sZW5ndGgpKSlyZXR1cm47bGV0IGE9R3QoaSx0LmNhdGVnb3JpZXMpO2lmKGEucG9pbnRzLmxlbmd0aD09PTApcmV0dXJuO2xldCBvPV9hKGksMCkscz1EYSh0LHQuY2hhcnRleERhdGFQb2ludExpbmVTdHlsZSxpLG8sMSxhcigwLGkpLHtsaW5rZWROb1N0eWxlRmFsbGJhY2s6ITB9KTtNaShlLHsuLi50LGNoYXJ0VHlwZTpgbGluZWAsY2F0ZWdvcmllczphLmNhdGVnb3JpZXMsc2VyaWVzOlt7Li4uYS5zZXJpZXMsc2hvd01hcmtlcjohMSxsaW5lSGlkZGVuOiFzLnZpc2libGUsbGluZUNvbG9yOnMuY29sb3IucmVwbGFjZSgvXiMvLGBgKSxsaW5lV2lkdGhFbXU6cy53aWR0aEVtdSxjaGFydGV4U3R5bGU6e2xpbmVEYXNoOnMuZGFzaCxsaW5lQ2FwOnMuY2FwLGxpbmVKb2luOnMuam9pbn19XSxjYXRBeGlzSGlkZGVuOiExLGNhdEF4aXNUaWNrTGFiZWxQb3M6YG5vbmVgLHNob3dMZWdlbmQ6ITEsdmFsTWluOnQudmFsTWluPz8wLHZhbE1heDp0LnZhbE1heD8/MS4yLHZhbEF4aXNNYWpvclVuaXQ6dC52YWxBeGlzTWFqb3JVbml0Pz8uMn0sbixyKX1mdW5jdGlvbiBCYShlLHQsbixyKXtsZXQgaT10LnNlcmllc1swXTtpZighaXx8RmEoZSxuLE1hdGgubWF4KHQuY2F0ZWdvcmllcy5sZW5ndGgsaS5jYXRlZ29yaWVzPy5sZW5ndGg/PzAsaS52YWx1ZXMubGVuZ3RoKSkpcmV0dXJuO2xldCBhPUd0KGksdC5jYXRlZ29yaWVzKTtpZihhLnBvaW50cy5sZW5ndGg9PT0wKXJldHVybjtsZXQgbz10LnNlcmllcy5maW5kKGU9PmUuc2VyaWVzVHlwZT09PWBsaW5lYCkscz1vPy5jaGFydGV4Rm9ybWF0SWR4Pz9pLmNoYXJ0ZXhGb3JtYXRJZHg/PzAsYz17Li4ubz8/YS5zZXJpZXMsbmFtZTpvPy5uYW1lfHxgQ3VtdWxhdGl2ZSAlYCx2YWx1ZXM6YS5zZXJpZXMudmFsdWVzLGNhdGVnb3JpZXM6YS5jYXRlZ29yaWVzLGNvbG9yOm8/LmNvbG9yPz95YSh0LHQuY2hhcnRleERhdGFQb2ludExpbmVTdHlsZSxgbGluZWAscywxKT8/aS5saW5lQ29sb3I/P2kuY29sb3Isc2VyaWVzVHlwZTpgbGluZWAsdXNlU2Vjb25kYXJ5QXhpczohMCxzaG93TWFya2VyOiExfSxsPXttaW46dC5zZWNvbmRhcnlWYWxBeGlzPy5taW4/PzAsbWF4OnQuc2Vjb25kYXJ5VmFsQXhpcz8ubWF4Pz8xLHRpdGxlOnQuc2Vjb25kYXJ5VmFsQXhpcz8udGl0bGU/P251bGwsaGlkZGVuOnQuc2Vjb25kYXJ5VmFsQXhpcz8uaGlkZGVuPz8hMSxmb3JtYXRDb2RlOnQuc2Vjb25kYXJ5VmFsQXhpcz8uZm9ybWF0Q29kZT8/YDAlYCxmb250Q29sb3I6dC5zZWNvbmRhcnlWYWxBeGlzPy5mb250Q29sb3I/P251bGwsZm9udFNpemVIcHQ6dC5zZWNvbmRhcnlWYWxBeGlzPy5mb250U2l6ZUhwdD8/bnVsbCxmb250RmFjZTp0LnNlY29uZGFyeVZhbEF4aXM/LmZvbnRGYWNlPz9udWxsLGxpbmVDb2xvcjp0LnNlY29uZGFyeVZhbEF4aXM/LmxpbmVDb2xvcj8/bnVsbCxsaW5lV2lkdGhFbXU6dC5zZWNvbmRhcnlWYWxBeGlzPy5saW5lV2lkdGhFbXU/P251bGwsbGluZUhpZGRlbjp0LnNlY29uZGFyeVZhbEF4aXM/LmxpbmVIaWRkZW4/PyExLG1ham9yVGlja01hcms6dC5zZWNvbmRhcnlWYWxBeGlzPy5tYWpvclRpY2tNYXJrPz9gb3V0YCxtaW5vclRpY2tNYXJrOnQuc2Vjb25kYXJ5VmFsQXhpcz8ubWlub3JUaWNrTWFyaz8/bnVsbCxtYWpvclVuaXQ6dC5zZWNvbmRhcnlWYWxBeGlzPy5tYWpvclVuaXQ/P251bGwsbWlub3JVbml0OnQuc2Vjb25kYXJ5VmFsQXhpcz8ubWlub3JVbml0Pz9udWxsLHRpdGxlRm9udFNpemVIcHQ6dC5zZWNvbmRhcnlWYWxBeGlzPy50aXRsZUZvbnRTaXplSHB0Pz9udWxsLHRpdGxlRm9udEJvbGQ6dC5zZWNvbmRhcnlWYWxBeGlzPy50aXRsZUZvbnRCb2xkPz9udWxsLHRpdGxlRm9udENvbG9yOnQuc2Vjb25kYXJ5VmFsQXhpcz8udGl0bGVGb250Q29sb3I/P251bGwsdGl0bGVGb250RmFjZTp0LnNlY29uZGFyeVZhbEF4aXM/LnRpdGxlRm9udEZhY2U/P251bGx9O2ppKGUsey4uLnQsY2hhcnRUeXBlOmBjbHVzdGVyZWRCYXJgLGNhdGVnb3JpZXM6YS5jYXRlZ29yaWVzLHNlcmllczpbey4uLmEub3JkZXJlZFNlcmllcyxzZXJpZXNUeXBlOm51bGwsdXNlU2Vjb25kYXJ5QXhpczohMX0sY10sc2Vjb25kYXJ5VmFsQXhpczpsfSxuLHIse2dhcFBvbGljeTpgY2hhcnRleGAsc2VtYW50aWNMaW5lTm9TdHlsZUZhbGxiYWNrOiEwfSl9ZnVuY3Rpb24gVmEoZSx0LG4scil7bGV0IGk9KHI/P3QpLShuPz9lKTtpZighKGk+MCl8fCFOdW1iZXIuaXNGaW5pdGUoaSkpcmV0dXJuIG51bGw7bGV0IGE9TGUoaSw3KTtpZighKGE+MCl8fCFOdW1iZXIuaXNGaW5pdGUoYSkpcmV0dXJuIG51bGw7bGV0IG89ZS1pKi4wNSxzPXQraSouMDU7ZT49MCYmKGU9PT0wfHx0PjEuMiplKSYmKG89MCksdDw9MCYmKHQ9PT0wfHxNYXRoLmFicyhlKT4xLjIqTWF0aC5hYnModCkpJiYocz0wKTtsZXQgYz1uPz9NYXRoLmZsb29yKG8vYSkqYSxsPXI/P01hdGguY2VpbChzL2EpKmE7cmV0dXJuIVtjLGxdLmV2ZXJ5KE51bWJlci5pc0Zpbml0ZSl8fCEobD5jKT9udWxsOnttaW46YyxtYXg6bCxtYWpvclVuaXQ6YX19ZnVuY3Rpb24gSGEoZSx0LG4scixpKXtsZXQgYT0zKnIvMixvPTMqcixzPXQuY2hhcnRleEJveDtpZighc3x8cy5jYXRlZ29yaWVzLmxlbmd0aD09PTB8fHMuc2VyaWVzLmxlbmd0aD09PTApcmV0dXJuO2xldHt4OmMseTpsLHc6dSxoOmR9PW47aWYoRmEoZSxuLFZ0KHMuc2VyaWVzLm1hcChlPT5lLnZhbHVlc0J5Q2F0ZWdvcnkpLGphKSkpcmV0dXJuO2xldCBmPSgpPT57ZS5maWxsU3R5bGU9YCM4ODhgLGUuZm9udD1gMTJweCBzYW5zLXNlcmlmYCxlLnRleHRBbGlnbj1gY2VudGVyYCxlLnRleHRCYXNlbGluZT1gbWlkZGxlYCxlLmZpbGxUZXh0KGAoY2hhcnQgdmFsdWVzIG91dCBvZiByYW5nZSlgLGMrdS8yLGwrZC8yKX0scD1lPT57bGV0IHQ9ZS5tYXgtZS5taW4sbj10L2Uuc3RlcDtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKGUubWluKSYmTnVtYmVyLmlzRmluaXRlKGUubWF4KSYmTnVtYmVyLmlzRmluaXRlKGUuc3RlcCkmJk51bWJlci5pc0Zpbml0ZSh0KSYmTnVtYmVyLmlzRmluaXRlKG4pJiZlLm1heD5lLm1pbiYmZS5zdGVwPjAmJm48PTFlMyYmZS5taW4rZS5zdGVwPmUubWlufSxtPTEvMCxoPS0xLzA7Zm9yKGxldCBlIG9mIHMuc2VyaWVzKWZvcihsZXQgdCBvZiBlLnZhbHVlc0J5Q2F0ZWdvcnkpZm9yKGxldCBlIG9mIHQpTnVtYmVyLmlzRmluaXRlKGUpJiYoZTxtJiYobT1lKSxlPmgmJihoPWUpKTtpZighaXNGaW5pdGUobSl8fCFpc0Zpbml0ZShoKSlyZXR1cm47aWYoIU51bWJlci5pc0Zpbml0ZShoLW0pKXtmKCk7cmV0dXJufWxldCBnPXQudmFsQXhpc01ham9yVW5pdD09bnVsbD9WYShtLGgsdC52YWxNaW4sdC52YWxNYXgpOm51bGwsXz1nP3suLi50LHZhbE1pbjpnLm1pbix2YWxNYXg6Zy5tYXgsdmFsQXhpc01ham9yVW5pdDpnLm1ham9yVW5pdH06dCx2PWxyKHQsdC52YWxBeGlzRm9udEZhY2UsYG1pbm9yYCkseT1saSh0LnZhbEF4aXNGb250U2l6ZUhwdCxkLHIpLGI9RWUoeSkseD1BaShyKSxTPXFlKHtkYXRhTWluOm0sZGF0YU1heDpoLGV4cGxpY2l0TWluOl8udmFsTWluLGV4cGxpY2l0TWF4Ol8udmFsTWF4LGF4aXNMZW5QdDpkL3IsbWFqb3JVbml0Ol8udmFsQXhpc01ham9yVW5pdH0pO2lmKCFwKHttaW46Uy5taW4sbWF4OlMubWF4LHN0ZXA6Uy5tYWpvclVuaXR9KSl7ZigpO3JldHVybn1sZXQgQz0wO2lmKCF0LnZhbEF4aXNIaWRkZW4pe2xldCBuPWUuZm9udDtlLmZvbnQ9dXIoeSx2LHQudmFsQXhpc0ZvbnRCb2xkPz8hMSx0LnZhbEF4aXNGb250SXRhbGljPz8hMSk7bGV0IGk9MDtmb3IobGV0IG4gb2YgUy5tYWpvclRpY2tzKXtsZXQgcj1acih0LG4sITEpO2k9TWF0aC5tYXgoaSxlLm1lYXN1cmVUZXh0KHIpLndpZHRoKX1lLmZvbnQ9bixDPWkrYitQZSpyfWxldCB3PXdpKGUsdCx1LGQsciksVD1saSh0LmNhdEF4aXNGb250U2l6ZUhwdCxkLHIpLEU9bGkodC52YWxBeGlzRm9udFNpemVIcHQsZCxyKSxEPVNlKHQsdSxkLHIpLE89cy5zZXJpZXMubGVuZ3RoLGs9cy5zZXJpZXMubWFwKChlLHQpPT5fYShlLHQpKSxBPXMuc2VyaWVzLm1hcCgoZSxuKT0+e2xldCByPWtbbl0saT1lLmNvbG9yPz9TYSh0LHIsTyxlLmNoYXJ0ZXhTdHlsZSk7cmV0dXJuIEFhKHQsZS5uYW1lLGUsdC5jaGFydGV4RGF0YVBvaW50U3R5bGUscixPLGksITApfSksaj17Li4udCxzZXJpZXM6QX0sTT1qcihlLGosdSxkLC4yMixyKSx7bGVnUmlnaHRXOk4sbGVnTGVmdFc6UCxsZWdUb3BIOkYsbGVnQm90dG9tSDpJfT15ZShNKSxMPWtlKHQsYyxsLHUsZCxyLHt0aXRsZUJhbmQ6dyxsZWdlbmRTaWRlUmVzZXJ2ZUZyYWM6LjIyLGxlZ2VuZFJlc2VydmU6TSxwYWQ6e3Q6dy5iYW5kSCtGK0UvMisyLHI6Tit1Ki4wMixiOkkrRC5jYXRCYW5kSCsodC5jYXRBeGlzSGlkZGVuP2QqLjAyOndlKFQpKSxsOlArRC52YWxCYW5kVysodC52YWxBeGlzSGlkZGVuP3UqLjAyOkMpfX0pLHtweDA6UixweTA6eixwdzplZSxwaDpCfT1MLnBsb3RSZWN0LFY9cy5jYXRlZ29yaWVzLEg9Vi5sZW5ndGgsVT1uaShfLG0saCxCL3IpO2lmKCFwKFUpKXtmKCk7cmV0dXJufUVpKGUsdCxjLGwsdSxkLGwrTC50aXRsZS50b3BQYWQsTC50aXRsZS5mb250UHgpO2xldHttaW46dGUsbWF4Old9PVUsbmU9Vy10ZSxHPWU9PnorQiooMS0oZS10ZSkvbmUpLEs9aXQodC52YWxBeGlzTGluZUNvbG9yLHQudmFsQXhpc0xpbmVXaWR0aEVtdSxyKSxxPXpyKHQscik7aWYoZS5zYXZlKCksIXQudmFsQXhpc0hpZGRlbil7aWYoZS5mb250PXVyKHksdix0LnZhbEF4aXNGb250Qm9sZD8/ITEsdC52YWxBeGlzRm9udEl0YWxpYz8/ITEpLGUudGV4dEFsaWduPWByaWdodGAsZS50ZXh0QmFzZWxpbmU9YG1pZGRsZWAsdC52YWxBeGlzTWlub3JHcmlkbGluZXMpe2xldCBuPUJyKHQscik7Zm9yKGxldCB0IG9mIFUubWlub3JMaW5lcylScihlLFIsZWUsRyh0KSwhMSxuKX1mb3IobGV0IG4gb2YgVS5tYWpvckxpbmVzKXtsZXQgaT1HKG4pO2lmKHQudmFsQXhpc01ham9yR3JpZGxpbmVzIT09ITEpe2Uuc3Ryb2tlU3R5bGU9cS5jb2xvcixlLmxpbmVXaWR0aD1xLndpZHRoO2xldCB0PXEuZGFzaC5sZW5ndGg+MCYmZS5nZXRMaW5lRGFzaD9lLmdldExpbmVEYXNoKCk6W107cS5kYXNoLmxlbmd0aD4wJiZlLnNldExpbmVEYXNoKHEuZGFzaCksZS5iZWdpblBhdGgoKSxlLm1vdmVUbyhSLGkpLGUubGluZVRvKFIrZWUsaSksZS5zdHJva2UoKSxxLmRhc2gubGVuZ3RoPjAmJmUuc2V0TGluZURhc2godCl9ZS5maWxsU3R5bGU9dC52YWxBeGlzRm9udENvbG9yP2AjJHt0LnZhbEF4aXNGb250Q29sb3J9YDpgIzU5NTk1OWAsZS5maWxsVGV4dChacih0LG4sITEpLFIteCxpKSxGcihlLHQudmFsQXhpc01ham9yVGlja01hcmssYHZhbGAsUixpLEsuY29sb3IsSy53aWR0aCwhMSx0LnZhbEF4aXNMaW5lSGlkZGVuLGBtYWpvcmAscil9Zm9yKGxldCBuIG9mIFUubWlub3JUaWNrcylGcihlLHQudmFsQXhpc01pbm9yVGlja01hcmssYHZhbGAsUixHKG4pLEsuY29sb3IsSy53aWR0aCwhMSx0LnZhbEF4aXNMaW5lSGlkZGVuLGBtaW5vcmAscik7dC52YWxBeGlzTGluZUhpZGRlbnx8KGUuc3Ryb2tlU3R5bGU9Sy5jb2xvcixlLmxpbmVXaWR0aD1LLndpZHRoLGUuYmVnaW5QYXRoKCksZS5tb3ZlVG8oUix6KSxlLmxpbmVUbyhSLHorQiksZS5zdHJva2UoKSl9bGV0IEo9aXQodC5jYXRBeGlzTGluZUNvbG9yLHQuY2F0QXhpc0xpbmVXaWR0aEVtdSxyKTshdC5jYXRBeGlzSGlkZGVuJiYhdC5jYXRBeGlzTGluZUhpZGRlbiYmKGUuc3Ryb2tlU3R5bGU9Si5jb2xvcixlLmxpbmVXaWR0aD1KLndpZHRoLGUuYmVnaW5QYXRoKCksZS5tb3ZlVG8oUix6K0IpLGUubGluZVRvKFIrZWUseitCKSxlLnN0cm9rZSgpKTtsZXQgWT1lZS9ILHJlPU10KHQuYmFyR2FwV2lkdGgsYGNoYXJ0ZXhgKSxpZT1lPT5gIyR7cy5zZXJpZXNbZV0uY29sb3I/P1NhKHQsa1tlXSxPLHMuc2VyaWVzW2VdLmNoYXJ0ZXhTdHlsZSl9YCxhZT1lPT5UYSh0LGtbZV0sTyxzLnNlcmllc1tlXS5jaGFydGV4U3R5bGUscy5zZXJpZXNbZV0uY29sb3IpLG9lPXMuc2VyaWVzLm1hcChlPT5lLnZhbHVlc0J5Q2F0ZWdvcnkubWFwKHQ9PkJ0KHQsZS5xdWFydGlsZU1ldGhvZCkpKSxzZT0oZSx0KT0+e2xldCBuPUh0KFIsZWUscy5vbmVCb3hQZXJTZXJpZXM/MTpILE8scy5vbmVCb3hQZXJTZXJpZXM/MDplLHQscmUpO3JldHVybiBuP3tieDpuLmJveFgsYm94VzpuLmJveFdpZHRoLGN4Om4uY2VudGVyWH06e2J4OlIsYm94VzowLGN4OlJ9fTtmb3IobGV0IG49MDtuPE87bisrKXtsZXQgaT1zLnNlcmllc1tuXTtpZighaS5tZWFuTGluZSljb250aW51ZTtsZXQgYT10LmNoYXJ0ZXhEYXRhUG9pbnRMaW5lU3R5bGU/P3QuY2hhcnRleERhdGFQb2ludFN0eWxlLG89aS5saW5lQ29sb3I/YCMke2kubGluZUNvbG9yfWA6aWUobik7aWYoZS5zYXZlKCksa2EoZSx0LGEsaSxrW25dLE8sbyxyKXx8aS5saW5lQ29sb3IhPW51bGwpe2kubGluZUNvbG9yJiYoZS5zdHJva2VTdHlsZT1vKSxpLmxpbmVXaWR0aEVtdSYmKGUubGluZVdpZHRoPXJ0KGkubGluZVdpZHRoRW11LHIpKTtsZXQgdD0hMTtlLmJlZ2luUGF0aCgpO2ZvcihsZXQgcj0wO3I8SDtyKyspe2xldCBpPW9lW25dW3JdO2lmKCFpKXt0PSExO2NvbnRpbnVlfWxldHtjeDphfT1zZShyLG4pLG89RyhpLm1lYW4pO3Q/ZS5saW5lVG8oYSxvKTplLm1vdmVUbyhhLG8pLHQ9ITB9ZS5zdHJva2UoKX1lLnJlc3RvcmUoKX1sZXQgY2U9bGkodC5jYXRBeGlzRm9udFNpemVIcHQsZCxyKSxsZT1UZShjZSk7Zm9yKGxldCBuPTA7bjxIO24rKyl7bGV0IGM9UitZKihuKy41KTt0LmNhdEF4aXNIaWRkZW58fEZyKGUsdC5jYXRBeGlzTWFqb3JUaWNrTWFyayxgY2F0YCx6K0IsYyxKLmNvbG9yLEoud2lkdGgsITEsdC5jYXRBeGlzTGluZUhpZGRlbixgbWFqb3JgLHIpO2ZvcihsZXQgYz0wO2M8TztjKyspe2xldCBsPXMuc2VyaWVzW2NdLHU9b2VbY11bbl07aWYoIXUpY29udGludWU7bGV0e2J4OmQsYm94VzpmLGN4OnB9PXNlKG4sYyksbT1pZShjKSxoPWFlKGMpLGc9dC5jaGFydGV4RGF0YVBvaW50U3R5bGUsXz10LmNoYXJ0ZXhEYXRhUG9pbnRMaW5lU3R5bGU/P2csdj10LmNoYXJ0ZXhEYXRhUG9pbnRNYXJrZXJTdHlsZT8/Zyx5PWtbY10sYj15YSh0LGcsYGxpbmVgLHksTykseD1sLmxpbmVDb2xvcj9gIyR7bC5saW5lQ29sb3J9YDpiP2AjJHtifWA6bSxTPWwubGluZVdpZHRoRW11P3J0KGwubGluZVdpZHRoRW11LHIpOmc/LmxpbmVXaWR0aEVtdT09bnVsbD8xOnJ0KGcubGluZVdpZHRoRW11LHIpLEM9eWEodCxfLGBsaW5lYCx5LE8pLHc9eWEodCx2LGBmaWxsYCx5LE8pLFQ9VGEodCx5LE8sbC5jaGFydGV4U3R5bGUsbC5jb2xvcix2KSxFPXlhKHQsdixgbGluZWAseSxPKSxEPShuLGkpPT57bGV0IGE9bC5jaGFydGV4U3R5bGUsbz1hPy5saW5lSGlkZGVuIT1udWxsfHxhPy5saW5lQ29sb3JzPy5zb21lKEJvb2xlYW4pfHxhPy5saW5lV2lkdGhFbXUhPW51bGx8fGE/LmxpbmVEYXNoIT1udWxsfHxhPy5saW5lQ2FwIT1udWxsfHxhPy5saW5lSm9pbiE9bnVsbCxzPWthKGUsdCxuLGwseSxPLGksciksYz1uPy5saW5lTm9TdHlsZT09PSEwJiYhbyYmbC5saW5lQ29sb3I9PW51bGwmJmwubGluZVdpZHRoRW11PT1udWxsO3JldHVybiFzJiZjJiYoZS5zdHJva2VTdHlsZT1pLGUubGluZVdpZHRoPTEsZS5zZXRMaW5lRGFzaChbXSkpLGwubGluZUNvbG9yJiYoZS5zdHJva2VTdHlsZT14KSxsLmxpbmVXaWR0aEVtdSYmKGUubGluZVdpZHRoPVMpLHN8fGN8fGwubGluZUNvbG9yIT1udWxsfSxBPUcodS5xMSksaj1HKHUucTMpLE09TWF0aC5taW4oQSxqKSxOPU1hdGgubWF4KDEsTWF0aC5hYnMoQS1qKSksUD1mKi40O0QoXyxDPz94KSYmKGUuYmVnaW5QYXRoKCksZS5tb3ZlVG8ocCxHKHUud2hpc2tlckhpKSksZS5saW5lVG8ocCxqKSxlLm1vdmVUbyhwLEEpLGUubGluZVRvKHAsRyh1LndoaXNrZXJMbykpLGUubW92ZVRvKHAtUC8yLEcodS53aGlza2VySGkpKSxlLmxpbmVUbyhwK1AvMixHKHUud2hpc2tlckhpKSksZS5tb3ZlVG8ocC1QLzIsRyh1LndoaXNrZXJMbykpLGUubGluZVRvKHArUC8yLEcodS53aGlza2VyTG8pKSxlLnN0cm9rZSgpKSxoJiYoZS5maWxsU3R5bGU9RWEoZSxoLGQsTSxmLE4sbSxpKSxlLmZpbGxSZWN0KGQsTSxmLE4pKSxEKGcseCkmJmUuc3Ryb2tlUmVjdChkK1MvMixNK1MvMixmLVMsTi1TKTtsZXQgRj1HKHUubWVkaWFuKTtpZihEKF8sQz8/eCkmJihlLmJlZ2luUGF0aCgpLGUubW92ZVRvKGQsRiksZS5saW5lVG8oZCtmLEYpLGUuc3Ryb2tlKCkpLGwuc2hvd05vbm91dGxpZXJzKXtsZXQgbj1hLG89dC5jaGFydGV4TWFya2VyU3ltYm9sPz9gY2lyY2xlYDtmb3IobGV0IHQgb2YgdS5pbm5lcil7aWYobz09PWBub25lYCljb250aW51ZTtsZXQgYT1EKHYsRT8/eCkscz1HKHQpO1QmJihlLmZpbGxTdHlsZT1FYShlLFQscC1uLHMtbixuKjIsbioyLHc/YCMke3d9YDptLGkpKSxvPT09YGNpcmNsZWA/KGUuYmVnaW5QYXRoKCksZS5hcmMocCxzLG4sMCxNYXRoLlBJKjIpLFQmJmUuZmlsbCgpLGEmJmUuc3Ryb2tlKCkpOmlhKGUscCxzLG8sMyxUP3c/YCMke3d9YDptOmB0cmFuc3BhcmVudGAsYT9FP2AjJHtFfWA6eDpudWxsLHIsZS5saW5lV2lkdGgpfX1pZihsLm1lYW5NYXJrZXIpe2xldCB0PUcodS5tZWFuKSxuPW87RCh2LEU/P3gpJiYoZS5iZWdpblBhdGgoKSxlLm1vdmVUbyhwLW4sdC1uKSxlLmxpbmVUbyhwK24sdCtuKSxlLm1vdmVUbyhwK24sdC1uKSxlLmxpbmVUbyhwLW4sdCtuKSxlLnN0cm9rZSgpKX1pZihsLnNob3dPdXRsaWVycyl7bGV0IG49dC5jaGFydGV4TWFya2VyU3ltYm9sPz9gY2lyY2xlYCxvPWE7Zm9yKGxldCB0IG9mIHUub3V0bGllcnMpe2lmKG49PT1gbm9uZWApY29udGludWU7bGV0IGE9RCh2LEU/P3gpLHM9Ryh0KTtUJiYoZS5maWxsU3R5bGU9RWEoZSxULHAtbyxzLW8sbyoyLG8qMix3P2AjJHt3fWA6bSxpKSksbj09PWBjaXJjbGVgPyhlLmJlZ2luUGF0aCgpLGUuYXJjKHAscyxvLDAsTWF0aC5QSSoyKSxUJiZlLmZpbGwoKSxhJiZlLnN0cm9rZSgpKTppYShlLHAscyxuLDMsVD93P2AjJHt3fWA6bTpgdHJhbnNwYXJlbnRgLGE/RT9gIyR7RX1gOng6bnVsbCxyLGUubGluZVdpZHRoKX19fWlmKCF0LmNhdEF4aXNIaWRkZW4pe2UuZm9udD1gJHtjZX1weCAke2xyKHQsdC5jYXRBeGlzRm9udEZhY2UsYG1pbm9yYCl9YCxlLmZpbGxTdHlsZT10LmNhdEF4aXNGb250Q29sb3I/YCMke3QuY2F0QXhpc0ZvbnRDb2xvcn1gOmAjNTk1OTU5YCxlLnRleHRBbGlnbj1gY2VudGVyYCxlLnRleHRCYXNlbGluZT1gdG9wYDtsZXQgcj1WW25dO2UuZmlsbFRleHQocixjLHorQitsZSl9fWUucmVzdG9yZSgpLGdyKGUsdCxjLGwsdSxkLFIseixlZSxCLFAsSSxELmNhdEZvbnRQeCxELnZhbEZvbnRQeCksUHIoZSxqLE0sYyxsLHUsZCxSLHosZWUsQix3LmJhbmRIKzIscixzLnNlcmllcy5tYXAoKGUsdCk9PmFlKHQpKSxpKX1mdW5jdGlvbiBVYShlKXtpZihlLmxlbmd0aD5qYSlyZXR1cm4hMDtsZXQgdD0wO2ZvcihsZXQgbiBvZiBlKXtpZihuLnBhdGgubGVuZ3RoPjUxMnx8dD5qYS1uLnBhdGgubGVuZ3RoKXJldHVybiEwO3QrPW4ucGF0aC5sZW5ndGh9cmV0dXJuITF9ZnVuY3Rpb24gV2EoZSx0PSExKXtsZXQgbj17bGFiZWw6YGAsbGF5b3V0V2VpZ2h0OjAsdmFsdWU6MCxkZXB0aDotMSxjaGlsZHJlbjpbXSxicmFuY2hJbmRleDotMSxsYWJlbEluZGV4Oi0xLGEwOjAsYTE6MH0scj1lLnJlZHVjZSgoZSx0KT0+TnVtYmVyLmlzRmluaXRlKHQuc2l6ZSkmJnQuc2l6ZT5lP3Quc2l6ZTplLDApLGk9KGUsdCk9PmU+TnVtYmVyLk1BWF9WQUxVRS10P051bWJlci5NQVhfVkFMVUU6ZSt0LGE9bmV3IFdlYWtNYXA7Zm9yKGxldCBvIG9mIGUpe2xldCBlPU51bWJlci5pc0Zpbml0ZShvLnNpemUpJiZvLnNpemU+MD9vLnNpemU6MCxzPXI+MD9lL3I6MCxjPW47Zm9yKGxldCBuPTA7bjxvLnBhdGgubGVuZ3RoO24rKyl7bGV0IHI9by5wYXRoW25dLGw9YS5nZXQoYyk7bHx8KGw9bmV3IE1hcCxhLnNldChjLGwpKTtsZXQgdT10JiZuPT09by5wYXRoLmxlbmd0aC0xLGQ9dT92b2lkIDA6bC5nZXQocik7ZHx8KGQ9e2xhYmVsOnIsbGF5b3V0V2VpZ2h0OjAsdmFsdWU6MCxkZXB0aDpuLGNoaWxkcmVuOltdLGJyYW5jaEluZGV4Om49PT0wP2MuY2hpbGRyZW4ubGVuZ3RoOmMuYnJhbmNoSW5kZXgsbGFiZWxJbmRleDotMSxhMDowLGExOjB9LGMuY2hpbGRyZW4ucHVzaChkKSx1fHxsLnNldChyLGQpKSxkLmxheW91dFdlaWdodCs9cyxkLnZhbHVlPWkoZC52YWx1ZSxlKSxjPWR9fW4ubGF5b3V0V2VpZ2h0PW4uY2hpbGRyZW4ucmVkdWNlKChlLHQpPT5lK3QubGF5b3V0V2VpZ2h0LDApLG4udmFsdWU9bi5jaGlsZHJlbi5yZWR1Y2UoKGUsdCk9PmkoZSx0LnZhbHVlKSwwKTtsZXQgbz0wLHM9Wy4uLm4uY2hpbGRyZW5dLnJldmVyc2UoKTtmb3IoO3MubGVuZ3RoPjA7KXtsZXQgZT1zLnBvcCgpO2UubGFiZWxJbmRleD1vKys7Zm9yKGxldCB0PWUuY2hpbGRyZW4ubGVuZ3RoLTE7dD49MDt0LS0pcy5wdXNoKGUuY2hpbGRyZW5bdF0pfXJldHVybiBufWZ1bmN0aW9uIEdhKGUpe2xldCB0PVtlXTtmb3IoO3QubGVuZ3RoPjA7KXtsZXQgZT10LnBvcCgpLG49MDtmb3IobGV0IHQgb2YgZS5jaGlsZHJlbiluKz10LmxheW91dFdlaWdodDtpZihuPD0wKWNvbnRpbnVlO2xldCByPWUuYTA7Zm9yKGxldCBpIG9mIGUuY2hpbGRyZW4pe2xldCBhPShlLmExLWUuYTApKmkubGF5b3V0V2VpZ2h0L247aS5hMD1yLGkuYTE9cithLHI9aS5hMSx0LnB1c2goaSl9fX1mdW5jdGlvbiBLYShlKXtsZXQgdD1lLmRlcHRoLG49W2VdO2Zvcig7bi5sZW5ndGg+MDspe2xldCBlPW4ucG9wKCk7dD1NYXRoLm1heCh0LGUuZGVwdGgpO2ZvcihsZXQgdD1lLmNoaWxkcmVuLmxlbmd0aC0xO3Q+PTA7dC0tKW4ucHVzaChlLmNoaWxkcmVuW3RdKX1yZXR1cm4gdH1mdW5jdGlvbiBxYShlLHQsbixyLGkpe2xldCBhPXQuY2hhcnRleFN1bmJ1cnN0O2lmKCFhfHxhLnJvd3MubGVuZ3RoPT09MClyZXR1cm47bGV0e3g6byx5OnMsdzpjLGg6bH09bjtpZihVYShhLnJvd3MpKXtGYShlLG4samErMSk7cmV0dXJufWxldCB1PVdhKGEucm93cyk7aWYodS5sYXlvdXRXZWlnaHQ8PTB8fHUuY2hpbGRyZW4ubGVuZ3RoPT09MClyZXR1cm47bGV0IGQ9dC5zZXJpZXNbMF0sZj1vcihkPy5kYXRhTGFiZWxPdmVycmlkZXMpLHA9dS5jaGlsZHJlbi5tYXAoKGUsbik9PlRhKHQsbix1LmNoaWxkcmVuLmxlbmd0aCxkPy5jaGFydGV4U3R5bGUsZD8uY29sb3IpKSxtPXsuLi50LGNoYXJ0VHlwZTpgY2x1c3RlcmVkQmFyYCxzZXJpZXM6dS5jaGlsZHJlbi5tYXAoZT0+e2xldCBuPVNhKHQsZS5icmFuY2hJbmRleCx1LmNoaWxkcmVuLmxlbmd0aCxkPy5jaGFydGV4U3R5bGUpO3JldHVybiBBYSh0LGUubGFiZWwsZCx0LmNoYXJ0ZXhEYXRhUG9pbnRTdHlsZSxlLmJyYW5jaEluZGV4LHUuY2hpbGRyZW4ubGVuZ3RoLG4sITEsITEpfSl9LGg9a2UodCxvLHMsYyxsLHIse3RpdGxlVG9wUGFkRnJhYzouMDM1LHRpdGxlQm90dG9tUGFkRnJhYzouMDM1LGxlZ2VuZFNpZGVSZXNlcnZlRnJhYzowLGxlZ2VuZFJlc2VydmU6anIoZSxtLGMsbCwuMjIscikscmFkaWFsR2FwRnJhYzouMDJ9KTtFaShlLHQsbyxzLGMsbCxzK2gudGl0bGUudG9wUGFkLGgudGl0bGUuZm9udFB4KTtsZXR7cHgwOmcscHkwOl8scHc6dixwaDp5fT1oLnBsb3RSZWN0LGI9Zyt2LzIseD1fK3kvMixTPU1hdGgubWluKHYseSkqLjQ2O3UuYTA9LU1hdGguUEkvMix1LmExPS1NYXRoLlBJLzIrTWF0aC5QSSoyLEdhKHUpO2xldCBDPUthKHUpKzEsdz1TKi4xOCxUPShTLXcpL0MsRT1lPT5gIyR7U2EodCxlLHUuY2hpbGRyZW4ubGVuZ3RoLGQ/LmNoYXJ0ZXhTdHlsZSl9YCxEPWU9PlRhKHQsZSx1LmNoaWxkcmVuLmxlbmd0aCxkPy5jaGFydGV4U3R5bGUsZD8uY29sb3IpLE89ZD8uc2VyaWVzRGF0YUxhYmVscyxrPWxyKHQsTz8uZm9udEZhY2U/P3QuZGF0YUxhYmVsRm9udEZhY2UsYG1pbm9yYCksQT1oZShPPy5mb250U2l6ZUhwdCxyKT8/TWF0aC5tYXgoNyxNYXRoLm1pbigxMyxTKi4wNzUpKSxqPU8/LmZvbnRDb2xvcj9gIyR7Ty5mb250Q29sb3J9YDpgI2ZmZmZmZmAsTT1BcnJheS5mcm9tKHtsZW5ndGg6Q30sKCk9PltdKSxOPVt1XTtmb3IoO04ubGVuZ3RoPjA7KXtsZXQgZT1OLnBvcCgpO2UuZGVwdGg+PTAmJk1bZS5kZXB0aF0ucHVzaChlKTtmb3IobGV0IHQ9ZS5jaGlsZHJlbi5sZW5ndGgtMTt0Pj0wO3QtLSlOLnB1c2goZS5jaGlsZHJlblt0XSl9ZS5zYXZlKCk7Zm9yKGxldCBuPTA7bjxDO24rKyl7bGV0IGE9dytuKlQscD1hK1Q7Zm9yKGxldCBtIG9mIE1bbl0pe2xldCBuPW0uYTEtbS5hMDtpZihuPD0xZS00KWNvbnRpbnVlO2UuYmVnaW5QYXRoKCksZS5hcmMoYix4LHAsbS5hMCxtLmExKSxlLmFyYyhiLHgsYSxtLmExLG0uYTAsITApLGUuY2xvc2VQYXRoKCk7bGV0IGg9RChtLmJyYW5jaEluZGV4KTtoJiYoZS5maWxsU3R5bGU9RWEoZSxoLGItcCx4LXAscCoyLHAqMixFKG0uYnJhbmNoSW5kZXgpLGkpLGUuZmlsbCgpKSxrYShlLHQsdC5jaGFydGV4RGF0YVBvaW50U3R5bGUsdC5zZXJpZXNbMF0sbS5icmFuY2hJbmRleCx1LmNoaWxkcmVuLmxlbmd0aCxgI2ZmZmZmZmAscikmJmUuc3Ryb2tlKCk7bGV0IFM9dmEodCxkLG0ubGFiZWxJbmRleCxtLmxhYmVsLG0udmFsdWUse3Zpc2libGU6ITEsc2hvd1ZhbDohMSxzaG93Q2F0TmFtZTohMX0sZik7aWYoIVMpY29udGludWU7bGV0IEM9Uy50ZXh0LHc9aGUoUy5mb250U2l6ZUhwdCxyKT8/QSxPPVMuZm9udENvbG9yP2AjJHtTLmZvbnRDb2xvcn1gOmosTT1TLmZvbnRGYWNlP2xyKHQsUy5mb250RmFjZSxgbWlub3JgKTprLE49KG0uYTArbS5hMSkvMixQPShhK3ApLzIsRj1ULTQsST1uKlA7aWYoIVMubWFudWFsTGF5b3V0JiZGPHcqLjkmJkk8dyouOSljb250aW51ZTtsZXQgTD1iK01hdGguY29zKE4pKlAsUj14K01hdGguc2luKE4pKlA7aWYoZS5mb250PWAke1MuZm9udEJvbGQ/YGJvbGQgYDpgYH0ke3d9cHggJHtNfWAsUy5tYW51YWxMYXlvdXQpe2xhKGUsQyx7a2luZDpgcG9pbnRgLHg6TCx5OlIscG9zaXRpb246Uy5wb3NpdGlvbj8/YGN0cmB9LHt4OmcseTpfLHc6dixoOnl9LHcsTyxTLm1hbnVhbExheW91dCx7eDpvLHk6cyx3OmMsaDpsfSk7Y29udGludWV9ZS5zYXZlKCksZS50cmFuc2xhdGUoTCxSKTtsZXQgej1OLGVlPXoqMTgwL01hdGguUEklMzYwOyhlZT45MHx8ZWU8LTkwKSYmKHorPU1hdGguUEkpLGUucm90YXRlKHopLGUuZm9udD1gJHtTLmZvbnRCb2xkP2Bib2xkIGA6YGB9JHt3fXB4ICR7TX1gLGxhKGUsQyx7a2luZDpgcG9pbnRgLHg6MCx5OjAscG9zaXRpb246Uy5wb3NpdGlvbj8/YGN0cmB9LHt4Oi1GLzIseTotSS8yLHc6RixoOkl9LHcsTyksZS5yZXN0b3JlKCl9fWUucmVzdG9yZSgpLFByKGUsbSxoLmxlZ2VuZCxvLHMsYyxsLGcsXyx2LHksaC50aXRsZS5iYW5kSCsyLHIscCxpKX1mdW5jdGlvbiBKYShlLHQpe2xldCBuPWUubWFwKChlLHQpPT4oe25vZGU6ZSxpbmRleDp0LHZhbHVlOmUubGF5b3V0V2VpZ2h0fSkpLmZpbHRlcihlPT5lLnZhbHVlPjApLnNvcnQoKGUsdCk9PnQudmFsdWUtZS52YWx1ZXx8ZS5pbmRleC10LmluZGV4KSxyPW4ucmVkdWNlKChlLHQpPT5lK3QudmFsdWUsMCk7aWYocjw9MHx8dC53PD0wfHx0Lmg8PTApcmV0dXJuW107bGV0IGk9dC53KnQuaC9yLGE9bi5tYXAoZT0+KHsuLi5lLGFyZWE6ZS52YWx1ZSppfSkpLG89W10scz17Li4udH0sYz1bXSxsPTAsdT0xLzAsZD0wLGY9KGUsdCxuLHIpPT57aWYoZTw9MHx8dDw9MHx8cjw9MClyZXR1cm4gMS8wO2xldCBpPXIqcjtyZXR1cm4gTWF0aC5tYXgoaSpuLyhlKmUpLGUqZS8oaSp0KSl9LHA9KGUsdCk9PntpZihlLmxlbmd0aCE9PTApaWYocy53Pj1zLmgpe2xldCBuPXMuaD4wP3Qvcy5oOjAscj1zLnk7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2xldCBpPXQ9PT1lLmxlbmd0aC0xP3MueStzLmgtcjplW3RdLmFyZWEvbjtvLnB1c2goe25vZGU6ZVt0XS5ub2RlLHJlY3Q6e3g6cy54LHk6cix3Om4saDppfX0pLHIrPWl9cz17eDpzLngrbix5OnMueSx3Ok1hdGgubWF4KDAscy53LW4pLGg6cy5ofX1lbHNle2xldCBuPXMudz4wP3Qvcy53OjAscj1zLng7Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kyspe2xldCBpPXQ9PT1lLmxlbmd0aC0xP3MueCtzLnctcjplW3RdLmFyZWEvbjtvLnB1c2goe25vZGU6ZVt0XS5ub2RlLHJlY3Q6e3g6cix5OnMueSx3OmksaDpufX0pLHIrPWl9cz17eDpzLngseTpzLnkrbix3OnMudyxoOk1hdGgubWF4KDAscy5oLW4pfX19LG09MDtmb3IoO208YS5sZW5ndGg7KXtsZXQgZT1hW21dLHQ9TWF0aC5taW4ocy53LHMuaCksbj1sK2UuYXJlYSxyPU1hdGgubWluKHUsZS5hcmVhKSxpPU1hdGgubWF4KGQsZS5hcmVhKTtjLmxlbmd0aD09PTB8fGYobixyLGksdCk8PWYobCx1LGQsdCk/KGMucHVzaChlKSxsPW4sdT1yLGQ9aSxtKyspOihwKGMsbCksYz1bXSxsPTAsdT0xLzAsZD0wKX1yZXR1cm4gcChjLGwpLG99ZnVuY3Rpb24gWWEoZSx0LG4scixpKXtsZXQgYT10LmNoYXJ0ZXhUcmVlbWFwO2lmKCFhfHxhLnJvd3MubGVuZ3RoPT09MClyZXR1cm47aWYoVWEoYS5yb3dzKSl7RmEoZSxuLGphKzEpO3JldHVybn1sZXQgbz1XYShhLnJvd3MsITApO2lmKG8ubGF5b3V0V2VpZ2h0PD0wfHxvLmNoaWxkcmVuLmxlbmd0aD09PTApcmV0dXJuO2xldCBzPXQuc2VyaWVzWzBdLGM9by5jaGlsZHJlbi5tYXAoZT0+VGEodCxlLmJyYW5jaEluZGV4LG8uY2hpbGRyZW4ubGVuZ3RoLHM/LmNoYXJ0ZXhTdHlsZSxzPy5jb2xvcikpLGw9ey4uLnQsY2hhcnRUeXBlOmBjbHVzdGVyZWRCYXJgLHNlcmllczpvLmNoaWxkcmVuLm1hcChlPT57bGV0IG49U2EodCxlLmJyYW5jaEluZGV4LG8uY2hpbGRyZW4ubGVuZ3RoLHM/LmNoYXJ0ZXhTdHlsZSk7cmV0dXJuIEFhKHQsZS5sYWJlbCxzLHQuY2hhcnRleERhdGFQb2ludFN0eWxlLGUuYnJhbmNoSW5kZXgsby5jaGlsZHJlbi5sZW5ndGgsbiwhMCwhMSl9KX0sdT1qcihlLGwsbi53LG4uaCwuMjIsciksZD1rZSh0LG4ueCxuLnksbi53LG4uaCxyLHt0aXRsZVRvcFBhZEZyYWM6LjAzNSx0aXRsZUJvdHRvbVBhZEZyYWM6LjAzNSxsZWdlbmRTaWRlUmVzZXJ2ZUZyYWM6MCxsZWdlbmRSZXNlcnZlOnUscmFkaWFsR2FwRnJhYzouMDE1fSk7RWkoZSx0LG4ueCxuLnksbi53LG4uaCxuLnkrZC50aXRsZS50b3BQYWQsZC50aXRsZS5mb250UHgpO2xldHtweDA6ZixweTA6cCxwdzptLHBoOmh9PWQucGxvdFJlY3QsZz17eDpmLHk6cCx3Om0saH0sXz1hLnBhcmVudExhYmVsTGF5b3V0Pz9gb3ZlcmxhcHBpbmdgLHY9dC5zZXJpZXNbMF0/LnNlcmllc0RhdGFMYWJlbHMseT1scih0LHY/LmZvbnRGYWNlPz90LmRhdGFMYWJlbEZvbnRGYWNlLGBtaW5vcmApLGI9aGUodj8uZm9udFNpemVIcHQscik/P01hdGgubWF4KDgsTWF0aC5taW4oMTMsZC5wbG90UmVjdC5waCouMDI1KSkseD12Py5mb250Q29sb3I/YCMke3YuZm9udENvbG9yfWA6YCNmZmZmZmZgLFM9bmV3IE1hcCgodC5zZXJpZXNbMF0/LmRhdGFMYWJlbE92ZXJyaWRlcz8/W10pLm1hcChlPT5bZS5pZHgsZV0pKSxDPXQuY2hhcnRCZz90LmNoYXJ0Qmcuc3RhcnRzV2l0aChgI2ApP3QuY2hhcnRCZzpgIyR7dC5jaGFydEJnfWA6YCNmZmZmZmZgLHc9KGEsYyk9PntpZihjLnc8LjV8fGMuaDwuNSlyZXR1cm47bGV0IGw9YCMke1NhKHQsYS5icmFuY2hJbmRleCxvLmNoaWxkcmVuLmxlbmd0aCxzPy5jaGFydGV4U3R5bGUpfWAsdT1UYSh0LGEuYnJhbmNoSW5kZXgsby5jaGlsZHJlbi5sZW5ndGgscz8uY2hhcnRleFN0eWxlLHM/LmNvbG9yKSxkPVMuZ2V0KGEubGFiZWxJbmRleCksZj1kPy5mb250Q29sb3I/YCMke2QuZm9udENvbG9yfWA6eCxwPWhlKGQ/LmZvbnRTaXplSHB0LHIpPz9iLG09ZD8uZm9udEJvbGQ/P3Y/LmZvbnRCb2xkPz8hMTtpZihhLmNoaWxkcmVuLmxlbmd0aD4wKXtsZXQgcj12YSh0LHMsYS5sYWJlbEluZGV4LGEubGFiZWwsYS52YWx1ZSx7dmlzaWJsZTpfIT09YG5vbmVgLHNob3dWYWw6ITEsc2hvd0NhdE5hbWU6ITB9LFMpLG89ciE9bnVsbCYmKF8hPT1gb3ZlcmxhcHBpbmdgfHxhLmRlcHRoPT09MCksaD1wLHY9cj8uZm9udEZhY2U/bHIodCxyLmZvbnRGYWNlLGBtaW5vcmApOnksYj1fPT09YGJhbm5lcmAmJm8/TWF0aC5taW4oYy5oKi4yOCxoKzcpOjA7Yj4wJiZ1JiYoZS5maWxsU3R5bGU9RWEoZSx1LGMueCxjLnksYy53LGIsbCxpKSxlLmZpbGxSZWN0KGMueCxjLnksYy53LGIpKTtsZXQgeD17eDpjLngseTpjLnkrYix3OmMudyxoOk1hdGgubWF4KDAsYy5oLWIpfTtmb3IobGV0IGUgb2YgSmEoYS5jaGlsZHJlbix4KSl3KGUubm9kZSxlLnJlY3QpO2lmKG8mJihyLm1hbnVhbExheW91dHx8Yy53PmgqMiYmYy5oPmgrNCkpe2UuZm9udD1gJHttP2Bib2xkIGA6YGB9JHtofXB4ICR7dn1gO2xldCB0PWI+MD97eDpjLngseTpjLnksdzpjLncsaDpifTpjLGk9ZD8ucG9zaXRpb24/P2BpbkJhc2VgO2xhKGUsci50ZXh0LHIubWFudWFsTGF5b3V0P3traW5kOmBwb2ludGAseDpjLngrYy53LzIseTpjLnkrYy5oLzIscG9zaXRpb246aX06e2tpbmQ6YGJveGAscmVjdDp0LHBvc2l0aW9uOml9LHIubWFudWFsTGF5b3V0P2c6dCxoLGYsci5tYW51YWxMYXlvdXQsbil9cmV0dXJufXUmJihlLmZpbGxTdHlsZT1FYShlLHUsYy54LGMueSxjLncsYy5oLGwsaSksZS5maWxsUmVjdChjLngsYy55LGMudyxjLmgpKSxrYShlLHQsdC5jaGFydGV4RGF0YVBvaW50U3R5bGUsdC5zZXJpZXNbMF0sYS5icmFuY2hJbmRleCxvLmNoaWxkcmVuLmxlbmd0aCxDLHIse2xpbmtlZE5vU3R5bGVGYWxsYmFjazohMH0pJiZlLnN0cm9rZVJlY3QoYy54LGMueSxjLncsYy5oKTtsZXQgaD12YSh0LHMsYS5sYWJlbEluZGV4LGEubGFiZWwsYS52YWx1ZSx7dmlzaWJsZTohMSxzaG93VmFsOiExLHNob3dDYXROYW1lOiExfSxTKTtpZighaClyZXR1cm47bGV0IFQ9aGUoaC5mb250U2l6ZUhwdCxyKT8/cDtpZighaC5tYW51YWxMYXlvdXQmJihjLnc8PVQqMS4yfHxjLmg8PVQqMS4yKSlyZXR1cm47bGV0IEU9aC5mb250RmFjZT9scih0LGguZm9udEZhY2UsYG1pbm9yYCk6eTtlLmZvbnQ9YCR7aC5mb250Qm9sZD9gYm9sZCBgOmBgfSR7VH1weCAke0V9YDtsZXQgRD1jLE89aC5wb3NpdGlvbj09PWBvdXRFbmRgP2BpbkVuZGA6aC5wb3NpdGlvbj8/YGN0cmA7bGEoZSxoLnRleHQsaC5tYW51YWxMYXlvdXQ/e2tpbmQ6YHBvaW50YCx4OmMueCtjLncvMix5OmMueStjLmgvMixwb3NpdGlvbjpPfTp7a2luZDpgYm94YCxyZWN0OkQscG9zaXRpb246T30saC5tYW51YWxMYXlvdXQ/ZzpELFQsaC5mb250Q29sb3I/YCMke2guZm9udENvbG9yfWA6ZixoLm1hbnVhbExheW91dCxuKX07ZS5zYXZlKCksZS5iZWdpblBhdGgoKSxlLnJlY3QoZixwLG0saCksZS5jbGlwKCk7Zm9yKGxldCBlIG9mIEphKG8uY2hpbGRyZW4se3g6Zix5OnAsdzptLGh9KSl3KGUubm9kZSxlLnJlY3QpO2UucmVzdG9yZSgpLFByKGUsbCxkLmxlZ2VuZCxuLngsbi55LG4udyxuLmgsZixwLG0saCxkLnRpdGxlLmJhbmRIKzIscixjLGkpfWZ1bmN0aW9uIFhhKGUsdCxuLHIpe2xldCBpPXQuY2hhcnRUZXh0Qm94ZXM7aWYoaT8ubGVuZ3RoKWZvcihsZXQgYSBvZiBpKXtsZXQgaT1uLngrYS54Km4udyxvPW4ueSthLnkqbi5oLHM9YS53Km4udyxjPWEuaCpuLmg7aWYoIShzPjAmJmM+MCkpY29udGludWU7bGV0IGw9aSsoYS5sSW5zPz85MTQ0MCkvZXQqcix1PW8rKGEudElucz8/NDU3MjApL2V0KnIsZD1pK3MtKGEucklucz8/OTE0NDApL2V0KnIsZj1vK2MtKGEuYklucz8/NDU3MjApL2V0KnIscD1kLWwsbT1mLXU7aWYoIShwPjAmJm0+MCkpY29udGludWU7bGV0IGg9KGUsdCk9PntsZXQgbj1NYXRoLm1heCgxLC4uLnQubWFwKGU9PmUuZm9udFB4KSk7cmV0dXJue3BhcmFncmFwaDplLHJ1bnM6dCx3aWR0aDp0LnJlZHVjZSgoZSx0KT0+ZSt0LndpZHRoLDApLGhlaWdodDpuKjEuMixiYXNlbGluZTpuKi45fX0sZz1hLnBhcmFncmFwaHMuZmxhdE1hcChuPT57bGV0IGk9bi5ydW5zLm1hcChuPT57bGV0IGk9TWF0aC5tYXgoMSwobi5mb250U2l6ZUhwdD8/MWUzKS8xMDAqciksYT1gJHtuLmJvbGQ/YGJvbGQgYDpgYH0ke2l9cHggJHtscih0LG4uZm9udEZhY2UsYG1pbm9yYCl9YDtyZXR1cm4gZS5mb250PWEse3J1bjpuLHRleHQ6bi50ZXh0LGZvbnRQeDppLGZvbnQ6YSx3aWR0aDplLm1lYXN1cmVUZXh0KG4udGV4dCkud2lkdGh9fSksbz1pLnJlZHVjZSgoZSx0KT0+ZSt0LndpZHRoLDApO2lmKGEud3JhcD09PWBub25lYHx8bzw9cClyZXR1cm5baChuLGkpXTtsZXQgcz1bXSxjPVtdLGw9MCx1PSgpPT57Yy5sZW5ndGgmJihzLnB1c2goaChuLGMpKSxjPVtdLGw9MCl9O2ZvcihsZXQgdCBvZiBpKXtsZXQgbj10LnRleHQubWF0Y2goL1xzK3xcUysvZyk/P1tdO2ZvcihsZXQgciBvZiBuKXtsZXQgbj0vXlxzKyQvLnRlc3Qocik7ZS5mb250PXQuZm9udDtsZXQgaT1lLm1lYXN1cmVUZXh0KHIpLndpZHRoO2MubGVuZ3RoJiZsK2k+cCYmdSgpLCEobiYmIWMubGVuZ3RoKSYmKGMucHVzaCh7Li4udCx0ZXh0OnIsd2lkdGg6aX0pLGwrPWkpfX1yZXR1cm4gdSgpLHMubGVuZ3RoP3M6W2gobixpKV19KSxfPWcucmVkdWNlKChlLHQpPT5lK3QuaGVpZ2h0LDApLHY9YS52ZXJ0aWNhbEFuY2hvcj09PWBiYD9mLV86YS52ZXJ0aWNhbEFuY2hvcj09PWBjdHJgP3UrKG0tXykvMjp1O2Uuc2F2ZSgpLGUuYmVnaW5QYXRoKCksZS5yZWN0KGksbyxzLGMpLGUuY2xpcCgpLGUudGV4dEFsaWduPWBsZWZ0YCxlLnRleHRCYXNlbGluZT1gYWxwaGFiZXRpY2A7bGV0IHk9djtmb3IobGV0IHQgb2YgZyl7bGV0IG49dC5wYXJhZ3JhcGguYWxpZ24scj1uPT09YGN0cmA/bCsocC10LndpZHRoKS8yOm49PT1gcmA/ZC10LndpZHRoOmw7Zm9yKGxldCBuIG9mIHQucnVucyllLmZvbnQ9bi5mb250LGUuZmlsbFN0eWxlPW4ucnVuLmNvbG9yP2AjJHtuLnJ1bi5jb2xvcn1gOmAjMDAwMDAwYCxlLmZpbGxUZXh0KG4udGV4dCxyLHkrdC5iYXNlbGluZSkscis9bi53aWR0aDt5Kz10LmhlaWdodH1lLnJlc3RvcmUoKX19ZnVuY3Rpb24gWmEoZSx0LG4scj10dCxpPTAsYSxvKXtlLnNhdmUoKTt0cnl7bGV0e3g6cyx5OmMsdzpsLGg6dX09bjtpZih0LmNoYXJ0QmcmJihlLmZpbGxTdHlsZT1gIyR7dC5jaGFydEJnfWAsZS5maWxsUmVjdChzLGMsbCx1KSksdC5jaGFydEJvcmRlckNvbG9yKXtlLnNhdmUoKSxlLnN0cm9rZVN0eWxlPWAjJHt0LmNoYXJ0Qm9yZGVyQ29sb3J9YCxlLmxpbmVXaWR0aD10LmNoYXJ0Qm9yZGVyV2lkdGhFbXU/TWF0aC5tYXgoLjUsdC5jaGFydEJvcmRlcldpZHRoRW11L2V0KSpyOjE7bGV0IG49ZS5saW5lV2lkdGg7ZS5zdHJva2VSZWN0KHMrbi8yLGMrbi8yLGwtbix1LW4pLGUucmVzdG9yZSgpfWxldCBkPXQuY2hhcnRleEJveCE9bnVsbHx8dC5jaGFydGV4U3VuYnVyc3QhPW51bGx8fHQuY2hhcnRleFRyZWVtYXAhPW51bGx8fHQuY2hhcnRleFJlZ2lvbk1hcCE9bnVsbDtpZih0LnNlcmllcy5sZW5ndGg9PT0wJiYhZCl7ZS5maWxsU3R5bGU9YCM4ODhgLGUuZm9udD1gMTJweCBzYW5zLXNlcmlmYCxlLnRleHRBbGlnbj1gY2VudGVyYCxlLnRleHRCYXNlbGluZT1gbWlkZGxlYCxlLmZpbGxUZXh0KGAobm8gZGF0YSlgLHMrbC8yLGMrdS8yKSxYYShlLHQsbixyKTtyZXR1cm59bGV0IGY9TmEodCkscD1QYSh0LGEpO2lmKChmIT1udWxsfHxwIT1udWxsKSYmRmEoZSxuLE1hdGgubWF4KGY/PzAscD8/MCkpKXtYYShlLHQsbixyKTtyZXR1cm59aWYoYT8ucmVuZGVyKGUsdCxuLHIpKXt0aShlLHQsbixyKSxYYShlLHQsbixyKTtyZXR1cm59aWYobz8ucmVuZGVyKGUsdCxuLHIpKXtYYShlLHQsbixyKTtyZXR1cm59c3dpdGNoKHQuY2hhcnRUeXBlKXtjYXNlYGNsdXN0ZXJlZEJhcmA6Y2FzZWBjbHVzdGVyZWRCYXJIYDpjYXNlYHN0YWNrZWRCYXJgOmNhc2Vgc3RhY2tlZEJhckhgOmNhc2Vgc3RhY2tlZEJhclBjdGA6Y2FzZWBzdGFja2VkQmFySFBjdGA6amkoZSx0LG4scik7YnJlYWs7Y2FzZWBsaW5lYDpjYXNlYHN0YWNrZWRMaW5lYDpjYXNlYHN0YWNrZWRMaW5lUGN0YDpNaShlLHQsbixyKTticmVhaztjYXNlYGFyZWFgOmNhc2Vgc3RhY2tlZEFyZWFgOmNhc2Vgc3RhY2tlZEFyZWFQY3RgOlJpKGUsdCxuLHIpO2JyZWFrO2Nhc2VgcGllYDpIaShlLHQsbiwhMSxyKTticmVhaztjYXNlYG9mUGllYDpWaShlLHQsbixyKTticmVhaztjYXNlYGRvdWdobnV0YDpIaShlLHQsbiwhMCxyKTticmVhaztjYXNlYHJhZGFyYDpZaShlLHQsbixyKTticmVhaztjYXNlYHNjYXR0ZXJgOmNhc2VgYnViYmxlYDpyYShlLHQsbixyKTticmVhaztjYXNlYHdhdGVyZmFsbGA6TGEoZSx0LG4scixpKTticmVhaztjYXNlYGNsdXN0ZXJlZENvbHVtbmA6amkoZSx7Li4udCxjaGFydFR5cGU6YGNsdXN0ZXJlZEJhcmB9LG4scix7Z2FwUG9saWN5OmBjaGFydGV4YH0pO2JyZWFrO2Nhc2VgaGlzdG9ncmFtYDpJYShlLHQsbixyKTticmVhaztjYXNlYGZ1bm5lbGA6UmEoZSx0LG4scixpKTticmVhaztjYXNlYHBhcmV0b0xpbmVgOnphKGUsdCxuLHIpO2JyZWFrO2Nhc2VgcGFyZXRvYDpCYShlLHQsbixyKTticmVhaztjYXNlYHN0b2NrYDpOaShlLHQsbixyKTticmVhaztjYXNlYHN1cmZhY2VgOkxpKGUsdCxuLHIpO2JyZWFrO2Nhc2VgYm94V2hpc2tlcmA6SGEoZSx0LG4scixpKTticmVhaztjYXNlYHN1bmJ1cnN0YDpxYShlLHQsbixyLGkpO2JyZWFrO2Nhc2VgdHJlZW1hcGA6WWEoZSx0LG4scixpKTticmVhaztkZWZhdWx0OmUuZmlsbFN0eWxlPWAjODg4YCxlLmZvbnQ9YDExcHggc2Fucy1zZXJpZmAsZS50ZXh0QWxpZ249YGNlbnRlcmAsZS50ZXh0QmFzZWxpbmU9YG1pZGRsZWAsZS5maWxsVGV4dChgQ2hhcnQ6ICR7dC5jaGFydFR5cGV9YCxzK2wvMixjK3UvMil9dGkoZSx0LG4sciksWGEoZSx0LG4scil9ZmluYWxseXtlLnJlc3RvcmUoKX19ZnVuY3Rpb24gUWEoZSx0LG4scixpLGEpe2ZvcihsZXQgbyBvZiB0KXtsZXQgdD0wLHM9MDtmb3IobGV0IGMgb2Ygbylzd2l0Y2goYy5jbWQpe2Nhc2VgbW92ZVRvYDplLm1vdmVUbyhuK2MueCppLHIrYy55KmEpLHQ9Yy54LHM9Yy55O2JyZWFrO2Nhc2VgbGluZVRvYDplLmxpbmVUbyhuK2MueCppLHIrYy55KmEpLHQ9Yy54LHM9Yy55O2JyZWFrO2Nhc2VgY3ViaWNCZXpUb2A6ZS5iZXppZXJDdXJ2ZVRvKG4rYy54MSppLHIrYy55MSphLG4rYy54MippLHIrYy55MiphLG4rYy54KmkscitjLnkqYSksdD1jLngscz1jLnk7YnJlYWs7Y2FzZWBxdWFkQmV6VG9gOmUucXVhZHJhdGljQ3VydmVUbyhuK2MueDEqaSxyK2MueTEqYSxuK2MueCppLHIrYy55KmEpLHQ9Yy54LHM9Yy55O2JyZWFrO2Nhc2VgYXJjVG9gOntsZXQgbz1jLndyKmksbD1jLmhyKmE7aWYobzw9MHx8bDw9MClicmVhaztsZXQgdT1jLnN0QW5nKk1hdGguUEkvMTgwLGQ9Yy5zd0FuZypNYXRoLlBJLzE4MCxmPW4rdCppLHA9citzKmEsbT1mLW8qTWF0aC5jb3ModSksaD1wLWwqTWF0aC5zaW4odSksZz11K2Q7ZS5lbGxpcHNlKG0saCxvLGwsMCx1LGcsZDwwKSx0PShtK28qTWF0aC5jb3MoZyktbikvaSxzPShoK2wqTWF0aC5zaW4oZyktcikvYTticmVha31jYXNlYGNsb3NlYDplLmNsb3NlUGF0aCgpO2JyZWFrfX19Y29uc3QgJGE9MWUtOTtmdW5jdGlvbiBlbyhlKXtyZXR1cm4gZS5jbWQ9PT1gbGluZVRvYHx8ZS5jbWQ9PT1gY3ViaWNCZXpUb2B8fGUuY21kPT09YHF1YWRCZXpUb2B8fGUuY21kPT09YGFyY1RvYH1mdW5jdGlvbiB0byhlLHQsbixyKXtsZXQgaT1uPT09MD8wOm4sYT1yPT09MD8wOnI7cmV0dXJue3g6ZSx5OnQsZHg6aSxkeTphLGFuZ2xlOk1hdGguYXRhbjIoYSxpKX19ZnVuY3Rpb24gbm8oZSx0LG4pe3N3aXRjaChuLmNtZCl7Y2FzZWBsaW5lVG9gOnJldHVybntkeDpuLngtZSxkeTpuLnktdH07Y2FzZWBjdWJpY0JlelRvYDp7bGV0IHI9bi54MS1lLGk9bi55MS10O3JldHVybiBNYXRoLmFicyhyKTwkYSYmTWF0aC5hYnMoaSk8JGEmJihyPW4ueDItZSxpPW4ueTItdCksTWF0aC5hYnMocik8JGEmJk1hdGguYWJzKGkpPCRhJiYocj1uLngtZSxpPW4ueS10KSx7ZHg6cixkeTppfX1jYXNlYHF1YWRCZXpUb2A6e2xldCByPW4ueDEtZSxpPW4ueTEtdDtyZXR1cm4gTWF0aC5hYnMocik8JGEmJk1hdGguYWJzKGkpPCRhJiYocj1uLngtZSxpPW4ueS10KSx7ZHg6cixkeTppfX1jYXNlYGFyY1RvYDp7bGV0IGU9bi5zdEFuZypNYXRoLlBJLzE4MCx0PW4uc3dBbmc8MD8tMToxO3JldHVybntkeDotbi53cipNYXRoLnNpbihlKSp0LGR5Om4uaHIqTWF0aC5jb3MoZSkqdH19ZGVmYXVsdDpyZXR1cm57ZHg6MCxkeTowfX19ZnVuY3Rpb24gcm8oZSx0LG4pe3N3aXRjaChuLmNtZCl7Y2FzZWBtb3ZlVG9gOmNhc2VgbGluZVRvYDpjYXNlYGN1YmljQmV6VG9gOmNhc2VgcXVhZEJlelRvYDpyZXR1cm57eDpuLngseTpuLnl9O2Nhc2VgYXJjVG9gOntpZihuLndyPD0wfHxuLmhyPD0wKXJldHVybnt4OmUseTp0fTtsZXQgcj1uLnN0QW5nKk1hdGguUEkvMTgwLGk9cituLnN3QW5nKk1hdGguUEkvMTgwLGE9ZS1uLndyKk1hdGguY29zKHIpLG89dC1uLmhyKk1hdGguc2luKHIpO3JldHVybnt4OmErbi53cipNYXRoLmNvcyhpKSx5Om8rbi5ocipNYXRoLnNpbihpKX19ZGVmYXVsdDpyZXR1cm57eDplLHk6dH19fWZ1bmN0aW9uIGlvKGUsdCxuKXtsZXR7eDpyLHk6aX09cm8oZSx0LG4pO3N3aXRjaChuLmNtZCl7Y2FzZWBsaW5lVG9gOnJldHVybntkeDpuLngtZSxkeTpuLnktdCx4OnIseTppfTtjYXNlYGN1YmljQmV6VG9gOntsZXQgYT1uLngtbi54MixvPW4ueS1uLnkyO3JldHVybiBNYXRoLmFicyhhKTwkYSYmTWF0aC5hYnMobyk8JGEmJihhPW4ueC1uLngxLG89bi55LW4ueTEpLE1hdGguYWJzKGEpPCRhJiZNYXRoLmFicyhvKTwkYSYmKGE9bi54LWUsbz1uLnktdCkse2R4OmEsZHk6byx4OnIseTppfX1jYXNlYHF1YWRCZXpUb2A6e2xldCBhPW4ueC1uLngxLG89bi55LW4ueTE7cmV0dXJuIE1hdGguYWJzKGEpPCRhJiZNYXRoLmFicyhvKTwkYSYmKGE9bi54LWUsbz1uLnktdCkse2R4OmEsZHk6byx4OnIseTppfX1jYXNlYGFyY1RvYDp7aWYobi53cjw9MHx8bi5ocjw9MClyZXR1cm57ZHg6MCxkeTowLHg6cix5Oml9O2xldCBlPW4uc3RBbmcqTWF0aC5QSS8xODArbi5zd0FuZypNYXRoLlBJLzE4MCx0PW4uc3dBbmc8MD8tMToxO3JldHVybntkeDotbi53cipNYXRoLnNpbihlKSp0LGR5Om4uaHIqTWF0aC5jb3MoZSkqdCx4OnIseTppfX1kZWZhdWx0OnJldHVybntkeDowLGR5OjAseDpyLHk6aX19fWZ1bmN0aW9uIGFvKGUpe2xldCB0PTAsbj0wLHI9ITE7Zm9yKGxldCBpIG9mIGUpaS5jbWQ9PT1gbW92ZVRvYCYmKHI9ITApLHt4OnQseTpufT1ybyh0LG4saSk7cmV0dXJuIHI/e3g6dCx5Om59Om51bGx9ZnVuY3Rpb24gb28oZSl7aWYoZS5zb21lKGU9PmUuY21kPT09YGNsb3NlYCkpcmV0dXJuITA7bGV0IHQ9ZS5maW5kKGU9PmUuY21kPT09YG1vdmVUb2ApO2lmKCF0KXJldHVybiExO2xldCBuPWFvKGUpO3JldHVybiFufHwhZS5zb21lKGVvKT8hMTpNYXRoLmFicyhuLngtdC54KTwkYSYmTWF0aC5hYnMobi55LXQueSk8JGF9ZnVuY3Rpb24gc28oZSl7bGV0IHQ9e3N0YXJ0Om51bGwsZW5kOm51bGx9O2lmKCFlfHxlLmxlbmd0aD09PTApcmV0dXJuIHQ7bGV0IG49ZVswXTtpZihuJiZuLmxlbmd0aD4wJiYhb28obikpe2xldCBlPW4uZmluZChlPT5lLmNtZD09PWBtb3ZlVG9gKSxyPW4uZmluZChlbyk7aWYoZSYmcil7bGV0IG49bm8oZS54LGUueSxyKTsoTWF0aC5hYnMobi5keCk+JGF8fE1hdGguYWJzKG4uZHkpPiRhKSYmKHQuc3RhcnQ9dG8oZS54LGUueSwtbi5keCwtbi5keSkpfX1sZXQgcj1lW2UubGVuZ3RoLTFdO2lmKHImJnIubGVuZ3RoPjAmJiFvbyhyKSl7bGV0IGU9MCxuPTAsaT0tMTtmb3IobGV0IGU9MDtlPHIubGVuZ3RoO2UrKyllbyhyW2VdKSYmKGk9ZSk7aWYoaT49MCl7Zm9yKGxldCB0PTA7dDxpO3QrKykoe3g6ZSx5Om59PXJvKGUsbixyW3RdKSk7bGV0IGE9aW8oZSxuLHJbaV0pOyhNYXRoLmFicyhhLmR4KT4kYXx8TWF0aC5hYnMoYS5keSk+JGEpJiYodC5lbmQ9dG8oYS54LGEueSxhLmR4LGEuZHkpKX19cmV0dXJuIHR9dmFyIGNvPXthY2NlbnRib3JkZXJjYWxsb3V0MTp7YWRqOltbYGFkajFgLGB2YWwgMTg3NTBgXSxbYGFkajJgLGB2YWwgLTgzMzNgXSxbYGFkajNgLGB2YWwgMTEyNTAwYF0sW2BhZGo0YCxgdmFsIC0zODMzM2BdXSxnZDpbW2B5MWAsYCovIGggYWRqMSAxMDAwMDBgXSxbYHgxYCxgKi8gdyBhZGoyIDEwMDAwMGBdLFtgeTJgLGAqLyBoIGFkajMgMTAwMDAwYF0sW2B4MmAsYCovIHcgYWRqNCAxMDAwMDBgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgbGAsYHRgXSxbYGxgLGByYCxgdGBdLFtgbGAsYHJgLGBiYF0sW2BsYCxgbGAsYGJgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGB4MWAsYHRgXSxbYGNgXSxbYGxgLGB4MWAsYGJgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGB4MWAsYHkxYF0sW2BsYCxgeDJgLGB5MmBdXX1dfSxhY2NlbnRib3JkZXJjYWxsb3V0Mjp7YWRqOltbYGFkajFgLGB2YWwgMTg3NTBgXSxbYGFkajJgLGB2YWwgLTgzMzNgXSxbYGFkajNgLGB2YWwgMTg3NTBgXSxbYGFkajRgLGB2YWwgLTE2NjY3YF0sW2BhZGo1YCxgdmFsIDExMjUwMGBdLFtgYWRqNmAsYHZhbCAtNDY2NjdgXV0sZ2Q6W1tgeTFgLGAqLyBoIGFkajEgMTAwMDAwYF0sW2B4MWAsYCovIHcgYWRqMiAxMDAwMDBgXSxbYHkyYCxgKi8gaCBhZGozIDEwMDAwMGBdLFtgeDJgLGAqLyB3IGFkajQgMTAwMDAwYF0sW2B5M2AsYCovIGggYWRqNSAxMDAwMDBgXSxbYHgzYCxgKi8gdyBhZGo2IDEwMDAwMGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBsYCxgdGBdLFtgbGAsYHJgLGB0YF0sW2BsYCxgcmAsYGJgXSxbYGxgLGBsYCxgYmBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYHgxYCxgdGBdLFtgY2BdLFtgbGAsYHgxYCxgYmBdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYHgxYCxgeTFgXSxbYGxgLGB4MmAsYHkyYF0sW2BsYCxgeDNgLGB5M2BdXX1dfSxhY2NlbnRib3JkZXJjYWxsb3V0Mzp7YWRqOltbYGFkajFgLGB2YWwgMTg3NTBgXSxbYGFkajJgLGB2YWwgLTgzMzNgXSxbYGFkajNgLGB2YWwgMTg3NTBgXSxbYGFkajRgLGB2YWwgLTE2NjY3YF0sW2BhZGo1YCxgdmFsIDEwMDAwMGBdLFtgYWRqNmAsYHZhbCAtMTY2NjdgXSxbYGFkajdgLGB2YWwgMTEyOTYzYF0sW2BhZGo4YCxgdmFsIC04MzMzYF1dLGdkOltbYHkxYCxgKi8gaCBhZGoxIDEwMDAwMGBdLFtgeDFgLGAqLyB3IGFkajIgMTAwMDAwYF0sW2B5MmAsYCovIGggYWRqMyAxMDAwMDBgXSxbYHgyYCxgKi8gdyBhZGo0IDEwMDAwMGBdLFtgeTNgLGAqLyBoIGFkajUgMTAwMDAwYF0sW2B4M2AsYCovIHcgYWRqNiAxMDAwMDBgXSxbYHk0YCxgKi8gaCBhZGo3IDEwMDAwMGBdLFtgeDRgLGAqLyB3IGFkajggMTAwMDAwYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYGxgLGB0YF0sW2BsYCxgcmAsYHRgXSxbYGxgLGByYCxgYmBdLFtgbGAsYGxgLGBiYF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgeDFgLGB0YF0sW2BjYF0sW2BsYCxgeDFgLGBiYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgeDFgLGB5MWBdLFtgbGAsYHgyYCxgeTJgXSxbYGxgLGB4M2AsYHkzYF0sW2BsYCxgeDRgLGB5NGBdXX1dfSxhY2NlbnRjYWxsb3V0MTp7YWRqOltbYGFkajFgLGB2YWwgMTg3NTBgXSxbYGFkajJgLGB2YWwgLTgzMzNgXSxbYGFkajNgLGB2YWwgMTEyNTAwYF0sW2BhZGo0YCxgdmFsIC0zODMzM2BdXSxnZDpbW2B5MWAsYCovIGggYWRqMSAxMDAwMDBgXSxbYHgxYCxgKi8gdyBhZGoyIDEwMDAwMGBdLFtgeTJgLGAqLyBoIGFkajMgMTAwMDAwYF0sW2B4MmAsYCovIHcgYWRqNCAxMDAwMDBgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgbGAsYHRgXSxbYGxgLGByYCxgdGBdLFtgbGAsYHJgLGBiYF0sW2BsYCxgbGAsYGJgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGB4MWAsYHRgXSxbYGNgXSxbYGxgLGB4MWAsYGJgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGB4MWAsYHkxYF0sW2BsYCxgeDJgLGB5MmBdXX1dfSxhY2NlbnRjYWxsb3V0Mjp7YWRqOltbYGFkajFgLGB2YWwgMTg3NTBgXSxbYGFkajJgLGB2YWwgLTgzMzNgXSxbYGFkajNgLGB2YWwgMTg3NTBgXSxbYGFkajRgLGB2YWwgLTE2NjY3YF0sW2BhZGo1YCxgdmFsIDExMjUwMGBdLFtgYWRqNmAsYHZhbCAtNDY2NjdgXV0sZ2Q6W1tgeTFgLGAqLyBoIGFkajEgMTAwMDAwYF0sW2B4MWAsYCovIHcgYWRqMiAxMDAwMDBgXSxbYHkyYCxgKi8gaCBhZGozIDEwMDAwMGBdLFtgeDJgLGAqLyB3IGFkajQgMTAwMDAwYF0sW2B5M2AsYCovIGggYWRqNSAxMDAwMDBgXSxbYHgzYCxgKi8gdyBhZGo2IDEwMDAwMGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBsYCxgdGBdLFtgbGAsYHJgLGB0YF0sW2BsYCxgcmAsYGJgXSxbYGxgLGBsYCxgYmBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYHgxYCxgdGBdLFtgY2BdLFtgbGAsYHgxYCxgYmBdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYHgxYCxgeTFgXSxbYGxgLGB4MmAsYHkyYF0sW2BsYCxgeDNgLGB5M2BdXX1dfSxhY2NlbnRjYWxsb3V0Mzp7YWRqOltbYGFkajFgLGB2YWwgMTg3NTBgXSxbYGFkajJgLGB2YWwgLTgzMzNgXSxbYGFkajNgLGB2YWwgMTg3NTBgXSxbYGFkajRgLGB2YWwgLTE2NjY3YF0sW2BhZGo1YCxgdmFsIDEwMDAwMGBdLFtgYWRqNmAsYHZhbCAtMTY2NjdgXSxbYGFkajdgLGB2YWwgMTEyOTYzYF0sW2BhZGo4YCxgdmFsIC04MzMzYF1dLGdkOltbYHkxYCxgKi8gaCBhZGoxIDEwMDAwMGBdLFtgeDFgLGAqLyB3IGFkajIgMTAwMDAwYF0sW2B5MmAsYCovIGggYWRqMyAxMDAwMDBgXSxbYHgyYCxgKi8gdyBhZGo0IDEwMDAwMGBdLFtgeTNgLGAqLyBoIGFkajUgMTAwMDAwYF0sW2B4M2AsYCovIHcgYWRqNiAxMDAwMDBgXSxbYHk0YCxgKi8gaCBhZGo3IDEwMDAwMGBdLFtgeDRgLGAqLyB3IGFkajggMTAwMDAwYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiExLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYGxgLGB0YF0sW2BsYCxgcmAsYHRgXSxbYGxgLGByYCxgYmBdLFtgbGAsYGxgLGBiYF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgeDFgLGB0YF0sW2BjYF0sW2BsYCxgeDFgLGBiYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgeDFgLGB5MWBdLFtgbGAsYHgyYCxgeTJgXSxbYGxgLGB4M2AsYHkzYF0sW2BsYCxgeDRgLGB5NGBdXX1dfSxhY3Rpb25idXR0b25iYWNrcHJldmlvdXM6e2FkajpbXSxnZDpbW2BkeDJgLGAqLyBzcyAzIDhgXSxbYGc5YCxgKy0gdmMgMCBkeDJgXSxbYGcxMGAsYCstIHZjIGR4MiAwYF0sW2BnMTFgLGArLSBoYyAwIGR4MmBdLFtgZzEyYCxgKy0gaGMgZHgyIDBgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgbGAsYHRgXSxbYGxgLGByYCxgdGBdLFtgbGAsYHJgLGBiYF0sW2BsYCxgbGAsYGJgXSxbYGNgXSxbYG1gLGBnMTFgLGB2Y2BdLFtgbGAsYGcxMmAsYGc5YF0sW2BsYCxgZzEyYCxgZzEwYF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBkYXJrZW5gLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBnMTFgLGB2Y2BdLFtgbGAsYGcxMmAsYGc5YF0sW2BsYCxgZzEyYCxgZzEwYF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgZzExYCxgdmNgXSxbYGxgLGBnMTJgLGBnOWBdLFtgbGAsYGcxMmAsYGcxMGBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB0YF0sW2BsYCxgcmAsYHRgXSxbYGxgLGByYCxgYmBdLFtgbGAsYGxgLGBiYF0sW2BjYF1dfV19LGFjdGlvbmJ1dHRvbmJlZ2lubmluZzp7YWRqOltdLGdkOltbYGR4MmAsYCovIHNzIDMgOGBdLFtgZzlgLGArLSB2YyAwIGR4MmBdLFtgZzEwYCxgKy0gdmMgZHgyIDBgXSxbYGcxMWAsYCstIGhjIDAgZHgyYF0sW2BnMTJgLGArLSBoYyBkeDIgMGBdLFtgZzEzYCxgKi8gc3MgMyA0YF0sW2BnMTRgLGAqLyBnMTMgMSA4YF0sW2BnMTVgLGAqLyBnMTMgMSA0YF0sW2BnMTZgLGArLSBnMTEgZzE0IDBgXSxbYGcxN2AsYCstIGcxMSBnMTUgMGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBsYCxgdGBdLFtgbGAsYHJgLGB0YF0sW2BsYCxgcmAsYGJgXSxbYGxgLGBsYCxgYmBdLFtgY2BdLFtgbWAsYGcxN2AsYHZjYF0sW2BsYCxgZzEyYCxgZzlgXSxbYGxgLGBnMTJgLGBnMTBgXSxbYGNgXSxbYG1gLGBnMTZgLGBnOWBdLFtgbGAsYGcxMWAsYGc5YF0sW2BsYCxgZzExYCxgZzEwYF0sW2BsYCxgZzE2YCxgZzEwYF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBkYXJrZW5gLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBnMTdgLGB2Y2BdLFtgbGAsYGcxMmAsYGc5YF0sW2BsYCxgZzEyYCxgZzEwYF0sW2BjYF0sW2BtYCxgZzE2YCxgZzlgXSxbYGxgLGBnMTFgLGBnOWBdLFtgbGAsYGcxMWAsYGcxMGBdLFtgbGAsYGcxNmAsYGcxMGBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYGcxN2AsYHZjYF0sW2BsYCxgZzEyYCxgZzlgXSxbYGxgLGBnMTJgLGBnMTBgXSxbYGNgXSxbYG1gLGBnMTZgLGBnOWBdLFtgbGAsYGcxNmAsYGcxMGBdLFtgbGAsYGcxMWAsYGcxMGBdLFtgbGAsYGcxMWAsYGc5YF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHRgXSxbYGxgLGByYCxgdGBdLFtgbGAsYHJgLGBiYF0sW2BsYCxgbGAsYGJgXSxbYGNgXV19XX0sYWN0aW9uYnV0dG9uYmxhbms6e2FkajpbXSxnZDpbXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGBsYCxgdGBdLFtgbGAsYHJgLGB0YF0sW2BsYCxgcmAsYGJgXSxbYGxgLGBsYCxgYmBdLFtgY2BdXX1dfSxhY3Rpb25idXR0b25kb2N1bWVudDp7YWRqOltdLGdkOltbYGR4MmAsYCovIHNzIDMgOGBdLFtgZzlgLGArLSB2YyAwIGR4MmBdLFtgZzEwYCxgKy0gdmMgZHgyIDBgXSxbYGR4MWAsYCovIHNzIDkgMzJgXSxbYGcxMWAsYCstIGhjIDAgZHgxYF0sW2BnMTJgLGArLSBoYyBkeDEgMGBdLFtgZzEzYCxgKi8gc3MgMyAxNmBdLFtgZzE0YCxgKy0gZzEyIDAgZzEzYF0sW2BnMTVgLGArLSBnOSBnMTMgMGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBsYCxgdGBdLFtgbGAsYHJgLGB0YF0sW2BsYCxgcmAsYGJgXSxbYGxgLGBsYCxgYmBdLFtgY2BdLFtgbWAsYGcxMWAsYGc5YF0sW2BsYCxgZzE0YCxgZzlgXSxbYGxgLGBnMTJgLGBnMTVgXSxbYGxgLGBnMTJgLGBnMTBgXSxbYGxgLGBnMTFgLGBnMTBgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YGRhcmtlbkxlc3NgLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBnMTFgLGBnOWBdLFtgbGAsYGcxNGAsYGc5YF0sW2BsYCxgZzE0YCxgZzE1YF0sW2BsYCxgZzEyYCxgZzE1YF0sW2BsYCxgZzEyYCxgZzEwYF0sW2BsYCxgZzExYCxgZzEwYF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBkYXJrZW5gLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBnMTRgLGBnOWBdLFtgbGAsYGcxNGAsYGcxNWBdLFtgbGAsYGcxMmAsYGcxNWBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYGcxMWAsYGc5YF0sW2BsYCxgZzE0YCxgZzlgXSxbYGxgLGBnMTJgLGBnMTVgXSxbYGxgLGBnMTJgLGBnMTBgXSxbYGxgLGBnMTFgLGBnMTBgXSxbYGNgXSxbYG1gLGBnMTJgLGBnMTVgXSxbYGxgLGBnMTRgLGBnMTVgXSxbYGxgLGBnMTRgLGBnOWBdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB0YF0sW2BsYCxgcmAsYHRgXSxbYGxgLGByYCxgYmBdLFtgbGAsYGxgLGBiYF0sW2BjYF1dfV19LGFjdGlvbmJ1dHRvbmVuZDp7YWRqOltdLGdkOltbYGR4MmAsYCovIHNzIDMgOGBdLFtgZzlgLGArLSB2YyAwIGR4MmBdLFtgZzEwYCxgKy0gdmMgZHgyIDBgXSxbYGcxMWAsYCstIGhjIDAgZHgyYF0sW2BnMTJgLGArLSBoYyBkeDIgMGBdLFtgZzEzYCxgKi8gc3MgMyA0YF0sW2BnMTRgLGAqLyBnMTMgMyA0YF0sW2BnMTVgLGAqLyBnMTMgNyA4YF0sW2BnMTZgLGArLSBnMTEgZzE0IDBgXSxbYGcxN2AsYCstIGcxMSBnMTUgMGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBsYCxgdGBdLFtgbGAsYHJgLGB0YF0sW2BsYCxgcmAsYGJgXSxbYGxgLGBsYCxgYmBdLFtgY2BdLFtgbWAsYGcxNmAsYHZjYF0sW2BsYCxgZzExYCxgZzlgXSxbYGxgLGBnMTFgLGBnMTBgXSxbYGNgXSxbYG1gLGBnMTdgLGBnOWBdLFtgbGAsYGcxMmAsYGc5YF0sW2BsYCxgZzEyYCxgZzEwYF0sW2BsYCxgZzE3YCxgZzEwYF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBkYXJrZW5gLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBnMTZgLGB2Y2BdLFtgbGAsYGcxMWAsYGc5YF0sW2BsYCxgZzExYCxgZzEwYF0sW2BjYF0sW2BtYCxgZzE3YCxgZzlgXSxbYGxgLGBnMTJgLGBnOWBdLFtgbGAsYGcxMmAsYGcxMGBdLFtgbGAsYGcxN2AsYGcxMGBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYGcxNmAsYHZjYF0sW2BsYCxgZzExYCxgZzEwYF0sW2BsYCxgZzExYCxgZzlgXSxbYGNgXSxbYG1gLGBnMTdgLGBnOWBdLFtgbGAsYGcxMmAsYGc5YF0sW2BsYCxgZzEyYCxgZzEwYF0sW2BsYCxgZzE3YCxgZzEwYF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHRgXSxbYGxgLGByYCxgdGBdLFtgbGAsYHJgLGBiYF0sW2BsYCxgbGAsYGJgXSxbYGNgXV19XX0sYWN0aW9uYnV0dG9uZm9yd2FyZG5leHQ6e2FkajpbXSxnZDpbW2BkeDJgLGAqLyBzcyAzIDhgXSxbYGc5YCxgKy0gdmMgMCBkeDJgXSxbYGcxMGAsYCstIHZjIGR4MiAwYF0sW2BnMTFgLGArLSBoYyAwIGR4MmBdLFtgZzEyYCxgKy0gaGMgZHgyIDBgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgbGAsYHRgXSxbYGxgLGByYCxgdGBdLFtgbGAsYHJgLGBiYF0sW2BsYCxgbGAsYGJgXSxbYGNgXSxbYG1gLGBnMTJgLGB2Y2BdLFtgbGAsYGcxMWAsYGc5YF0sW2BsYCxgZzExYCxgZzEwYF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBkYXJrZW5gLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBnMTJgLGB2Y2BdLFtgbGAsYGcxMWAsYGc5YF0sW2BsYCxgZzExYCxgZzEwYF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgZzEyYCxgdmNgXSxbYGxgLGBnMTFgLGBnMTBgXSxbYGxgLGBnMTFgLGBnOWBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB0YF0sW2BsYCxgcmAsYHRgXSxbYGxgLGByYCxgYmBdLFtgbGAsYGxgLGBiYF0sW2BjYF1dfV19LGFjdGlvbmJ1dHRvbmhlbHA6e2FkajpbXSxnZDpbW2BkeDJgLGAqLyBzcyAzIDhgXSxbYGc5YCxgKy0gdmMgMCBkeDJgXSxbYGcxMWAsYCstIGhjIDAgZHgyYF0sW2BnMTNgLGAqLyBzcyAzIDRgXSxbYGcxNGAsYCovIGcxMyAxIDdgXSxbYGcxNWAsYCovIGcxMyAzIDE0YF0sW2BnMTZgLGAqLyBnMTMgMiA3YF0sW2BnMTlgLGAqLyBnMTMgMyA3YF0sW2BnMjBgLGAqLyBnMTMgNCA3YF0sW2BnMjFgLGAqLyBnMTMgMTcgMjhgXSxbYGcyM2AsYCovIGcxMyAyMSAyOGBdLFtgZzI0YCxgKi8gZzEzIDExIDE0YF0sW2BnMjdgLGArLSBnOSBnMTYgMGBdLFtgZzI5YCxgKy0gZzkgZzIxIDBgXSxbYGczMGAsYCstIGc5IGcyMyAwYF0sW2BnMzFgLGArLSBnOSBnMjQgMGBdLFtgZzMzYCxgKy0gZzExIGcxNSAwYF0sW2BnMzZgLGArLSBnMTEgZzE5IDBgXSxbYGczN2AsYCstIGcxMSBnMjAgMGBdLFtgZzQxYCxgKi8gZzEzIDEgMTRgXSxbYGc0MmAsYCovIGcxMyAzIDI4YF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiExLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYGxgLGB0YF0sW2BsYCxgcmAsYHRgXSxbYGxgLGByYCxgYmBdLFtgbGAsYGxgLGBiYF0sW2BjYF0sW2BtYCxgZzMzYCxgZzI3YF0sW2BhYCxgZzE2YCxgZzE2YCxgY2QyYCxgY2QyYF0sW2BhYCxgZzE0YCxgZzE1YCxgMGAsYGNkNGBdLFtgYWAsYGc0MWAsYGc0MmAsYDNjZDRgLGAtNTQwMDAwMGBdLFtgbGAsYGczN2AsYGczMGBdLFtgbGAsYGczNmAsYGczMGBdLFtgbGAsYGczNmAsYGcyOWBdLFtgYWAsYGcxNGAsYGcxNWAsYGNkMmAsYGNkNGBdLFtgYWAsYGc0MWAsYGc0MmAsYGNkNGAsYC01NDAwMDAwYF0sW2BhYCxgZzE0YCxgZzE0YCxgMGAsYC0xMDgwMDAwMGBdLFtgY2BdLFtgbWAsYGhjYCxgZzMxYF0sW2BhYCxgZzQyYCxgZzQyYCxgM2NkNGAsYDIxNjAwMDAwYF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBkYXJrZW5gLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBnMzNgLGBnMjdgXSxbYGFgLGBnMTZgLGBnMTZgLGBjZDJgLGBjZDJgXSxbYGFgLGBnMTRgLGBnMTVgLGAwYCxgY2Q0YF0sW2BhYCxgZzQxYCxgZzQyYCxgM2NkNGAsYC01NDAwMDAwYF0sW2BsYCxgZzM3YCxgZzMwYF0sW2BsYCxgZzM2YCxgZzMwYF0sW2BsYCxgZzM2YCxgZzI5YF0sW2BhYCxgZzE0YCxgZzE1YCxgY2QyYCxgY2Q0YF0sW2BhYCxgZzQxYCxgZzQyYCxgY2Q0YCxgLTU0MDAwMDBgXSxbYGFgLGBnMTRgLGBnMTRgLGAwYCxgLTEwODAwMDAwYF0sW2BjYF0sW2BtYCxgaGNgLGBnMzFgXSxbYGFgLGBnNDJgLGBnNDJgLGAzY2Q0YCxgMjE2MDAwMDBgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBnMzNgLGBnMjdgXSxbYGFgLGBnMTZgLGBnMTZgLGBjZDJgLGBjZDJgXSxbYGFgLGBnMTRgLGBnMTVgLGAwYCxgY2Q0YF0sW2BhYCxgZzQxYCxgZzQyYCxgM2NkNGAsYC01NDAwMDAwYF0sW2BsYCxgZzM3YCxgZzMwYF0sW2BsYCxgZzM2YCxgZzMwYF0sW2BsYCxgZzM2YCxgZzI5YF0sW2BhYCxgZzE0YCxgZzE1YCxgY2QyYCxgY2Q0YF0sW2BhYCxgZzQxYCxgZzQyYCxgY2Q0YCxgLTU0MDAwMDBgXSxbYGFgLGBnMTRgLGBnMTRgLGAwYCxgLTEwODAwMDAwYF0sW2BjYF0sW2BtYCxgaGNgLGBnMzFgXSxbYGFgLGBnNDJgLGBnNDJgLGAzY2Q0YCxgMjE2MDAwMDBgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGBsYCxgdGBdLFtgbGAsYHJgLGB0YF0sW2BsYCxgcmAsYGJgXSxbYGxgLGBsYCxgYmBdLFtgY2BdXX1dfSxhY3Rpb25idXR0b25ob21lOnthZGo6W10sZ2Q6W1tgZHgyYCxgKi8gc3MgMyA4YF0sW2BnOWAsYCstIHZjIDAgZHgyYF0sW2BnMTBgLGArLSB2YyBkeDIgMGBdLFtgZzExYCxgKy0gaGMgMCBkeDJgXSxbYGcxMmAsYCstIGhjIGR4MiAwYF0sW2BnMTNgLGAqLyBzcyAzIDRgXSxbYGcxNGAsYCovIGcxMyAxIDE2YF0sW2BnMTVgLGAqLyBnMTMgMSA4YF0sW2BnMTZgLGAqLyBnMTMgMyAxNmBdLFtgZzE3YCxgKi8gZzEzIDUgMTZgXSxbYGcxOGAsYCovIGcxMyA3IDE2YF0sW2BnMTlgLGAqLyBnMTMgOSAxNmBdLFtgZzIwYCxgKi8gZzEzIDExIDE2YF0sW2BnMjFgLGAqLyBnMTMgMyA0YF0sW2BnMjJgLGAqLyBnMTMgMTMgMTZgXSxbYGcyM2AsYCovIGcxMyA3IDhgXSxbYGcyNGAsYCstIGc5IGcxNCAwYF0sW2BnMjVgLGArLSBnOSBnMTYgMGBdLFtgZzI2YCxgKy0gZzkgZzE3IDBgXSxbYGcyN2AsYCstIGc5IGcyMSAwYF0sW2BnMjhgLGArLSBnMTEgZzE1IDBgXSxbYGcyOWAsYCstIGcxMSBnMTggMGBdLFtgZzMwYCxgKy0gZzExIGcxOSAwYF0sW2BnMzFgLGArLSBnMTEgZzIwIDBgXSxbYGczMmAsYCstIGcxMSBnMjIgMGBdLFtgZzMzYCxgKy0gZzExIGcyMyAwYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiExLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYGxgLGB0YF0sW2BsYCxgcmAsYHRgXSxbYGxgLGByYCxgYmBdLFtgbGAsYGxgLGBiYF0sW2BjYF0sW2BtYCxgaGNgLGBnOWBdLFtgbGAsYGcxMWAsYHZjYF0sW2BsYCxgZzI4YCxgdmNgXSxbYGxgLGBnMjhgLGBnMTBgXSxbYGxgLGBnMzNgLGBnMTBgXSxbYGxgLGBnMzNgLGB2Y2BdLFtgbGAsYGcxMmAsYHZjYF0sW2BsYCxgZzMyYCxgZzI2YF0sW2BsYCxgZzMyYCxgZzI0YF0sW2BsYCxgZzMxYCxgZzI0YF0sW2BsYCxgZzMxYCxgZzI1YF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBkYXJrZW5MZXNzYCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgZzMyYCxgZzI2YF0sW2BsYCxgZzMyYCxgZzI0YF0sW2BsYCxgZzMxYCxgZzI0YF0sW2BsYCxgZzMxYCxgZzI1YF0sW2BjYF0sW2BtYCxgZzI4YCxgdmNgXSxbYGxgLGBnMjhgLGBnMTBgXSxbYGxgLGBnMjlgLGBnMTBgXSxbYGxgLGBnMjlgLGBnMjdgXSxbYGxgLGBnMzBgLGBnMjdgXSxbYGxgLGBnMzBgLGBnMTBgXSxbYGxgLGBnMzNgLGBnMTBgXSxbYGxgLGBnMzNgLGB2Y2BdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgZGFya2VuYCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgaGNgLGBnOWBdLFtgbGAsYGcxMWAsYHZjYF0sW2BsYCxgZzEyYCxgdmNgXSxbYGNgXSxbYG1gLGBnMjlgLGBnMjdgXSxbYGxgLGBnMzBgLGBnMjdgXSxbYGxgLGBnMzBgLGBnMTBgXSxbYGxgLGBnMjlgLGBnMTBgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBoY2AsYGc5YF0sW2BsYCxgZzMxYCxgZzI1YF0sW2BsYCxgZzMxYCxgZzI0YF0sW2BsYCxgZzMyYCxgZzI0YF0sW2BsYCxgZzMyYCxgZzI2YF0sW2BsYCxgZzEyYCxgdmNgXSxbYGxgLGBnMzNgLGB2Y2BdLFtgbGAsYGczM2AsYGcxMGBdLFtgbGAsYGcyOGAsYGcxMGBdLFtgbGAsYGcyOGAsYHZjYF0sW2BsYCxgZzExYCxgdmNgXSxbYGNgXSxbYG1gLGBnMzFgLGBnMjVgXSxbYGxgLGBnMzJgLGBnMjZgXSxbYG1gLGBnMzNgLGB2Y2BdLFtgbGAsYGcyOGAsYHZjYF0sW2BtYCxgZzI5YCxgZzEwYF0sW2BsYCxgZzI5YCxgZzI3YF0sW2BsYCxgZzMwYCxgZzI3YF0sW2BsYCxgZzMwYCxgZzEwYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHRgXSxbYGxgLGByYCxgdGBdLFtgbGAsYHJgLGBiYF0sW2BsYCxgbGAsYGJgXSxbYGNgXV19XX0sYWN0aW9uYnV0dG9uaW5mb3JtYXRpb246e2FkajpbXSxnZDpbW2BkeDJgLGAqLyBzcyAzIDhgXSxbYGc5YCxgKy0gdmMgMCBkeDJgXSxbYGcxMWAsYCstIGhjIDAgZHgyYF0sW2BnMTNgLGAqLyBzcyAzIDRgXSxbYGcxNGAsYCovIGcxMyAxIDMyYF0sW2BnMTdgLGAqLyBnMTMgNSAxNmBdLFtgZzE4YCxgKi8gZzEzIDMgOGBdLFtgZzE5YCxgKi8gZzEzIDEzIDMyYF0sW2BnMjBgLGAqLyBnMTMgMTkgMzJgXSxbYGcyMmAsYCovIGcxMyAxMSAxNmBdLFtgZzIzYCxgKi8gZzEzIDEzIDE2YF0sW2BnMjRgLGAqLyBnMTMgNyA4YF0sW2BnMjVgLGArLSBnOSBnMTQgMGBdLFtgZzI4YCxgKy0gZzkgZzE3IDBgXSxbYGcyOWAsYCstIGc5IGcxOCAwYF0sW2BnMzBgLGArLSBnOSBnMjMgMGBdLFtgZzMxYCxgKy0gZzkgZzI0IDBgXSxbYGczMmAsYCstIGcxMSBnMTcgMGBdLFtgZzM0YCxgKy0gZzExIGcxOSAwYF0sW2BnMzVgLGArLSBnMTEgZzIwIDBgXSxbYGczN2AsYCstIGcxMSBnMjIgMGBdLFtgZzM4YCxgKi8gZzEzIDMgMzJgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgbGAsYHRgXSxbYGxgLGByYCxgdGBdLFtgbGAsYHJgLGBiYF0sW2BsYCxgbGAsYGJgXSxbYGNgXSxbYG1gLGBoY2AsYGc5YF0sW2BhYCxgZHgyYCxgZHgyYCxgM2NkNGAsYDIxNjAwMDAwYF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBkYXJrZW5gLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBoY2AsYGc5YF0sW2BhYCxgZHgyYCxgZHgyYCxgM2NkNGAsYDIxNjAwMDAwYF0sW2BjYF0sW2BtYCxgaGNgLGBnMjVgXSxbYGFgLGBnMzhgLGBnMzhgLGAzY2Q0YCxgMjE2MDAwMDBgXSxbYG1gLGBnMzJgLGBnMjhgXSxbYGxgLGBnMzJgLGBnMjlgXSxbYGxgLGBnMzRgLGBnMjlgXSxbYGxgLGBnMzRgLGBnMzBgXSxbYGxgLGBnMzJgLGBnMzBgXSxbYGxgLGBnMzJgLGBnMzFgXSxbYGxgLGBnMzdgLGBnMzFgXSxbYGxgLGBnMzdgLGBnMzBgXSxbYGxgLGBnMzVgLGBnMzBgXSxbYGxgLGBnMzVgLGBnMjhgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YGxpZ2h0ZW5gLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBoY2AsYGcyNWBdLFtgYWAsYGczOGAsYGczOGAsYDNjZDRgLGAyMTYwMDAwMGBdLFtgbWAsYGczMmAsYGcyOGBdLFtgbGAsYGczNWAsYGcyOGBdLFtgbGAsYGczNWAsYGczMGBdLFtgbGAsYGczN2AsYGczMGBdLFtgbGAsYGczN2AsYGczMWBdLFtgbGAsYGczMmAsYGczMWBdLFtgbGAsYGczMmAsYGczMGBdLFtgbGAsYGczNGAsYGczMGBdLFtgbGAsYGczNGAsYGcyOWBdLFtgbGAsYGczMmAsYGcyOWBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYGhjYCxgZzlgXSxbYGFgLGBkeDJgLGBkeDJgLGAzY2Q0YCxgMjE2MDAwMDBgXSxbYGNgXSxbYG1gLGBoY2AsYGcyNWBdLFtgYWAsYGczOGAsYGczOGAsYDNjZDRgLGAyMTYwMDAwMGBdLFtgbWAsYGczMmAsYGcyOGBdLFtgbGAsYGczNWAsYGcyOGBdLFtgbGAsYGczNWAsYGczMGBdLFtgbGAsYGczN2AsYGczMGBdLFtgbGAsYGczN2AsYGczMWBdLFtgbGAsYGczMmAsYGczMWBdLFtgbGAsYGczMmAsYGczMGBdLFtgbGAsYGczNGAsYGczMGBdLFtgbGAsYGczNGAsYGcyOWBdLFtgbGAsYGczMmAsYGcyOWBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB0YF0sW2BsYCxgcmAsYHRgXSxbYGxgLGByYCxgYmBdLFtgbGAsYGxgLGBiYF0sW2BjYF1dfV19LGFjdGlvbmJ1dHRvbm1vdmllOnthZGo6W10sZ2Q6W1tgZHgyYCxgKi8gc3MgMyA4YF0sW2BnOWAsYCstIHZjIDAgZHgyYF0sW2BnMTBgLGArLSB2YyBkeDIgMGBdLFtgZzExYCxgKy0gaGMgMCBkeDJgXSxbYGcxMmAsYCstIGhjIGR4MiAwYF0sW2BnMTNgLGAqLyBzcyAzIDRgXSxbYGcxNGAsYCovIGcxMyAxNDU1IDIxNjAwYF0sW2BnMTVgLGAqLyBnMTMgMTkwNSAyMTYwMGBdLFtgZzE2YCxgKi8gZzEzIDIzMjUgMjE2MDBgXSxbYGcxN2AsYCovIGcxMyAxNjE1NSAyMTYwMGBdLFtgZzE4YCxgKi8gZzEzIDE3MDEwIDIxNjAwYF0sW2BnMTlgLGAqLyBnMTMgMTkzMzUgMjE2MDBgXSxbYGcyMGAsYCovIGcxMyAxOTcyNSAyMTYwMGBdLFtgZzIxYCxgKi8gZzEzIDIwNTk1IDIxNjAwYF0sW2BnMjJgLGAqLyBnMTMgNTI4MCAyMTYwMGBdLFtgZzIzYCxgKi8gZzEzIDU3MzAgMjE2MDBgXSxbYGcyNGAsYCovIGcxMyA2NjMwIDIxNjAwYF0sW2BnMjVgLGAqLyBnMTMgNzQ5MiAyMTYwMGBdLFtgZzI2YCxgKi8gZzEzIDkwNjcgMjE2MDBgXSxbYGcyN2AsYCovIGcxMyA5NTU1IDIxNjAwYF0sW2BnMjhgLGAqLyBnMTMgMTMzNDIgMjE2MDBgXSxbYGcyOWAsYCovIGcxMyAxNDU4MCAyMTYwMGBdLFtgZzMwYCxgKi8gZzEzIDE1NTkyIDIxNjAwYF0sW2BnMzFgLGArLSBnMTEgZzE0IDBgXSxbYGczMmAsYCstIGcxMSBnMTUgMGBdLFtgZzMzYCxgKy0gZzExIGcxNiAwYF0sW2BnMzRgLGArLSBnMTEgZzE3IDBgXSxbYGczNWAsYCstIGcxMSBnMTggMGBdLFtgZzM2YCxgKy0gZzExIGcxOSAwYF0sW2BnMzdgLGArLSBnMTEgZzIwIDBgXSxbYGczOGAsYCstIGcxMSBnMjEgMGBdLFtgZzM5YCxgKy0gZzkgZzIyIDBgXSxbYGc0MGAsYCstIGc5IGcyMyAwYF0sW2BnNDFgLGArLSBnOSBnMjQgMGBdLFtgZzQyYCxgKy0gZzkgZzI1IDBgXSxbYGc0M2AsYCstIGc5IGcyNiAwYF0sW2BnNDRgLGArLSBnOSBnMjcgMGBdLFtgZzQ1YCxgKy0gZzkgZzI4IDBgXSxbYGc0NmAsYCstIGc5IGcyOSAwYF0sW2BnNDdgLGArLSBnOSBnMzAgMGBdLFtgZzQ4YCxgKy0gZzkgZzMxIDBgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgbGAsYHRgXSxbYGxgLGByYCxgdGBdLFtgbGAsYHJgLGBiYF0sW2BsYCxgbGAsYGJgXSxbYGNgXSxbYG1gLGBnMTFgLGBnMzlgXSxbYGxgLGBnMTFgLGBnNDRgXSxbYGxgLGBnMzFgLGBnNDRgXSxbYGxgLGBnMzJgLGBnNDNgXSxbYGxgLGBnMzNgLGBnNDNgXSxbYGxgLGBnMzNgLGBnNDdgXSxbYGxgLGBnMzVgLGBnNDdgXSxbYGxgLGBnMzVgLGBnNDVgXSxbYGxgLGBnMzZgLGBnNDVgXSxbYGxgLGBnMzhgLGBnNDZgXSxbYGxgLGBnMTJgLGBnNDZgXSxbYGxgLGBnMTJgLGBnNDFgXSxbYGxgLGBnMzhgLGBnNDFgXSxbYGxgLGBnMzdgLGBnNDJgXSxbYGxgLGBnMzVgLGBnNDJgXSxbYGxgLGBnMzVgLGBnNDFgXSxbYGxgLGBnMzRgLGBnNDBgXSxbYGxgLGBnMzJgLGBnNDBgXSxbYGxgLGBnMzFgLGBnMzlgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YGRhcmtlbmAsc3Ryb2tlOiExLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYGcxMWAsYGczOWBdLFtgbGAsYGcxMWAsYGc0NGBdLFtgbGAsYGczMWAsYGc0NGBdLFtgbGAsYGczMmAsYGc0M2BdLFtgbGAsYGczM2AsYGc0M2BdLFtgbGAsYGczM2AsYGc0N2BdLFtgbGAsYGczNWAsYGc0N2BdLFtgbGAsYGczNWAsYGc0NWBdLFtgbGAsYGczNmAsYGc0NWBdLFtgbGAsYGczOGAsYGc0NmBdLFtgbGAsYGcxMmAsYGc0NmBdLFtgbGAsYGcxMmAsYGc0MWBdLFtgbGAsYGczOGAsYGc0MWBdLFtgbGAsYGczN2AsYGc0MmBdLFtgbGAsYGczNWAsYGc0MmBdLFtgbGAsYGczNWAsYGc0MWBdLFtgbGAsYGczNGAsYGc0MGBdLFtgbGAsYGczMmAsYGc0MGBdLFtgbGAsYGczMWAsYGczOWBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYGcxMWAsYGczOWBdLFtgbGAsYGczMWAsYGczOWBdLFtgbGAsYGczMmAsYGc0MGBdLFtgbGAsYGczNGAsYGc0MGBdLFtgbGAsYGczNWAsYGc0MWBdLFtgbGAsYGczNWAsYGc0MmBdLFtgbGAsYGczN2AsYGc0MmBdLFtgbGAsYGczOGAsYGc0MWBdLFtgbGAsYGcxMmAsYGc0MWBdLFtgbGAsYGcxMmAsYGc0NmBdLFtgbGAsYGczOGAsYGc0NmBdLFtgbGAsYGczNmAsYGc0NWBdLFtgbGAsYGczNWAsYGc0NWBdLFtgbGAsYGczNWAsYGc0N2BdLFtgbGAsYGczM2AsYGc0N2BdLFtgbGAsYGczM2AsYGc0M2BdLFtgbGAsYGczMmAsYGc0M2BdLFtgbGAsYGczMWAsYGc0NGBdLFtgbGAsYGcxMWAsYGc0NGBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB0YF0sW2BsYCxgcmAsYHRgXSxbYGxgLGByYCxgYmBdLFtgbGAsYGxgLGBiYF0sW2BjYF1dfV19LGFjdGlvbmJ1dHRvbnJldHVybjp7YWRqOltdLGdkOltbYGR4MmAsYCovIHNzIDMgOGBdLFtgZzlgLGArLSB2YyAwIGR4MmBdLFtgZzEwYCxgKy0gdmMgZHgyIDBgXSxbYGcxMWAsYCstIGhjIDAgZHgyYF0sW2BnMTJgLGArLSBoYyBkeDIgMGBdLFtgZzEzYCxgKi8gc3MgMyA0YF0sW2BnMTRgLGAqLyBnMTMgNyA4YF0sW2BnMTVgLGAqLyBnMTMgMyA0YF0sW2BnMTZgLGAqLyBnMTMgNSA4YF0sW2BnMTdgLGAqLyBnMTMgMyA4YF0sW2BnMThgLGAqLyBnMTMgMSA0YF0sW2BnMTlgLGArLSBnOSBnMTUgMGBdLFtgZzIwYCxgKy0gZzkgZzE2IDBgXSxbYGcyMWAsYCstIGc5IGcxOCAwYF0sW2BnMjJgLGArLSBnMTEgZzE0IDBgXSxbYGcyM2AsYCstIGcxMSBnMTUgMGBdLFtgZzI0YCxgKy0gZzExIGcxNiAwYF0sW2BnMjVgLGArLSBnMTEgZzE3IDBgXSxbYGcyNmAsYCstIGcxMSBnMTggMGBdLFtgZzI3YCxgKi8gZzEzIDEgOGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBsYCxgdGBdLFtgbGAsYHJgLGB0YF0sW2BsYCxgcmAsYGJgXSxbYGxgLGBsYCxgYmBdLFtgY2BdLFtgbWAsYGcxMmAsYGcyMWBdLFtgbGAsYGcyM2AsYGc5YF0sW2BsYCxgaGNgLGBnMjFgXSxbYGxgLGBnMjRgLGBnMjFgXSxbYGxgLGBnMjRgLGBnMjBgXSxbYGFgLGBnMjdgLGBnMjdgLGAwYCxgY2Q0YF0sW2BsYCxgZzI1YCxgZzE5YF0sW2BhYCxgZzI3YCxgZzI3YCxgY2Q0YCxgY2Q0YF0sW2BsYCxgZzI2YCxgZzIxYF0sW2BsYCxgZzExYCxgZzIxYF0sW2BsYCxgZzExYCxgZzIwYF0sW2BhYCxgZzE3YCxgZzE3YCxgY2QyYCxgLTU0MDAwMDBgXSxbYGxgLGBoY2AsYGcxMGBdLFtgYWAsYGcxN2AsYGcxN2AsYGNkNGAsYC01NDAwMDAwYF0sW2BsYCxgZzIyYCxgZzIxYF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBkYXJrZW5gLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBnMTJgLGBnMjFgXSxbYGxgLGBnMjNgLGBnOWBdLFtgbGAsYGhjYCxgZzIxYF0sW2BsYCxgZzI0YCxgZzIxYF0sW2BsYCxgZzI0YCxgZzIwYF0sW2BhYCxgZzI3YCxgZzI3YCxgMGAsYGNkNGBdLFtgbGAsYGcyNWAsYGcxOWBdLFtgYWAsYGcyN2AsYGcyN2AsYGNkNGAsYGNkNGBdLFtgbGAsYGcyNmAsYGcyMWBdLFtgbGAsYGcxMWAsYGcyMWBdLFtgbGAsYGcxMWAsYGcyMGBdLFtgYWAsYGcxN2AsYGcxN2AsYGNkMmAsYC01NDAwMDAwYF0sW2BsYCxgaGNgLGBnMTBgXSxbYGFgLGBnMTdgLGBnMTdgLGBjZDRgLGAtNTQwMDAwMGBdLFtgbGAsYGcyMmAsYGcyMWBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYGcxMmAsYGcyMWBdLFtgbGAsYGcyMmAsYGcyMWBdLFtgbGAsYGcyMmAsYGcyMGBdLFtgYWAsYGcxN2AsYGcxN2AsYDBgLGBjZDRgXSxbYGxgLGBnMjVgLGBnMTBgXSxbYGFgLGBnMTdgLGBnMTdgLGBjZDRgLGBjZDRgXSxbYGxgLGBnMTFgLGBnMjFgXSxbYGxgLGBnMjZgLGBnMjFgXSxbYGxgLGBnMjZgLGBnMjBgXSxbYGFgLGBnMjdgLGBnMjdgLGBjZDJgLGAtNTQwMDAwMGBdLFtgbGAsYGhjYCxgZzE5YF0sW2BhYCxgZzI3YCxgZzI3YCxgY2Q0YCxgLTU0MDAwMDBgXSxbYGxgLGBnMjRgLGBnMjFgXSxbYGxgLGBoY2AsYGcyMWBdLFtgbGAsYGcyM2AsYGc5YF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHRgXSxbYGxgLGByYCxgdGBdLFtgbGAsYHJgLGBiYF0sW2BsYCxgbGAsYGJgXSxbYGNgXV19XX0sYWN0aW9uYnV0dG9uc291bmQ6e2FkajpbXSxnZDpbW2BkeDJgLGAqLyBzcyAzIDhgXSxbYGc5YCxgKy0gdmMgMCBkeDJgXSxbYGcxMGAsYCstIHZjIGR4MiAwYF0sW2BnMTFgLGArLSBoYyAwIGR4MmBdLFtgZzEyYCxgKy0gaGMgZHgyIDBgXSxbYGcxM2AsYCovIHNzIDMgNGBdLFtgZzE0YCxgKi8gZzEzIDEgOGBdLFtgZzE1YCxgKi8gZzEzIDUgMTZgXSxbYGcxNmAsYCovIGcxMyA1IDhgXSxbYGcxN2AsYCovIGcxMyAxMSAxNmBdLFtgZzE4YCxgKi8gZzEzIDMgNGBdLFtgZzE5YCxgKi8gZzEzIDcgOGBdLFtgZzIwYCxgKy0gZzkgZzE0IDBgXSxbYGcyMWAsYCstIGc5IGcxNSAwYF0sW2BnMjJgLGArLSBnOSBnMTcgMGBdLFtgZzIzYCxgKy0gZzkgZzE5IDBgXSxbYGcyNGAsYCstIGcxMSBnMTUgMGBdLFtgZzI1YCxgKy0gZzExIGcxNiAwYF0sW2BnMjZgLGArLSBnMTEgZzE4IDBgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgbGAsYHRgXSxbYGxgLGByYCxgdGBdLFtgbGAsYHJgLGBiYF0sW2BsYCxgbGAsYGJgXSxbYGNgXSxbYG1gLGBnMTFgLGBnMjFgXSxbYGxgLGBnMTFgLGBnMjJgXSxbYGxgLGBnMjRgLGBnMjJgXSxbYGxgLGBnMjVgLGBnMTBgXSxbYGxgLGBnMjVgLGBnOWBdLFtgbGAsYGcyNGAsYGcyMWBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgZGFya2VuYCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgZzExYCxgZzIxYF0sW2BsYCxgZzExYCxgZzIyYF0sW2BsYCxgZzI0YCxgZzIyYF0sW2BsYCxgZzI1YCxgZzEwYF0sW2BsYCxgZzI1YCxgZzlgXSxbYGxgLGBnMjRgLGBnMjFgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBnMTFgLGBnMjFgXSxbYGxgLGBnMjRgLGBnMjFgXSxbYGxgLGBnMjVgLGBnOWBdLFtgbGAsYGcyNWAsYGcxMGBdLFtgbGAsYGcyNGAsYGcyMmBdLFtgbGAsYGcxMWAsYGcyMmBdLFtgY2BdLFtgbWAsYGcyNmAsYGcyMWBdLFtgbGAsYGcxMmAsYGcyMGBdLFtgbWAsYGcyNmAsYHZjYF0sW2BsYCxgZzEyYCxgdmNgXSxbYG1gLGBnMjZgLGBnMjJgXSxbYGxgLGBnMTJgLGBnMjNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGBsYCxgdGBdLFtgbGAsYHJgLGB0YF0sW2BsYCxgcmAsYGJgXSxbYGxgLGBsYCxgYmBdLFtgY2BdXX1dfSxhcmM6e2FkajpbW2BhZGoxYCxgdmFsIDE2MjAwMDAwYF0sW2BhZGoyYCxgdmFsIDBgXV0sZ2Q6W1tgc3RBbmdgLGBwaW4gMCBhZGoxIDIxNTk5OTk5YF0sW2BlbkFuZ2AsYHBpbiAwIGFkajIgMjE1OTk5OTlgXSxbYHN3MTFgLGArLSBlbkFuZyAwIHN0QW5nYF0sW2BzdzEyYCxgKy0gc3cxMSAyMTYwMDAwMCAwYF0sW2Bzd0FuZ2AsYD86IHN3MTEgc3cxMSBzdzEyYF0sW2B3dDFgLGBzaW4gd2QyIHN0QW5nYF0sW2BodDFgLGBjb3MgaGQyIHN0QW5nYF0sW2BkeDFgLGBjYXQyIHdkMiBodDEgd3QxYF0sW2BkeTFgLGBzYXQyIGhkMiBodDEgd3QxYF0sW2B3dDJgLGBzaW4gd2QyIGVuQW5nYF0sW2BodDJgLGBjb3MgaGQyIGVuQW5nYF0sW2BkeDJgLGBjYXQyIHdkMiBodDIgd3QyYF0sW2BkeTJgLGBzYXQyIGhkMiBodDIgd3QyYF0sW2B4MWAsYCstIGhjIGR4MSAwYF0sW2B5MWAsYCstIHZjIGR5MSAwYF0sW2B4MmAsYCstIGhjIGR4MiAwYF0sW2B5MmAsYCstIHZjIGR5MiAwYF0sW2BzdzBgLGArLSAyMTYwMDAwMCAwIHN0QW5nYF0sW2BkYTFgLGArLSBzd0FuZyAwIHN3MGBdLFtgZzFgLGBtYXggeDEgeDJgXSxbYGlyYCxgPzogZGExIHIgZzFgXSxbYHN3MWAsYCstIGNkNCAwIHN0QW5nYF0sW2BzdzJgLGArLSAyNzAwMDAwMCAwIHN0QW5nYF0sW2BzdzNgLGA/OiBzdzEgc3cxIHN3MmBdLFtgZGEyYCxgKy0gc3dBbmcgMCBzdzNgXSxbYGc1YCxgbWF4IHkxIHkyYF0sW2BpYmAsYD86IGRhMiBiIGc1YF0sW2BzdzRgLGArLSBjZDIgMCBzdEFuZ2BdLFtgc3c1YCxgKy0gMzI0MDAwMDAgMCBzdEFuZ2BdLFtgc3c2YCxgPzogc3c0IHN3NCBzdzVgXSxbYGRhM2AsYCstIHN3QW5nIDAgc3c2YF0sW2BnOWAsYG1pbiB4MSB4MmBdLFtgaWxgLGA/OiBkYTMgbCBnOWBdLFtgc3c3YCxgKy0gM2NkNCAwIHN0QW5nYF0sW2BzdzhgLGArLSAzNzgwMDAwMCAwIHN0QW5nYF0sW2BzdzlgLGA/OiBzdzcgc3c3IHN3OGBdLFtgZGE0YCxgKy0gc3dBbmcgMCBzdzlgXSxbYGcxM2AsYG1pbiB5MSB5MmBdLFtgaXRgLGA/OiBkYTQgdCBnMTNgXSxbYGNhbmcxYCxgKy0gc3RBbmcgMCBjZDRgXSxbYGNhbmcyYCxgKy0gZW5BbmcgY2Q0IDBgXSxbYGNhbmczYCxgKy8gY2FuZzEgY2FuZzIgMmBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGB4MWAsYHkxYF0sW2BhYCxgd2QyYCxgaGQyYCxgc3RBbmdgLGBzd0FuZ2BdLFtgbGAsYGhjYCxgdmNgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGB4MWAsYHkxYF0sW2BhYCxgd2QyYCxgaGQyYCxgc3RBbmdgLGBzd0FuZ2BdXX1dfSxiZW50YXJyb3c6e2FkajpbW2BhZGoxYCxgdmFsIDI1MDAwYF0sW2BhZGoyYCxgdmFsIDI1MDAwYF0sW2BhZGozYCxgdmFsIDI1MDAwYF0sW2BhZGo0YCxgdmFsIDQzNzUwYF1dLGdkOltbYGEyYCxgcGluIDAgYWRqMiA1MDAwMGBdLFtgbWF4QWRqMWAsYCovIGEyIDIgMWBdLFtgYTFgLGBwaW4gMCBhZGoxIG1heEFkajFgXSxbYGEzYCxgcGluIDAgYWRqMyA1MDAwMGBdLFtgdGhgLGAqLyBzcyBhMSAxMDAwMDBgXSxbYGF3MmAsYCovIHNzIGEyIDEwMDAwMGBdLFtgdGgyYCxgKi8gdGggMSAyYF0sW2BkaDJgLGArLSBhdzIgMCB0aDJgXSxbYGFoYCxgKi8gc3MgYTMgMTAwMDAwYF0sW2Bid2AsYCstIHIgMCBhaGBdLFtgYmhgLGArLSBiIDAgZGgyYF0sW2Bic2AsYG1pbiBidyBiaGBdLFtgbWF4QWRqNGAsYCovIDEwMDAwMCBicyBzc2BdLFtgYTRgLGBwaW4gMCBhZGo0IG1heEFkajRgXSxbYGJkYCxgKi8gc3MgYTQgMTAwMDAwYF0sW2BiZDNgLGArLSBiZCAwIHRoYF0sW2BiZDJgLGBtYXggYmQzIDBgXSxbYHgzYCxgKy0gdGggYmQyIDBgXSxbYHg0YCxgKy0gciAwIGFoYF0sW2B5M2AsYCstIGRoMiB0aCAwYF0sW2B5NGAsYCstIHkzIGRoMiAwYF0sW2B5NWAsYCstIGRoMiBiZCAwYF0sW2B5NmAsYCstIHkzIGJkMiAwYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGBiYF0sW2BsYCxgbGAsYHk1YF0sW2BhYCxgYmRgLGBiZGAsYGNkMmAsYGNkNGBdLFtgbGAsYHg0YCxgZGgyYF0sW2BsYCxgeDRgLGB0YF0sW2BsYCxgcmAsYGF3MmBdLFtgbGAsYHg0YCxgeTRgXSxbYGxgLGB4NGAsYHkzYF0sW2BsYCxgeDNgLGB5M2BdLFtgYWAsYGJkMmAsYGJkMmAsYDNjZDRgLGAtNTQwMDAwMGBdLFtgbGAsYHRoYCxgYmBdLFtgY2BdXX1dfSxiZW50Y29ubmVjdG9yMjp7YWRqOltdLGdkOltdLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHRgXSxbYGxgLGByYCxgdGBdLFtgbGAsYHJgLGBiYF1dfV19LGJlbnRjb25uZWN0b3IzOnthZGo6W1tgYWRqMWAsYHZhbCA1MDAwMGBdXSxnZDpbW2B4MWAsYCovIHcgYWRqMSAxMDAwMDBgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGBsYCxgdGBdLFtgbGAsYHgxYCxgdGBdLFtgbGAsYHgxYCxgYmBdLFtgbGAsYHJgLGBiYF1dfV19LGJlbnRjb25uZWN0b3I0OnthZGo6W1tgYWRqMWAsYHZhbCA1MDAwMGBdLFtgYWRqMmAsYHZhbCA1MDAwMGBdXSxnZDpbW2B4MWAsYCovIHcgYWRqMSAxMDAwMDBgXSxbYHgyYCxgKy8geDEgciAyYF0sW2B5MmAsYCovIGggYWRqMiAxMDAwMDBgXSxbYHkxYCxgKy8gdCB5MiAyYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHRgXSxbYGxgLGB4MWAsYHRgXSxbYGxgLGB4MWAsYHkyYF0sW2BsYCxgcmAsYHkyYF0sW2BsYCxgcmAsYGJgXV19XX0sYmVudGNvbm5lY3RvcjU6e2FkajpbW2BhZGoxYCxgdmFsIDUwMDAwYF0sW2BhZGoyYCxgdmFsIDUwMDAwYF0sW2BhZGozYCxgdmFsIDUwMDAwYF1dLGdkOltbYHgxYCxgKi8gdyBhZGoxIDEwMDAwMGBdLFtgeDNgLGAqLyB3IGFkajMgMTAwMDAwYF0sW2B4MmAsYCsvIHgxIHgzIDJgXSxbYHkyYCxgKi8gaCBhZGoyIDEwMDAwMGBdLFtgeTFgLGArLyB0IHkyIDJgXSxbYHkzYCxgKy8gYiB5MiAyYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHRgXSxbYGxgLGB4MWAsYHRgXSxbYGxgLGB4MWAsYHkyYF0sW2BsYCxgeDNgLGB5MmBdLFtgbGAsYHgzYCxgYmBdLFtgbGAsYHJgLGBiYF1dfV19LGJlbnR1cGFycm93OnthZGo6W1tgYWRqMWAsYHZhbCAyNTAwMGBdLFtgYWRqMmAsYHZhbCAyNTAwMGBdLFtgYWRqM2AsYHZhbCAyNTAwMGBdXSxnZDpbW2BhMWAsYHBpbiAwIGFkajEgNTAwMDBgXSxbYGEyYCxgcGluIDAgYWRqMiA1MDAwMGBdLFtgYTNgLGBwaW4gMCBhZGozIDUwMDAwYF0sW2B5MWAsYCovIHNzIGEzIDEwMDAwMGBdLFtgZHgxYCxgKi8gc3MgYTIgNTAwMDBgXSxbYHgxYCxgKy0gciAwIGR4MWBdLFtgZHgzYCxgKi8gc3MgYTIgMTAwMDAwYF0sW2B4M2AsYCstIHIgMCBkeDNgXSxbYGR4MmAsYCovIHNzIGExIDIwMDAwMGBdLFtgeDJgLGArLSB4MyAwIGR4MmBdLFtgeDRgLGArLSB4MyBkeDIgMGBdLFtgZHkyYCxgKi8gc3MgYTEgMTAwMDAwYF0sW2B5MmAsYCstIGIgMCBkeTJgXSxbYHgwYCxgKi8geDQgMSAyYF0sW2B5M2AsYCsvIHkyIGIgMmBdLFtgeTE1YCxgKy8geTEgYiAyYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB5MmBdLFtgbGAsYHgyYCxgeTJgXSxbYGxgLGB4MmAsYHkxYF0sW2BsYCxgeDFgLGB5MWBdLFtgbGAsYHgzYCxgdGBdLFtgbGAsYHJgLGB5MWBdLFtgbGAsYHg0YCxgeTFgXSxbYGxgLGB4NGAsYGJgXSxbYGxgLGBsYCxgYmBdLFtgY2BdXX1dfSxiZXZlbDp7YWRqOltbYGFkamAsYHZhbCAxMjUwMGBdXSxnZDpbW2BhYCxgcGluIDAgYWRqIDUwMDAwYF0sW2B4MWAsYCovIHNzIGEgMTAwMDAwYF0sW2B4MmAsYCstIHIgMCB4MWBdLFtgeTJgLGArLSBiIDAgeDFgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgeDFgLGB4MWBdLFtgbGAsYHgyYCxgeDFgXSxbYGxgLGB4MmAsYHkyYF0sW2BsYCxgeDFgLGB5MmBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbGlnaHRlbkxlc3NgLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBsYCxgdGBdLFtgbGAsYHJgLGB0YF0sW2BsYCxgeDJgLGB4MWBdLFtgbGAsYHgxYCxgeDFgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YGRhcmtlbkxlc3NgLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBsYCxgYmBdLFtgbGAsYHgxYCxgeTJgXSxbYGxgLGB4MmAsYHkyYF0sW2BsYCxgcmAsYGJgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YGxpZ2h0ZW5gLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBsYCxgdGBdLFtgbGAsYHgxYCxgeDFgXSxbYGxgLGB4MWAsYHkyYF0sW2BsYCxgbGAsYGJgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YGRhcmtlbmAsc3Ryb2tlOiExLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYHJgLGB0YF0sW2BsYCxgcmAsYGJgXSxbYGxgLGB4MmAsYHkyYF0sW2BsYCxgeDJgLGB4MWBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYGxgLGB0YF0sW2BsYCxgcmAsYHRgXSxbYGxgLGByYCxgYmBdLFtgbGAsYGxgLGBiYF0sW2BjYF0sW2BtYCxgeDFgLGB4MWBdLFtgbGAsYHgyYCxgeDFgXSxbYGxgLGB4MmAsYHkyYF0sW2BsYCxgeDFgLGB5MmBdLFtgY2BdLFtgbWAsYGxgLGB0YF0sW2BsYCxgeDFgLGB4MWBdLFtgbWAsYGxgLGBiYF0sW2BsYCxgeDFgLGB5MmBdLFtgbWAsYHJgLGB0YF0sW2BsYCxgeDJgLGB4MWBdLFtgbWAsYHJgLGBiYF0sW2BsYCxgeDJgLGB5MmBdXX1dfSxibG9ja2FyYzp7YWRqOltbYGFkajFgLGB2YWwgMTA4MDAwMDBgXSxbYGFkajJgLGB2YWwgMGBdLFtgYWRqM2AsYHZhbCAyNTAwMGBdXSxnZDpbW2BzdEFuZ2AsYHBpbiAwIGFkajEgMjE1OTk5OTlgXSxbYGlzdEFuZ2AsYHBpbiAwIGFkajIgMjE1OTk5OTlgXSxbYGEzYCxgcGluIDAgYWRqMyA1MDAwMGBdLFtgc3cxMWAsYCstIGlzdEFuZyAwIHN0QW5nYF0sW2BzdzEyYCxgKy0gc3cxMSAyMTYwMDAwMCAwYF0sW2Bzd0FuZ2AsYD86IHN3MTEgc3cxMSBzdzEyYF0sW2Bpc3dBbmdgLGArLSAwIDAgc3dBbmdgXSxbYHd0MWAsYHNpbiB3ZDIgc3RBbmdgXSxbYGh0MWAsYGNvcyBoZDIgc3RBbmdgXSxbYHd0M2AsYHNpbiB3ZDIgaXN0QW5nYF0sW2BodDNgLGBjb3MgaGQyIGlzdEFuZ2BdLFtgZHgxYCxgY2F0MiB3ZDIgaHQxIHd0MWBdLFtgZHkxYCxgc2F0MiBoZDIgaHQxIHd0MWBdLFtgZHgzYCxgY2F0MiB3ZDIgaHQzIHd0M2BdLFtgZHkzYCxgc2F0MiBoZDIgaHQzIHd0M2BdLFtgeDFgLGArLSBoYyBkeDEgMGBdLFtgeTFgLGArLSB2YyBkeTEgMGBdLFtgeDNgLGArLSBoYyBkeDMgMGBdLFtgeTNgLGArLSB2YyBkeTMgMGBdLFtgZHJgLGAqLyBzcyBhMyAxMDAwMDBgXSxbYGl3ZDJgLGArLSB3ZDIgMCBkcmBdLFtgaWhkMmAsYCstIGhkMiAwIGRyYF0sW2B3dDJgLGBzaW4gaXdkMiBpc3RBbmdgXSxbYGh0MmAsYGNvcyBpaGQyIGlzdEFuZ2BdLFtgd3Q0YCxgc2luIGl3ZDIgc3RBbmdgXSxbYGh0NGAsYGNvcyBpaGQyIHN0QW5nYF0sW2BkeDJgLGBjYXQyIGl3ZDIgaHQyIHd0MmBdLFtgZHkyYCxgc2F0MiBpaGQyIGh0MiB3dDJgXSxbYGR4NGAsYGNhdDIgaXdkMiBodDQgd3Q0YF0sW2BkeTRgLGBzYXQyIGloZDIgaHQ0IHd0NGBdLFtgeDJgLGArLSBoYyBkeDIgMGBdLFtgeTJgLGArLSB2YyBkeTIgMGBdLFtgeDRgLGArLSBoYyBkeDQgMGBdLFtgeTRgLGArLSB2YyBkeTQgMGBdLFtgc3cwYCxgKy0gMjE2MDAwMDAgMCBzdEFuZ2BdLFtgZGExYCxgKy0gc3dBbmcgMCBzdzBgXSxbYGcxYCxgbWF4IHgxIHgyYF0sW2BnMmAsYG1heCB4MyB4NGBdLFtgZzNgLGBtYXggZzEgZzJgXSxbYGlyYCxgPzogZGExIHIgZzNgXSxbYHN3MWAsYCstIGNkNCAwIHN0QW5nYF0sW2BzdzJgLGArLSAyNzAwMDAwMCAwIHN0QW5nYF0sW2BzdzNgLGA/OiBzdzEgc3cxIHN3MmBdLFtgZGEyYCxgKy0gc3dBbmcgMCBzdzNgXSxbYGc1YCxgbWF4IHkxIHkyYF0sW2BnNmAsYG1heCB5MyB5NGBdLFtgZzdgLGBtYXggZzUgZzZgXSxbYGliYCxgPzogZGEyIGIgZzdgXSxbYHN3NGAsYCstIGNkMiAwIHN0QW5nYF0sW2BzdzVgLGArLSAzMjQwMDAwMCAwIHN0QW5nYF0sW2BzdzZgLGA/OiBzdzQgc3c0IHN3NWBdLFtgZGEzYCxgKy0gc3dBbmcgMCBzdzZgXSxbYGc5YCxgbWluIHgxIHgyYF0sW2BnMTBgLGBtaW4geDMgeDRgXSxbYGcxMWAsYG1pbiBnOSBnMTBgXSxbYGlsYCxgPzogZGEzIGwgZzExYF0sW2BzdzdgLGArLSAzY2Q0IDAgc3RBbmdgXSxbYHN3OGAsYCstIDM3ODAwMDAwIDAgc3RBbmdgXSxbYHN3OWAsYD86IHN3NyBzdzcgc3c4YF0sW2BkYTRgLGArLSBzd0FuZyAwIHN3OWBdLFtgZzEzYCxgbWluIHkxIHkyYF0sW2BnMTRgLGBtaW4geTMgeTRgXSxbYGcxNWAsYG1pbiBnMTMgZzE0YF0sW2BpdGAsYD86IGRhNCB0IGcxNWBdLFtgeDVgLGArLyB4MSB4NCAyYF0sW2B5NWAsYCsvIHkxIHk0IDJgXSxbYHg2YCxgKy8geDMgeDIgMmBdLFtgeTZgLGArLyB5MyB5MiAyYF0sW2BjYW5nMWAsYCstIHN0QW5nIDAgY2Q0YF0sW2BjYW5nMmAsYCstIGlzdEFuZyBjZDQgMGBdLFtgY2FuZzNgLGArLyBjYW5nMSBjYW5nMiAyYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYHgxYCxgeTFgXSxbYGFgLGB3ZDJgLGBoZDJgLGBzdEFuZ2AsYHN3QW5nYF0sW2BsYCxgeDJgLGB5MmBdLFtgYWAsYGl3ZDJgLGBpaGQyYCxgaXN0QW5nYCxgaXN3QW5nYF0sW2BjYF1dfV19LGJvcmRlcmNhbGxvdXQxOnthZGo6W1tgYWRqMWAsYHZhbCAxODc1MGBdLFtgYWRqMmAsYHZhbCAtODMzM2BdLFtgYWRqM2AsYHZhbCAxMTI1MDBgXSxbYGFkajRgLGB2YWwgLTM4MzMzYF1dLGdkOltbYHkxYCxgKi8gaCBhZGoxIDEwMDAwMGBdLFtgeDFgLGAqLyB3IGFkajIgMTAwMDAwYF0sW2B5MmAsYCovIGggYWRqMyAxMDAwMDBgXSxbYHgyYCxgKi8gdyBhZGo0IDEwMDAwMGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBsYCxgdGBdLFtgbGAsYHJgLGB0YF0sW2BsYCxgcmAsYGJgXSxbYGxgLGBsYCxgYmBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYHgxYCxgeTFgXSxbYGxgLGB4MmAsYHkyYF1dfV19LGJvcmRlcmNhbGxvdXQyOnthZGo6W1tgYWRqMWAsYHZhbCAxODc1MGBdLFtgYWRqMmAsYHZhbCAtODMzM2BdLFtgYWRqM2AsYHZhbCAxODc1MGBdLFtgYWRqNGAsYHZhbCAtMTY2NjdgXSxbYGFkajVgLGB2YWwgMTEyNTAwYF0sW2BhZGo2YCxgdmFsIC00NjY2N2BdXSxnZDpbW2B5MWAsYCovIGggYWRqMSAxMDAwMDBgXSxbYHgxYCxgKi8gdyBhZGoyIDEwMDAwMGBdLFtgeTJgLGAqLyBoIGFkajMgMTAwMDAwYF0sW2B4MmAsYCovIHcgYWRqNCAxMDAwMDBgXSxbYHkzYCxgKi8gaCBhZGo1IDEwMDAwMGBdLFtgeDNgLGAqLyB3IGFkajYgMTAwMDAwYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYGxgLGB0YF0sW2BsYCxgcmAsYHRgXSxbYGxgLGByYCxgYmBdLFtgbGAsYGxgLGBiYF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgeDFgLGB5MWBdLFtgbGAsYHgyYCxgeTJgXSxbYGxgLGB4M2AsYHkzYF1dfV19LGJvcmRlcmNhbGxvdXQzOnthZGo6W1tgYWRqMWAsYHZhbCAxODc1MGBdLFtgYWRqMmAsYHZhbCAtODMzM2BdLFtgYWRqM2AsYHZhbCAxODc1MGBdLFtgYWRqNGAsYHZhbCAtMTY2NjdgXSxbYGFkajVgLGB2YWwgMTAwMDAwYF0sW2BhZGo2YCxgdmFsIC0xNjY2N2BdLFtgYWRqN2AsYHZhbCAxMTI5NjNgXSxbYGFkajhgLGB2YWwgLTgzMzNgXV0sZ2Q6W1tgeTFgLGAqLyBoIGFkajEgMTAwMDAwYF0sW2B4MWAsYCovIHcgYWRqMiAxMDAwMDBgXSxbYHkyYCxgKi8gaCBhZGozIDEwMDAwMGBdLFtgeDJgLGAqLyB3IGFkajQgMTAwMDAwYF0sW2B5M2AsYCovIGggYWRqNSAxMDAwMDBgXSxbYHgzYCxgKi8gdyBhZGo2IDEwMDAwMGBdLFtgeTRgLGAqLyBoIGFkajcgMTAwMDAwYF0sW2B4NGAsYCovIHcgYWRqOCAxMDAwMDBgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgbGAsYHRgXSxbYGxgLGByYCxgdGBdLFtgbGAsYHJgLGBiYF0sW2BsYCxgbGAsYGJgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGB4MWAsYHkxYF0sW2BsYCxgeDJgLGB5MmBdLFtgbGAsYHgzYCxgeTNgXSxbYGxgLGB4NGAsYHk0YF1dfV19LGJyYWNlcGFpcjp7YWRqOltbYGFkamAsYHZhbCA4MzMzYF1dLGdkOltbYGFgLGBwaW4gMCBhZGogMjUwMDBgXSxbYHgxYCxgKi8gc3MgYSAxMDAwMDBgXSxbYHgyYCxgKi8gc3MgYSA1MDAwMGBdLFtgeDNgLGArLSByIDAgeDJgXSxbYHg0YCxgKy0gciAwIHgxYF0sW2B5MmAsYCstIHZjIDAgeDFgXSxbYHkzYCxgKy0gdmMgeDEgMGBdLFtgeTRgLGArLSBiIDAgeDFgXSxbYGl0YCxgKi8geDEgMjkyODkgMTAwMDAwYF0sW2BpbGAsYCstIHgxIGl0IDBgXSxbYGlyYCxgKy0gciAwIGlsYF0sW2BpYmAsYCstIGIgMCBpdGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGB4MmAsYGJgXSxbYGFgLGB4MWAsYHgxYCxgY2Q0YCxgY2Q0YF0sW2BsYCxgeDFgLGB5M2BdLFtgYWAsYHgxYCxgeDFgLGAwYCxgLTU0MDAwMDBgXSxbYGFgLGB4MWAsYHgxYCxgY2Q0YCxgLTU0MDAwMDBgXSxbYGxgLGB4MWAsYHgxYF0sW2BhYCxgeDFgLGB4MWAsYGNkMmAsYGNkNGBdLFtgbGAsYHgzYCxgdGBdLFtgYWAsYHgxYCxgeDFgLGAzY2Q0YCxgY2Q0YF0sW2BsYCxgeDRgLGB5MmBdLFtgYWAsYHgxYCxgeDFgLGBjZDJgLGAtNTQwMDAwMGBdLFtgYWAsYHgxYCxgeDFgLGAzY2Q0YCxgLTU0MDAwMDBgXSxbYGxgLGB4NGAsYHk0YF0sW2BhYCxgeDFgLGB4MWAsYDBgLGBjZDRgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGB4MmAsYGJgXSxbYGFgLGB4MWAsYHgxYCxgY2Q0YCxgY2Q0YF0sW2BsYCxgeDFgLGB5M2BdLFtgYWAsYHgxYCxgeDFgLGAwYCxgLTU0MDAwMDBgXSxbYGFgLGB4MWAsYHgxYCxgY2Q0YCxgLTU0MDAwMDBgXSxbYGxgLGB4MWAsYHgxYF0sW2BhYCxgeDFgLGB4MWAsYGNkMmAsYGNkNGBdLFtgbWAsYHgzYCxgdGBdLFtgYWAsYHgxYCxgeDFgLGAzY2Q0YCxgY2Q0YF0sW2BsYCxgeDRgLGB5MmBdLFtgYWAsYHgxYCxgeDFgLGBjZDJgLGAtNTQwMDAwMGBdLFtgYWAsYHgxYCxgeDFgLGAzY2Q0YCxgLTU0MDAwMDBgXSxbYGxgLGB4NGAsYHk0YF0sW2BhYCxgeDFgLGB4MWAsYDBgLGBjZDRgXV19XX0sYnJhY2tldHBhaXI6e2FkajpbW2BhZGpgLGB2YWwgMTY2NjdgXV0sZ2Q6W1tgYWAsYHBpbiAwIGFkaiA1MDAwMGBdLFtgeDFgLGAqLyBzcyBhIDEwMDAwMGBdLFtgeDJgLGArLSByIDAgeDFgXSxbYHkyYCxgKy0gYiAwIHgxYF0sW2BpbGAsYCovIHgxIDI5Mjg5IDEwMDAwMGBdLFtgaXJgLGArLSByIDAgaWxgXSxbYGliYCxgKy0gYiAwIGlsYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiExLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYGxgLGB4MWBdLFtgYWAsYHgxYCxgeDFgLGBjZDJgLGBjZDRgXSxbYGxgLGB4MmAsYHRgXSxbYGFgLGB4MWAsYHgxYCxgM2NkNGAsYGNkNGBdLFtgbGAsYHJgLGB5MmBdLFtgYWAsYHgxYCxgeDFgLGAwYCxgY2Q0YF0sW2BsYCxgeDFgLGBiYF0sW2BhYCxgeDFgLGB4MWAsYGNkNGAsYGNkNGBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYHgxYCxgYmBdLFtgYWAsYHgxYCxgeDFgLGBjZDRgLGBjZDRgXSxbYGxgLGBsYCxgeDFgXSxbYGFgLGB4MWAsYHgxYCxgY2QyYCxgY2Q0YF0sW2BtYCxgeDJgLGB0YF0sW2BhYCxgeDFgLGB4MWAsYDNjZDRgLGBjZDRgXSxbYGxgLGByYCxgeTJgXSxbYGFgLGB4MWAsYHgxYCxgMGAsYGNkNGBdXX1dfSxjYWxsb3V0MTp7YWRqOltbYGFkajFgLGB2YWwgMTg3NTBgXSxbYGFkajJgLGB2YWwgLTgzMzNgXSxbYGFkajNgLGB2YWwgMTEyNTAwYF0sW2BhZGo0YCxgdmFsIC0zODMzM2BdXSxnZDpbW2B5MWAsYCovIGggYWRqMSAxMDAwMDBgXSxbYHgxYCxgKi8gdyBhZGoyIDEwMDAwMGBdLFtgeTJgLGAqLyBoIGFkajMgMTAwMDAwYF0sW2B4MmAsYCovIHcgYWRqNCAxMDAwMDBgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgbGAsYHRgXSxbYGxgLGByYCxgdGBdLFtgbGAsYHJgLGBiYF0sW2BsYCxgbGAsYGJgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGB4MWAsYHkxYF0sW2BsYCxgeDJgLGB5MmBdXX1dfSxjYWxsb3V0Mjp7YWRqOltbYGFkajFgLGB2YWwgMTg3NTBgXSxbYGFkajJgLGB2YWwgLTgzMzNgXSxbYGFkajNgLGB2YWwgMTg3NTBgXSxbYGFkajRgLGB2YWwgLTE2NjY3YF0sW2BhZGo1YCxgdmFsIDExMjUwMGBdLFtgYWRqNmAsYHZhbCAtNDY2NjdgXV0sZ2Q6W1tgeTFgLGAqLyBoIGFkajEgMTAwMDAwYF0sW2B4MWAsYCovIHcgYWRqMiAxMDAwMDBgXSxbYHkyYCxgKi8gaCBhZGozIDEwMDAwMGBdLFtgeDJgLGAqLyB3IGFkajQgMTAwMDAwYF0sW2B5M2AsYCovIGggYWRqNSAxMDAwMDBgXSxbYHgzYCxgKi8gdyBhZGo2IDEwMDAwMGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBsYCxgdGBdLFtgbGAsYHJgLGB0YF0sW2BsYCxgcmAsYGJgXSxbYGxgLGBsYCxgYmBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYHgxYCxgeTFgXSxbYGxgLGB4MmAsYHkyYF0sW2BsYCxgeDNgLGB5M2BdXX1dfSxjYWxsb3V0Mzp7YWRqOltbYGFkajFgLGB2YWwgMTg3NTBgXSxbYGFkajJgLGB2YWwgLTgzMzNgXSxbYGFkajNgLGB2YWwgMTg3NTBgXSxbYGFkajRgLGB2YWwgLTE2NjY3YF0sW2BhZGo1YCxgdmFsIDEwMDAwMGBdLFtgYWRqNmAsYHZhbCAtMTY2NjdgXSxbYGFkajdgLGB2YWwgMTEyOTYzYF0sW2BhZGo4YCxgdmFsIC04MzMzYF1dLGdkOltbYHkxYCxgKi8gaCBhZGoxIDEwMDAwMGBdLFtgeDFgLGAqLyB3IGFkajIgMTAwMDAwYF0sW2B5MmAsYCovIGggYWRqMyAxMDAwMDBgXSxbYHgyYCxgKi8gdyBhZGo0IDEwMDAwMGBdLFtgeTNgLGAqLyBoIGFkajUgMTAwMDAwYF0sW2B4M2AsYCovIHcgYWRqNiAxMDAwMDBgXSxbYHk0YCxgKi8gaCBhZGo3IDEwMDAwMGBdLFtgeDRgLGAqLyB3IGFkajggMTAwMDAwYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiExLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYGxgLGB0YF0sW2BsYCxgcmAsYHRgXSxbYGxgLGByYCxgYmBdLFtgbGAsYGxgLGBiYF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgeDFgLGB5MWBdLFtgbGAsYHgyYCxgeTJgXSxbYGxgLGB4M2AsYHkzYF0sW2BsYCxgeDRgLGB5NGBdXX1dfSxjYW46e2FkajpbW2BhZGpgLGB2YWwgMjUwMDBgXV0sZ2Q6W1tgbWF4QWRqYCxgKi8gNTAwMDAgaCBzc2BdLFtgYWAsYHBpbiAwIGFkaiBtYXhBZGpgXSxbYHkxYCxgKi8gc3MgYSAyMDAwMDBgXSxbYHkyYCxgKy0geTEgeTEgMGBdLFtgeTNgLGArLSBiIDAgeTFgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgbGAsYHkxYF0sW2BhYCxgd2QyYCxgeTFgLGBjZDJgLGAtMTA4MDAwMDBgXSxbYGxgLGByYCxgeTNgXSxbYGFgLGB3ZDJgLGB5MWAsYDBgLGBjZDJgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YGxpZ2h0ZW5gLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBsYCxgeTFgXSxbYGFgLGB3ZDJgLGB5MWAsYGNkMmAsYGNkMmBdLFtgYWAsYHdkMmAsYHkxYCxgMGAsYGNkMmBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYHJgLGB5MWBdLFtgYWAsYHdkMmAsYHkxYCxgMGAsYGNkMmBdLFtgYWAsYHdkMmAsYHkxYCxgY2QyYCxgY2QyYF0sW2BsYCxgcmAsYHkzYF0sW2BhYCxgd2QyYCxgeTFgLGAwYCxgY2QyYF0sW2BsYCxgbGAsYHkxYF1dfV19LGNoYXJ0cGx1czp7YWRqOltdLGdkOltdLHBhdGhzOlt7dzoxMCxoOjEwLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGA1YCxgMGBdLFtgbGAsYDVgLGAxMGBdLFtgbWAsYDBgLGA1YF0sW2BsYCxgMTBgLGA1YF1dfSx7dzoxMCxoOjEwLGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgMGAsYDBgXSxbYGxgLGAwYCxgMTBgXSxbYGxgLGAxMGAsYDEwYF0sW2BsYCxgMTBgLGAwYF0sW2BjYF1dfV19LGNoYXJ0c3Rhcjp7YWRqOltdLGdkOltdLHBhdGhzOlt7dzoxMCxoOjEwLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGAwYCxgMGBdLFtgbGAsYDEwYCxgMTBgXSxbYG1gLGAwYCxgMTBgXSxbYGxgLGAxMGAsYDBgXSxbYG1gLGA1YCxgMGBdLFtgbGAsYDVgLGAxMGBdXX0se3c6MTAsaDoxMCxmaWxsOm51bGwsc3Ryb2tlOiExLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYDBgLGAwYF0sW2BsYCxgMGAsYDEwYF0sW2BsYCxgMTBgLGAxMGBdLFtgbGAsYDEwYCxgMGBdLFtgY2BdXX1dfSxjaGFydHg6e2FkajpbXSxnZDpbXSxwYXRoczpbe3c6MTAsaDoxMCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgMGAsYDBgXSxbYGxgLGAxMGAsYDEwYF0sW2BtYCxgMGAsYDEwYF0sW2BsYCxgMTBgLGAwYF1dfSx7dzoxMCxoOjEwLGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgMGAsYDBgXSxbYGxgLGAwYCxgMTBgXSxbYGxgLGAxMGAsYDEwYF0sW2BsYCxgMTBgLGAwYF0sW2BjYF1dfV19LGNoZXZyb246e2FkajpbW2BhZGpgLGB2YWwgNTAwMDBgXV0sZ2Q6W1tgbWF4QWRqYCxgKi8gMTAwMDAwIHcgc3NgXSxbYGFgLGBwaW4gMCBhZGogbWF4QWRqYF0sW2B4MWAsYCovIHNzIGEgMTAwMDAwYF0sW2B4MmAsYCstIHIgMCB4MWBdLFtgeDNgLGAqLyB4MiAxIDJgXSxbYGR4YCxgKy0geDIgMCB4MWBdLFtgaWxgLGA/OiBkeCB4MSBsYF0sW2BpcmAsYD86IGR4IHgyIHJgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHRgXSxbYGxgLGB4MmAsYHRgXSxbYGxgLGByYCxgdmNgXSxbYGxgLGB4MmAsYGJgXSxbYGxgLGBsYCxgYmBdLFtgbGAsYHgxYCxgdmNgXSxbYGNgXV19XX0sY2hvcmQ6e2FkajpbW2BhZGoxYCxgdmFsIDI3MDAwMDBgXSxbYGFkajJgLGB2YWwgMTYyMDAwMDBgXV0sZ2Q6W1tgc3RBbmdgLGBwaW4gMCBhZGoxIDIxNTk5OTk5YF0sW2BlbkFuZ2AsYHBpbiAwIGFkajIgMjE1OTk5OTlgXSxbYHN3MWAsYCstIGVuQW5nIDAgc3RBbmdgXSxbYHN3MmAsYCstIHN3MSAyMTYwMDAwMCAwYF0sW2Bzd0FuZ2AsYD86IHN3MSBzdzEgc3cyYF0sW2B3dDFgLGBzaW4gd2QyIHN0QW5nYF0sW2BodDFgLGBjb3MgaGQyIHN0QW5nYF0sW2BkeDFgLGBjYXQyIHdkMiBodDEgd3QxYF0sW2BkeTFgLGBzYXQyIGhkMiBodDEgd3QxYF0sW2B3dDJgLGBzaW4gd2QyIGVuQW5nYF0sW2BodDJgLGBjb3MgaGQyIGVuQW5nYF0sW2BkeDJgLGBjYXQyIHdkMiBodDIgd3QyYF0sW2BkeTJgLGBzYXQyIGhkMiBodDIgd3QyYF0sW2B4MWAsYCstIGhjIGR4MSAwYF0sW2B5MWAsYCstIHZjIGR5MSAwYF0sW2B4MmAsYCstIGhjIGR4MiAwYF0sW2B5MmAsYCstIHZjIGR5MiAwYF0sW2B4M2AsYCsvIHgxIHgyIDJgXSxbYHkzYCxgKy8geTEgeTIgMmBdLFtgbWlkQW5nMGAsYCovIHN3QW5nIDEgMmBdLFtgbWlkQW5nYCxgKy0gc3RBbmcgbWlkQW5nMCBjZDJgXSxbYGlkeGAsYGNvcyB3ZDIgMjcwMDAwMGBdLFtgaWR5YCxgc2luIGhkMiAyNzAwMDAwYF0sW2BpbGAsYCstIGhjIDAgaWR4YF0sW2BpcmAsYCstIGhjIGlkeCAwYF0sW2BpdGAsYCstIHZjIDAgaWR5YF0sW2BpYmAsYCstIHZjIGlkeSAwYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYHgxYCxgeTFgXSxbYGFgLGB3ZDJgLGBoZDJgLGBzdEFuZ2AsYHN3QW5nYF0sW2BjYF1dfV19LGNpcmN1bGFyYXJyb3c6e2FkajpbW2BhZGoxYCxgdmFsIDEyNTAwYF0sW2BhZGoyYCxgdmFsIDExNDIzMTlgXSxbYGFkajNgLGB2YWwgMjA0NTc2ODFgXSxbYGFkajRgLGB2YWwgMTA4MDAwMDBgXSxbYGFkajVgLGB2YWwgMTI1MDBgXV0sZ2Q6W1tgYTVgLGBwaW4gMCBhZGo1IDI1MDAwYF0sW2BtYXhBZGoxYCxgKi8gYTUgMiAxYF0sW2BhMWAsYHBpbiAwIGFkajEgbWF4QWRqMWBdLFtgZW5BbmdgLGBwaW4gMSBhZGozIDIxNTk5OTk5YF0sW2BzdEFuZ2AsYHBpbiAwIGFkajQgMjE1OTk5OTlgXSxbYHRoYCxgKi8gc3MgYTEgMTAwMDAwYF0sW2B0aGhgLGAqLyBzcyBhNSAxMDAwMDBgXSxbYHRoMmAsYCovIHRoIDEgMmBdLFtgcncxYCxgKy0gd2QyIHRoMiB0aGhgXSxbYHJoMWAsYCstIGhkMiB0aDIgdGhoYF0sW2BydzJgLGArLSBydzEgMCB0aGBdLFtgcmgyYCxgKy0gcmgxIDAgdGhgXSxbYHJ3M2AsYCstIHJ3MiB0aDIgMGBdLFtgcmgzYCxgKy0gcmgyIHRoMiAwYF0sW2B3dEhgLGBzaW4gcnczIGVuQW5nYF0sW2BodEhgLGBjb3MgcmgzIGVuQW5nYF0sW2BkeEhgLGBjYXQyIHJ3MyBodEggd3RIYF0sW2BkeUhgLGBzYXQyIHJoMyBodEggd3RIYF0sW2B4SGAsYCstIGhjIGR4SCAwYF0sW2B5SGAsYCstIHZjIGR5SCAwYF0sW2BySWAsYG1pbiBydzIgcmgyYF0sW2B1MWAsYCovIGR4SCBkeEggMWBdLFtgdTJgLGAqLyBkeUggZHlIIDFgXSxbYHUzYCxgKi8gckkgckkgMWBdLFtgdTRgLGArLSB1MSAwIHUzYF0sW2B1NWAsYCstIHUyIDAgdTNgXSxbYHU2YCxgKi8gdTQgdTUgdTFgXSxbYHU3YCxgKi8gdTYgMSB1MmBdLFtgdThgLGArLSAxIDAgdTdgXSxbYHU5YCxgc3FydCB1OGBdLFtgdTEwYCxgKi8gdTQgMSBkeEhgXSxbYHUxMWAsYCovIHUxMCAxIGR5SGBdLFtgdTEyYCxgKy8gMSB1OSB1MTFgXSxbYHUxM2AsYGF0MiAxIHUxMmBdLFtgdTE0YCxgKy0gdTEzIDIxNjAwMDAwIDBgXSxbYHUxNWAsYD86IHUxMyB1MTMgdTE0YF0sW2B1MTZgLGArLSB1MTUgMCBlbkFuZ2BdLFtgdTE3YCxgKy0gdTE2IDIxNjAwMDAwIDBgXSxbYHUxOGAsYD86IHUxNiB1MTYgdTE3YF0sW2B1MTlgLGArLSB1MTggMCBjZDJgXSxbYHUyMGAsYCstIHUxOCAwIDIxNjAwMDAwYF0sW2B1MjFgLGA/OiB1MTkgdTIwIHUxOGBdLFtgbWF4QW5nYCxgYWJzIHUyMWBdLFtgYUFuZ2AsYHBpbiAwIGFkajIgbWF4QW5nYF0sW2BwdEFuZ2AsYCstIGVuQW5nIGFBbmcgMGBdLFtgd3RBYCxgc2luIHJ3MyBwdEFuZ2BdLFtgaHRBYCxgY29zIHJoMyBwdEFuZ2BdLFtgZHhBYCxgY2F0MiBydzMgaHRBIHd0QWBdLFtgZHlBYCxgc2F0MiByaDMgaHRBIHd0QWBdLFtgeEFgLGArLSBoYyBkeEEgMGBdLFtgeUFgLGArLSB2YyBkeUEgMGBdLFtgd3RFYCxgc2luIHJ3MSBzdEFuZ2BdLFtgaHRFYCxgY29zIHJoMSBzdEFuZ2BdLFtgZHhFYCxgY2F0MiBydzEgaHRFIHd0RWBdLFtgZHlFYCxgc2F0MiByaDEgaHRFIHd0RWBdLFtgeEVgLGArLSBoYyBkeEUgMGBdLFtgeUVgLGArLSB2YyBkeUUgMGBdLFtgZHhHYCxgY29zIHRoaCBwdEFuZ2BdLFtgZHlHYCxgc2luIHRoaCBwdEFuZ2BdLFtgeEdgLGArLSB4SCBkeEcgMGBdLFtgeUdgLGArLSB5SCBkeUcgMGBdLFtgZHhCYCxgY29zIHRoaCBwdEFuZ2BdLFtgZHlCYCxgc2luIHRoaCBwdEFuZ2BdLFtgeEJgLGArLSB4SCAwIGR4QiAwYF0sW2B5QmAsYCstIHlIIDAgZHlCIDBgXSxbYHN4MWAsYCstIHhCIDAgaGNgXSxbYHN5MWAsYCstIHlCIDAgdmNgXSxbYHN4MmAsYCstIHhHIDAgaGNgXSxbYHN5MmAsYCstIHlHIDAgdmNgXSxbYHJPYCxgbWluIHJ3MSByaDFgXSxbYHgxT2AsYCovIHN4MSByTyBydzFgXSxbYHkxT2AsYCovIHN5MSByTyByaDFgXSxbYHgyT2AsYCovIHN4MiByTyBydzFgXSxbYHkyT2AsYCovIHN5MiByTyByaDFgXSxbYGR4T2AsYCstIHgyTyAwIHgxT2BdLFtgZHlPYCxgKy0geTJPIDAgeTFPYF0sW2BkT2AsYG1vZCBkeE8gZHlPIDBgXSxbYHExYCxgKi8geDFPIHkyTyAxYF0sW2BxMmAsYCovIHgyTyB5MU8gMWBdLFtgRE9gLGArLSBxMSAwIHEyYF0sW2BxM2AsYCovIHJPIHJPIDFgXSxbYHE0YCxgKi8gZE8gZE8gMWBdLFtgcTVgLGAqLyBxMyBxNCAxYF0sW2BxNmAsYCovIERPIERPIDFgXSxbYHE3YCxgKy0gcTUgMCBxNmBdLFtgcThgLGBtYXggcTcgMGBdLFtgc2RlbE9gLGBzcXJ0IHE4YF0sW2BuZHlPYCxgKi8gZHlPIC0xIDFgXSxbYHNkeU9gLGA/OiBuZHlPIC0xIDFgXSxbYHE5YCxgKi8gc2R5TyBkeE8gMWBdLFtgcTEwYCxgKi8gcTkgc2RlbE8gMWBdLFtgcTExYCxgKi8gRE8gZHlPIDFgXSxbYGR4RjFgLGArLyBxMTEgcTEwIHE0YF0sW2BxMTJgLGArLSBxMTEgMCBxMTBgXSxbYGR4RjJgLGAqLyBxMTIgMSBxNGBdLFtgYWR5T2AsYGFicyBkeU9gXSxbYHExM2AsYCovIGFkeU8gc2RlbE8gMWBdLFtgcTE0YCxgKi8gRE8gZHhPIC0xYF0sW2BkeUYxYCxgKy8gcTE0IHExMyBxNGBdLFtgcTE1YCxgKy0gcTE0IDAgcTEzYF0sW2BkeUYyYCxgKi8gcTE1IDEgcTRgXSxbYHExNmAsYCstIHgyTyAwIGR4RjFgXSxbYHExN2AsYCstIHgyTyAwIGR4RjJgXSxbYHExOGAsYCstIHkyTyAwIGR5RjFgXSxbYHExOWAsYCstIHkyTyAwIGR5RjJgXSxbYHEyMGAsYG1vZCBxMTYgcTE4IDBgXSxbYHEyMWAsYG1vZCBxMTcgcTE5IDBgXSxbYHEyMmAsYCstIHEyMSAwIHEyMGBdLFtgZHhGYCxgPzogcTIyIGR4RjEgZHhGMmBdLFtgZHlGYCxgPzogcTIyIGR5RjEgZHlGMmBdLFtgc2R4RmAsYCovIGR4RiBydzEgck9gXSxbYHNkeUZgLGAqLyBkeUYgcmgxIHJPYF0sW2B4RmAsYCstIGhjIHNkeEYgMGBdLFtgeUZgLGArLSB2YyBzZHlGIDBgXSxbYHgxSWAsYCovIHN4MSBySSBydzJgXSxbYHkxSWAsYCovIHN5MSBySSByaDJgXSxbYHgySWAsYCovIHN4MiBySSBydzJgXSxbYHkySWAsYCovIHN5MiBySSByaDJgXSxbYGR4SWAsYCstIHgySSAwIHgxSWBdLFtgZHlJYCxgKy0geTJJIDAgeTFJYF0sW2BkSWAsYG1vZCBkeEkgZHlJIDBgXSxbYHYxYCxgKi8geDFJIHkySSAxYF0sW2B2MmAsYCovIHgySSB5MUkgMWBdLFtgRElgLGArLSB2MSAwIHYyYF0sW2B2M2AsYCovIHJJIHJJIDFgXSxbYHY0YCxgKi8gZEkgZEkgMWBdLFtgdjVgLGAqLyB2MyB2NCAxYF0sW2B2NmAsYCovIERJIERJIDFgXSxbYHY3YCxgKy0gdjUgMCB2NmBdLFtgdjhgLGBtYXggdjcgMGBdLFtgc2RlbElgLGBzcXJ0IHY4YF0sW2B2OWAsYCovIHNkeU8gZHhJIDFgXSxbYHYxMGAsYCovIHY5IHNkZWxJIDFgXSxbYHYxMWAsYCovIERJIGR5SSAxYF0sW2BkeEMxYCxgKy8gdjExIHYxMCB2NGBdLFtgdjEyYCxgKy0gdjExIDAgdjEwYF0sW2BkeEMyYCxgKi8gdjEyIDEgdjRgXSxbYGFkeUlgLGBhYnMgZHlJYF0sW2B2MTNgLGAqLyBhZHlJIHNkZWxJIDFgXSxbYHYxNGAsYCovIERJIGR4SSAtMWBdLFtgZHlDMWAsYCsvIHYxNCB2MTMgdjRgXSxbYHYxNWAsYCstIHYxNCAwIHYxM2BdLFtgZHlDMmAsYCovIHYxNSAxIHY0YF0sW2B2MTZgLGArLSB4MUkgMCBkeEMxYF0sW2B2MTdgLGArLSB4MUkgMCBkeEMyYF0sW2B2MThgLGArLSB5MUkgMCBkeUMxYF0sW2B2MTlgLGArLSB5MUkgMCBkeUMyYF0sW2B2MjBgLGBtb2QgdjE2IHYxOCAwYF0sW2B2MjFgLGBtb2QgdjE3IHYxOSAwYF0sW2B2MjJgLGArLSB2MjEgMCB2MjBgXSxbYGR4Q2AsYD86IHYyMiBkeEMxIGR4QzJgXSxbYGR5Q2AsYD86IHYyMiBkeUMxIGR5QzJgXSxbYHNkeENgLGAqLyBkeEMgcncyIHJJYF0sW2BzZHlDYCxgKi8gZHlDIHJoMiBySWBdLFtgeENgLGArLSBoYyBzZHhDIDBgXSxbYHlDYCxgKy0gdmMgc2R5QyAwYF0sW2Bpc3QwYCxgYXQyIHNkeEMgc2R5Q2BdLFtgaXN0MWAsYCstIGlzdDAgMjE2MDAwMDAgMGBdLFtgaXN0QW5nYCxgPzogaXN0MCBpc3QwIGlzdDFgXSxbYGlzdzFgLGArLSBzdEFuZyAwIGlzdEFuZ2BdLFtgaXN3MmAsYCstIGlzdzEgMCAyMTYwMDAwMGBdLFtgaXN3QW5nYCxgPzogaXN3MSBpc3cyIGlzdzFgXSxbYHAxYCxgKy0geEYgMCB4Q2BdLFtgcDJgLGArLSB5RiAwIHlDYF0sW2BwM2AsYG1vZCBwMSBwMiAwYF0sW2BwNGAsYCovIHAzIDEgMmBdLFtgcDVgLGArLSBwNCAwIHRoaGBdLFtgeEdwYCxgPzogcDUgeEYgeEdgXSxbYHlHcGAsYD86IHA1IHlGIHlHYF0sW2B4QnBgLGA/OiBwNSB4QyB4QmBdLFtgeUJwYCxgPzogcDUgeUMgeUJgXSxbYGVuMGAsYGF0MiBzZHhGIHNkeUZgXSxbYGVuMWAsYCstIGVuMCAyMTYwMDAwMCAwYF0sW2BlbjJgLGA/OiBlbjAgZW4wIGVuMWBdLFtgc3cwYCxgKy0gZW4yIDAgc3RBbmdgXSxbYHN3MWAsYCstIHN3MCAyMTYwMDAwMCAwYF0sW2Bzd0FuZ2AsYD86IHN3MCBzdzAgc3cxYF0sW2B3dElgLGBzaW4gcnczIHN0QW5nYF0sW2BodElgLGBjb3MgcmgzIHN0QW5nYF0sW2BkeElgLGBjYXQyIHJ3MyBodEkgd3RJYF0sW2BkeUlgLGBzYXQyIHJoMyBodEkgd3RJYF0sW2B4SWAsYCstIGhjIGR4SSAwYF0sW2B5SWAsYCstIHZjIGR5SSAwYF0sW2BhSWAsYCstIHN0QW5nIDAgY2Q0YF0sW2BhQWAsYCstIHB0QW5nIGNkNCAwYF0sW2BhQmAsYCstIHB0QW5nIGNkMiAwYF0sW2BpZHhgLGBjb3MgcncxIDI3MDAwMDBgXSxbYGlkeWAsYHNpbiByaDEgMjcwMDAwMGBdLFtgaWxgLGArLSBoYyAwIGlkeGBdLFtgaXJgLGArLSBoYyBpZHggMGBdLFtgaXRgLGArLSB2YyAwIGlkeWBdLFtgaWJgLGArLSB2YyBpZHkgMGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGB4RWAsYHlFYF0sW2BhYCxgcncxYCxgcmgxYCxgc3RBbmdgLGBzd0FuZ2BdLFtgbGAsYHhHcGAsYHlHcGBdLFtgbGAsYHhBYCxgeUFgXSxbYGxgLGB4QnBgLGB5QnBgXSxbYGxgLGB4Q2AsYHlDYF0sW2BhYCxgcncyYCxgcmgyYCxgaXN0QW5nYCxgaXN3QW5nYF0sW2BjYF1dfV19LGNsb3VkOnthZGo6W10sZ2Q6W1tgaWxgLGAqLyB3IDI5NzcgMjE2MDBgXSxbYGl0YCxgKi8gaCAzMjYyIDIxNjAwYF0sW2BpcmAsYCovIHcgMTcwODcgMjE2MDBgXSxbYGliYCxgKi8gaCAxNzMzNyAyMTYwMGBdLFtgZzI3YCxgKi8gdyA2NyAyMTYwMGBdLFtgZzI4YCxgKi8gaCAyMTU3NyAyMTYwMGBdLFtgZzI5YCxgKi8gdyAyMTU4MiAyMTYwMGBdLFtgZzMwYCxgKi8gaCAxMjM1IDIxNjAwYF1dLHBhdGhzOlt7dzo0MzIwMCxoOjQzMjAwLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgMzkwMGAsYDE0MzcwYF0sW2BhYCxgNjc1M2AsYDkxOTBgLGAtMTE0MjkyNDlgLGA3NDI2ODMyYF0sW2BhYCxgNTMzM2AsYDcyNjdgLGAtODY0NjE0M2AsYDUzOTY3MTRgXSxbYGFgLGA0MzY1YCxgNTk0NWAsYC04NzQ4NDc1YCxgNTk4MzM4MWBdLFtgYWAsYDQ4NTdgLGA2NTk1YCxgLTc4NTkxNjRgLGA3MDM0NTA0YF0sW2BhYCxgNTMzM2AsYDcyNzNgLGAtNDcyMjUzM2AsYDY1NDE2MTVgXSxbYGFgLGA2Nzc1YCxgOTIyMGAsYC0yNzc2MDM1YCxgNzgxNjE0MGBdLFtgYWAsYDU3ODVgLGA3ODY3YCxgMzc1MDFgLGA2ODQyMDAwYF0sW2BhYCxgNjc1MmAsYDkyMTVgLGAxMzQ3MDk2YCxgNjkxMDM1M2BdLFtgYWAsYDc3MjBgLGAxMDU0M2AsYDM5NzQ1NThgLGA0NTQyNjYxYF0sW2BhYCxgNDM2MGAsYDU5MThgLGAtMTY0OTY1MjVgLGA4ODA0MTM0YF0sW2BhYCxgNDM0NWAsYDU5NDVgLGAtMTQ4MDk3MTBgLGA5MTUxMTMxYF0sW2BjYF1dfSx7dzo0MzIwMCxoOjQzMjAwLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGA0NjkzYCxgMjYxNzdgXSxbYGFgLGA0MzQ1YCxgNTk0NWAsYDUyMDQ1MjBgLGAxNTg1NzcwYF0sW2BtYCxgNjkyOGAsYDM0ODk5YF0sW2BhYCxgNDM2MGAsYDU5MThgLGA0NDE2NjI4YCxgNjg2ODQ4YF0sW2BtYCxgMTY0NzhgLGAzOTA5MGBdLFtgYWAsYDY3NTJgLGA5MjE1YCxgODI1NzQ0OWAsYDg0NDg2NmBdLFtgbWAsYDI4ODI3YCxgMzQ3NTFgXSxbYGFgLGA2NzUyYCxgOTIxNWAsYDM4NzE5NmAsYDk1OTkwMWBdLFtgbWAsYDM0MTI5YCxgMjI5NTRgXSxbYGFgLGA1Nzg1YCxgNzg2N2AsYC00MjE3NTQxYCxgNDI1NTA0MmBdLFtgbWAsYDQxNzk4YCxgMTUzNTRgXSxbYGFgLGA1MzMzYCxgNzI3M2AsYDE4MTkwODJgLGAxNjY1MDkwYF0sW2BtYCxgMzgzMjRgLGA1NDI2YF0sW2BhYCxgNDg1N2AsYDY1OTVgLGAtODI0NjYwYCxgODkxNTM0YF0sW2BtYCxgMjkwNzhgLGAzOTUyYF0sW2BhYCxgNDg1N2AsYDY1OTVgLGAtODk1MDg4N2AsYDEwOTE3MjJgXSxbYG1gLGAyMjE0MWAsYDQ3MjBgXSxbYGFgLGA0MzY1YCxgNTk0NWAsYC05ODA5NjU2YCxgMTA2MTE4MWBdLFtgbWAsYDE0MDAwYCxgNTE5MmBdLFtgYWAsYDY3NTNgLGA5MTkwYCxgLTQwMDI0MTdgLGA3MzkxNjFgXSxbYG1gLGA0MTI3YCxgMTU3ODlgXSxbYGFgLGA2NzUzYCxgOTE5MGAsYDk0NTkyNjFgLGA3MTE0OTBgXV19XX0sY2xvdWRjYWxsb3V0OnthZGo6W1tgYWRqMWAsYHZhbCAtMjA4MzNgXSxbYGFkajJgLGB2YWwgNjI1MDBgXV0sZ2Q6W1tgZHhQb3NgLGAqLyB3IGFkajEgMTAwMDAwYF0sW2BkeVBvc2AsYCovIGggYWRqMiAxMDAwMDBgXSxbYHhQb3NgLGArLSBoYyBkeFBvcyAwYF0sW2B5UG9zYCxgKy0gdmMgZHlQb3MgMGBdLFtgaHRgLGBjYXQyIGhkMiBkeFBvcyBkeVBvc2BdLFtgd3RgLGBzYXQyIHdkMiBkeFBvcyBkeVBvc2BdLFtgZzJgLGBjYXQyIHdkMiBodCB3dGBdLFtgZzNgLGBzYXQyIGhkMiBodCB3dGBdLFtgZzRgLGArLSBoYyBnMiAwYF0sW2BnNWAsYCstIHZjIGczIDBgXSxbYGc2YCxgKy0gZzQgMCB4UG9zYF0sW2BnN2AsYCstIGc1IDAgeVBvc2BdLFtgZzhgLGBtb2QgZzYgZzcgMGBdLFtgZzlgLGAqLyBzcyA2NjAwIDIxNjAwYF0sW2BnMTBgLGArLSBnOCAwIGc5YF0sW2BnMTFgLGAqLyBnMTAgMSAzYF0sW2BnMTJgLGAqLyBzcyAxODAwIDIxNjAwYF0sW2BnMTNgLGArLSBnMTEgZzEyIDBgXSxbYGcxNGAsYCovIGcxMyBnNiBnOGBdLFtgZzE1YCxgKi8gZzEzIGc3IGc4YF0sW2BnMTZgLGArLSBnMTQgeFBvcyAwYF0sW2BnMTdgLGArLSBnMTUgeVBvcyAwYF0sW2BnMThgLGAqLyBzcyA0ODAwIDIxNjAwYF0sW2BnMTlgLGAqLyBnMTEgMiAxYF0sW2BnMjBgLGArLSBnMTggZzE5IDBgXSxbYGcyMWAsYCovIGcyMCBnNiBnOGBdLFtgZzIyYCxgKi8gZzIwIGc3IGc4YF0sW2BnMjNgLGArLSBnMjEgeFBvcyAwYF0sW2BnMjRgLGArLSBnMjIgeVBvcyAwYF0sW2BnMjVgLGAqLyBzcyAxMjAwIDIxNjAwYF0sW2BnMjZgLGAqLyBzcyA2MDAgMjE2MDBgXSxbYHgyM2AsYCstIHhQb3MgZzI2IDBgXSxbYHgyNGAsYCstIGcxNiBnMjUgMGBdLFtgeDI1YCxgKy0gZzIzIGcxMiAwYF0sW2BpbGAsYCovIHcgMjk3NyAyMTYwMGBdLFtgaXRgLGAqLyBoIDMyNjIgMjE2MDBgXSxbYGlyYCxgKi8gdyAxNzA4NyAyMTYwMGBdLFtgaWJgLGAqLyBoIDE3MzM3IDIxNjAwYF0sW2BnMjdgLGAqLyB3IDY3IDIxNjAwYF0sW2BnMjhgLGAqLyBoIDIxNTc3IDIxNjAwYF0sW2BnMjlgLGAqLyB3IDIxNTgyIDIxNjAwYF0sW2BnMzBgLGAqLyBoIDEyMzUgMjE2MDBgXSxbYHBhbmdgLGBhdDIgZHhQb3MgZHlQb3NgXV0scGF0aHM6W3t3OjQzMjAwLGg6NDMyMDAsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGAzOTAwYCxgMTQzNzBgXSxbYGFgLGA2NzUzYCxgOTE5MGAsYC0xMTQyOTI0OWAsYDc0MjY4MzJgXSxbYGFgLGA1MzMzYCxgNzI2N2AsYC04NjQ2MTQzYCxgNTM5NjcxNGBdLFtgYWAsYDQzNjVgLGA1OTQ1YCxgLTg3NDg0NzVgLGA1OTgzMzgxYF0sW2BhYCxgNDg1N2AsYDY1OTVgLGAtNzg1OTE2NGAsYDcwMzQ1MDRgXSxbYGFgLGA1MzMzYCxgNzI3M2AsYC00NzIyNTMzYCxgNjU0MTYxNWBdLFtgYWAsYDY3NzVgLGA5MjIwYCxgLTI3NzYwMzVgLGA3ODE2MTQwYF0sW2BhYCxgNTc4NWAsYDc4NjdgLGAzNzUwMWAsYDY4NDIwMDBgXSxbYGFgLGA2NzUyYCxgOTIxNWAsYDEzNDcwOTZgLGA2OTEwMzUzYF0sW2BhYCxgNzcyMGAsYDEwNTQzYCxgMzk3NDU1OGAsYDQ1NDI2NjFgXSxbYGFgLGA0MzYwYCxgNTkxOGAsYC0xNjQ5NjUyNWAsYDg4MDQxMzRgXSxbYGFgLGA0MzQ1YCxgNTk0NWAsYC0xNDgwOTcxMGAsYDkxNTExMzFgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgeDIzYCxgeVBvc2BdLFtgYWAsYGcyNmAsYGcyNmAsYDBgLGAyMTYwMDAwMGBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGB4MjRgLGBnMTdgXSxbYGFgLGBnMjVgLGBnMjVgLGAwYCxgMjE2MDAwMDBgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgeDI1YCxgZzI0YF0sW2BhYCxgZzEyYCxgZzEyYCxgMGAsYDIxNjAwMDAwYF0sW2BjYF1dfSx7dzo0MzIwMCxoOjQzMjAwLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGA0NjkzYCxgMjYxNzdgXSxbYGFgLGA0MzQ1YCxgNTk0NWAsYDUyMDQ1MjBgLGAxNTg1NzcwYF0sW2BtYCxgNjkyOGAsYDM0ODk5YF0sW2BhYCxgNDM2MGAsYDU5MThgLGA0NDE2NjI4YCxgNjg2ODQ4YF0sW2BtYCxgMTY0NzhgLGAzOTA5MGBdLFtgYWAsYDY3NTJgLGA5MjE1YCxgODI1NzQ0OWAsYDg0NDg2NmBdLFtgbWAsYDI4ODI3YCxgMzQ3NTFgXSxbYGFgLGA2NzUyYCxgOTIxNWAsYDM4NzE5NmAsYDk1OTkwMWBdLFtgbWAsYDM0MTI5YCxgMjI5NTRgXSxbYGFgLGA1Nzg1YCxgNzg2N2AsYC00MjE3NTQxYCxgNDI1NTA0MmBdLFtgbWAsYDQxNzk4YCxgMTUzNTRgXSxbYGFgLGA1MzMzYCxgNzI3M2AsYDE4MTkwODJgLGAxNjY1MDkwYF0sW2BtYCxgMzgzMjRgLGA1NDI2YF0sW2BhYCxgNDg1N2AsYDY1OTVgLGAtODI0NjYwYCxgODkxNTM0YF0sW2BtYCxgMjkwNzhgLGAzOTUyYF0sW2BhYCxgNDg1N2AsYDY1OTVgLGAtODk1MDg4N2AsYDEwOTE3MjJgXSxbYG1gLGAyMjE0MWAsYDQ3MjBgXSxbYGFgLGA0MzY1YCxgNTk0NWAsYC05ODA5NjU2YCxgMTA2MTE4MWBdLFtgbWAsYDE0MDAwYCxgNTE5MmBdLFtgYWAsYDY3NTNgLGA5MTkwYCxgLTQwMDI0MTdgLGA3MzkxNjFgXSxbYG1gLGA0MTI3YCxgMTU3ODlgXSxbYGFgLGA2NzUzYCxgOTE5MGAsYDk0NTkyNjFgLGA3MTE0OTBgXV19XX0sY29ybmVyOnthZGo6W1tgYWRqMWAsYHZhbCA1MDAwMGBdLFtgYWRqMmAsYHZhbCA1MDAwMGBdXSxnZDpbW2BtYXhBZGoxYCxgKi8gMTAwMDAwIGggc3NgXSxbYG1heEFkajJgLGAqLyAxMDAwMDAgdyBzc2BdLFtgYTFgLGBwaW4gMCBhZGoxIG1heEFkajFgXSxbYGEyYCxgcGluIDAgYWRqMiBtYXhBZGoyYF0sW2B4MWAsYCovIHNzIGEyIDEwMDAwMGBdLFtgZHkxYCxgKi8gc3MgYTEgMTAwMDAwYF0sW2B5MWAsYCstIGIgMCBkeTFgXSxbYGN4MWAsYCovIHgxIDEgMmBdLFtgY3kxYCxgKy8geTEgYiAyYF0sW2BkYCxgKy0gdyAwIGhgXSxbYGl0YCxgPzogZCB5MSB0YF0sW2BpcmAsYD86IGQgciB4MWBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGBsYCxgdGBdLFtgbGAsYHgxYCxgdGBdLFtgbGAsYHgxYCxgeTFgXSxbYGxgLGByYCxgeTFgXSxbYGxgLGByYCxgYmBdLFtgbGAsYGxgLGBiYF0sW2BjYF1dfV19LGNvcm5lcnRhYnM6e2FkajpbXSxnZDpbW2BtZGAsYG1vZCB3IGggMGBdLFtgZHhgLGAqLyAxIG1kIDIwYF0sW2B5MWAsYCstIDAgYiBkeGBdLFtgeDFgLGArLSAwIHIgZHhgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHRgXSxbYGxgLGBkeGAsYHRgXSxbYGxgLGBsYCxgZHhgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHkxYF0sW2BsYCxgZHhgLGBiYF0sW2BsYCxgbGAsYGJgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgeDFgLGB0YF0sW2BsYCxgcmAsYHRgXSxbYGxgLGByYCxgZHhgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgcmAsYHkxYF0sW2BsYCxgcmAsYGJgXSxbYGxgLGB4MWAsYGJgXSxbYGNgXV19XX0sY3ViZTp7YWRqOltbYGFkamAsYHZhbCAyNTAwMGBdXSxnZDpbW2BhYCxgcGluIDAgYWRqIDEwMDAwMGBdLFtgeTFgLGAqLyBzcyBhIDEwMDAwMGBdLFtgeTRgLGArLSBiIDAgeTFgXSxbYHkyYCxgKi8geTQgMSAyYF0sW2B5M2AsYCsvIHkxIGIgMmBdLFtgeDRgLGArLSByIDAgeTFgXSxbYHgyYCxgKi8geDQgMSAyYF0sW2B4M2AsYCsvIHkxIHIgMmBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBsYCxgeTFgXSxbYGxgLGB4NGAsYHkxYF0sW2BsYCxgeDRgLGBiYF0sW2BsYCxgbGAsYGJgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YGRhcmtlbkxlc3NgLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGB4NGAsYHkxYF0sW2BsYCxgcmAsYHRgXSxbYGxgLGByYCxgeTRgXSxbYGxgLGB4NGAsYGJgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YGxpZ2h0ZW5MZXNzYCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgbGAsYHkxYF0sW2BsYCxgeTFgLGB0YF0sW2BsYCxgcmAsYHRgXSxbYGxgLGB4NGAsYHkxYF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgbGAsYHkxYF0sW2BsYCxgeTFgLGB0YF0sW2BsYCxgcmAsYHRgXSxbYGxgLGByYCxgeTRgXSxbYGxgLGB4NGAsYGJgXSxbYGxgLGBsYCxgYmBdLFtgY2BdLFtgbWAsYGxgLGB5MWBdLFtgbGAsYHg0YCxgeTFgXSxbYGxgLGByYCxgdGBdLFtgbWAsYHg0YCxgeTFgXSxbYGxgLGB4NGAsYGJgXV19XX0sY3VydmVkY29ubmVjdG9yMjp7YWRqOltdLGdkOltdLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHRgXSxbYENgLGB3ZDJgLGB0YCxgcmAsYGhkMmAsYHJgLGBiYF1dfV19LGN1cnZlZGNvbm5lY3RvcjM6e2FkajpbW2BhZGoxYCxgdmFsIDUwMDAwYF1dLGdkOltbYHgyYCxgKi8gdyBhZGoxIDEwMDAwMGBdLFtgeDFgLGArLyBsIHgyIDJgXSxbYHgzYCxgKy8gciB4MiAyYF0sW2B5M2AsYCovIGggMyA0YF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHRgXSxbYENgLGB4MWAsYHRgLGB4MmAsYGhkNGAsYHgyYCxgdmNgXSxbYENgLGB4MmAsYHkzYCxgeDNgLGBiYCxgcmAsYGJgXV19XX0sY3VydmVkY29ubmVjdG9yNDp7YWRqOltbYGFkajFgLGB2YWwgNTAwMDBgXSxbYGFkajJgLGB2YWwgNTAwMDBgXV0sZ2Q6W1tgeDJgLGAqLyB3IGFkajEgMTAwMDAwYF0sW2B4MWAsYCsvIGwgeDIgMmBdLFtgeDNgLGArLyByIHgyIDJgXSxbYHg0YCxgKy8geDIgeDMgMmBdLFtgeDVgLGArLyB4MyByIDJgXSxbYHk0YCxgKi8gaCBhZGoyIDEwMDAwMGBdLFtgeTFgLGArLyB0IHk0IDJgXSxbYHkyYCxgKy8gdCB5MSAyYF0sW2B5M2AsYCsvIHkxIHk0IDJgXSxbYHk1YCxgKy8gYiB5NCAyYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHRgXSxbYENgLGB4MWAsYHRgLGB4MmAsYHkyYCxgeDJgLGB5MWBdLFtgQ2AsYHgyYCxgeTNgLGB4NGAsYHk0YCxgeDNgLGB5NGBdLFtgQ2AsYHg1YCxgeTRgLGByYCxgeTVgLGByYCxgYmBdXX1dfSxjdXJ2ZWRjb25uZWN0b3I1OnthZGo6W1tgYWRqMWAsYHZhbCA1MDAwMGBdLFtgYWRqMmAsYHZhbCA1MDAwMGBdLFtgYWRqM2AsYHZhbCA1MDAwMGBdXSxnZDpbW2B4M2AsYCovIHcgYWRqMSAxMDAwMDBgXSxbYHg2YCxgKi8gdyBhZGozIDEwMDAwMGBdLFtgeDFgLGArLyB4MyB4NiAyYF0sW2B4MmAsYCsvIGwgeDMgMmBdLFtgeDRgLGArLyB4MyB4MSAyYF0sW2B4NWAsYCsvIHg2IHgxIDJgXSxbYHg3YCxgKy8geDYgciAyYF0sW2B5NGAsYCovIGggYWRqMiAxMDAwMDBgXSxbYHkxYCxgKy8gdCB5NCAyYF0sW2B5MmAsYCsvIHQgeTEgMmBdLFtgeTNgLGArLyB5MSB5NCAyYF0sW2B5NWAsYCsvIGIgeTQgMmBdLFtgeTZgLGArLyB5NSB5NCAyYF0sW2B5N2AsYCsvIHk1IGIgMmBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB0YF0sW2BDYCxgeDJgLGB0YCxgeDNgLGB5MmAsYHgzYCxgeTFgXSxbYENgLGB4M2AsYHkzYCxgeDRgLGB5NGAsYHgxYCxgeTRgXSxbYENgLGB4NWAsYHk0YCxgeDZgLGB5NmAsYHg2YCxgeTVgXSxbYENgLGB4NmAsYHk3YCxgeDdgLGBiYCxgcmAsYGJgXV19XX0sY3VydmVkZG93bmFycm93OnthZGo6W1tgYWRqMWAsYHZhbCAyNTAwMGBdLFtgYWRqMmAsYHZhbCA1MDAwMGBdLFtgYWRqM2AsYHZhbCAyNTAwMGBdXSxnZDpbW2BtYXhBZGoyYCxgKi8gNTAwMDAgdyBzc2BdLFtgYTJgLGBwaW4gMCBhZGoyIG1heEFkajJgXSxbYGExYCxgcGluIDAgYWRqMSAxMDAwMDBgXSxbYHRoYCxgKi8gc3MgYTEgMTAwMDAwYF0sW2Bhd2AsYCovIHNzIGEyIDEwMDAwMGBdLFtgcTFgLGArLyB0aCBhdyA0YF0sW2B3UmAsYCstIHdkMiAwIHExYF0sW2BxN2AsYCovIHdSIDIgMWBdLFtgcThgLGAqLyBxNyBxNyAxYF0sW2BxOWAsYCovIHRoIHRoIDFgXSxbYHExMGAsYCstIHE4IDAgcTlgXSxbYHExMWAsYHNxcnQgcTEwYF0sW2BpZHlgLGAqLyBxMTEgaCBxN2BdLFtgbWF4QWRqM2AsYCovIDEwMDAwMCBpZHkgc3NgXSxbYGEzYCxgcGluIDAgYWRqMyBtYXhBZGozYF0sW2BhaGAsYCovIHNzIGFkajMgMTAwMDAwYF0sW2B4M2AsYCstIHdSIHRoIDBgXSxbYHEyYCxgKi8gaCBoIDFgXSxbYHEzYCxgKi8gYWggYWggMWBdLFtgcTRgLGArLSBxMiAwIHEzYF0sW2BxNWAsYHNxcnQgcTRgXSxbYGR4YCxgKi8gcTUgd1IgaGBdLFtgeDVgLGArLSB3UiBkeCAwYF0sW2B4N2AsYCstIHgzIGR4IDBgXSxbYHE2YCxgKy0gYXcgMCB0aGBdLFtgZGhgLGAqLyBxNiAxIDJgXSxbYHg0YCxgKy0geDUgMCBkaGBdLFtgeDhgLGArLSB4NyBkaCAwYF0sW2BhdzJgLGAqLyBhdyAxIDJgXSxbYHg2YCxgKy0gciAwIGF3MmBdLFtgeTFgLGArLSBiIDAgYWhgXSxbYHN3QW5nYCxgYXQyIGFoIGR4YF0sW2Btc3dBbmdgLGArLSAwIDAgc3dBbmdgXSxbYGl5YCxgKy0gYiAwIGlkeWBdLFtgaXhgLGArLyB3UiB4MyAyYF0sW2BxMTJgLGAqLyB0aCAxIDJgXSxbYGRhbmcyYCxgYXQyIGlkeSBxMTJgXSxbYHN0QW5nYCxgKy0gM2NkNCBzd0FuZyAwYF0sW2BzdEFuZzJgLGArLSAzY2Q0IDAgZGFuZzJgXSxbYHN3QW5nMmAsYCstIGRhbmcyIDAgY2Q0YF0sW2Bzd0FuZzNgLGArLSBjZDQgZGFuZzIgMGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGB4NmAsYGJgXSxbYGxgLGB4NGAsYHkxYF0sW2BsYCxgeDVgLGB5MWBdLFtgYWAsYHdSYCxgaGAsYHN0QW5nYCxgbXN3QW5nYF0sW2BsYCxgeDNgLGB0YF0sW2BhYCxgd1JgLGBoYCxgM2NkNGAsYHN3QW5nYF0sW2BsYCxgeDhgLGB5MWBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgZGFya2VuTGVzc2Asc3Ryb2tlOiExLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYGl4YCxgaXlgXSxbYGFgLGB3UmAsYGhgLGBzdEFuZzJgLGBzd0FuZzJgXSxbYGxgLGBsYCxgYmBdLFtgYWAsYHdSYCxgaGAsYGNkMmAsYHN3QW5nM2BdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYGl4YCxgaXlgXSxbYGFgLGB3UmAsYGhgLGBzdEFuZzJgLGBzd0FuZzJgXSxbYGxgLGBsYCxgYmBdLFtgYWAsYHdSYCxgaGAsYGNkMmAsYGNkNGBdLFtgbGAsYHgzYCxgdGBdLFtgYWAsYHdSYCxgaGAsYDNjZDRgLGBzd0FuZ2BdLFtgbGAsYHg4YCxgeTFgXSxbYGxgLGB4NmAsYGJgXSxbYGxgLGB4NGAsYHkxYF0sW2BsYCxgeDVgLGB5MWBdLFtgYWAsYHdSYCxgaGAsYHN0QW5nYCxgbXN3QW5nYF1dfV19LGN1cnZlZGxlZnRhcnJvdzp7YWRqOltbYGFkajFgLGB2YWwgMjUwMDBgXSxbYGFkajJgLGB2YWwgNTAwMDBgXSxbYGFkajNgLGB2YWwgMjUwMDBgXV0sZ2Q6W1tgbWF4QWRqMmAsYCovIDUwMDAwIGggc3NgXSxbYGEyYCxgcGluIDAgYWRqMiBtYXhBZGoyYF0sW2BhMWAsYHBpbiAwIGFkajEgYTJgXSxbYHRoYCxgKi8gc3MgYTEgMTAwMDAwYF0sW2Bhd2AsYCovIHNzIGEyIDEwMDAwMGBdLFtgcTFgLGArLyB0aCBhdyA0YF0sW2BoUmAsYCstIGhkMiAwIHExYF0sW2BxN2AsYCovIGhSIDIgMWBdLFtgcThgLGAqLyBxNyBxNyAxYF0sW2BxOWAsYCovIHRoIHRoIDFgXSxbYHExMGAsYCstIHE4IDAgcTlgXSxbYHExMWAsYHNxcnQgcTEwYF0sW2BpZHhgLGAqLyBxMTEgdyBxN2BdLFtgbWF4QWRqM2AsYCovIDEwMDAwMCBpZHggc3NgXSxbYGEzYCxgcGluIDAgYWRqMyBtYXhBZGozYF0sW2BhaGAsYCovIHNzIGEzIDEwMDAwMGBdLFtgeTNgLGArLSBoUiB0aCAwYF0sW2BxMmAsYCovIHcgdyAxYF0sW2BxM2AsYCovIGFoIGFoIDFgXSxbYHE0YCxgKy0gcTIgMCBxM2BdLFtgcTVgLGBzcXJ0IHE0YF0sW2BkeWAsYCovIHE1IGhSIHdgXSxbYHk1YCxgKy0gaFIgZHkgMGBdLFtgeTdgLGArLSB5MyBkeSAwYF0sW2BxNmAsYCstIGF3IDAgdGhgXSxbYGRoYCxgKi8gcTYgMSAyYF0sW2B5NGAsYCstIHk1IDAgZGhgXSxbYHk4YCxgKy0geTcgZGggMGBdLFtgYXcyYCxgKi8gYXcgMSAyYF0sW2B5NmAsYCstIGIgMCBhdzJgXSxbYHgxYCxgKy0gbCBhaCAwYF0sW2Bzd0FuZ2AsYGF0MiBhaCBkeWBdLFtgbXN3QW5nYCxgKy0gMCAwIHN3QW5nYF0sW2BpeGAsYCstIGwgaWR4IDBgXSxbYGl5YCxgKy8gaFIgeTMgMmBdLFtgcTEyYCxgKi8gdGggMSAyYF0sW2BkYW5nMmAsYGF0MiBpZHggcTEyYF0sW2Bzd0FuZzJgLGArLSBkYW5nMiAwIHN3QW5nYF0sW2Bzd0FuZzNgLGArLSBzd0FuZyBkYW5nMiAwYF0sW2BzdEFuZzNgLGArLSAwIDAgZGFuZzJgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgbGAsYHk2YF0sW2BsYCxgeDFgLGB5NGBdLFtgbGAsYHgxYCxgeTVgXSxbYGFgLGB3YCxgaFJgLGBzd0FuZ2AsYHN3QW5nMmBdLFtgYWAsYHdgLGBoUmAsYHN0QW5nM2AsYHN3QW5nM2BdLFtgbGAsYHgxYCxgeThgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YGRhcmtlbkxlc3NgLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGByYCxgeTNgXSxbYGFgLGB3YCxgaFJgLGAwYCxgLTU0MDAwMDBgXSxbYGxgLGBsYCxgdGBdLFtgYWAsYHdgLGBoUmAsYDNjZDRgLGBjZDRgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGByYCxgeTNgXSxbYGFgLGB3YCxgaFJgLGAwYCxgLTU0MDAwMDBgXSxbYGxgLGBsYCxgdGBdLFtgYWAsYHdgLGBoUmAsYDNjZDRgLGBjZDRgXSxbYGxgLGByYCxgeTNgXSxbYGFgLGB3YCxgaFJgLGAwYCxgc3dBbmdgXSxbYGxgLGB4MWAsYHk4YF0sW2BsYCxgbGAsYHk2YF0sW2BsYCxgeDFgLGB5NGBdLFtgbGAsYHgxYCxgeTVgXSxbYGFgLGB3YCxgaFJgLGBzd0FuZ2AsYHN3QW5nMmBdXX1dfSxjdXJ2ZWRyaWdodGFycm93OnthZGo6W1tgYWRqMWAsYHZhbCAyNTAwMGBdLFtgYWRqMmAsYHZhbCA1MDAwMGBdLFtgYWRqM2AsYHZhbCAyNTAwMGBdXSxnZDpbW2BtYXhBZGoyYCxgKi8gNTAwMDAgaCBzc2BdLFtgYTJgLGBwaW4gMCBhZGoyIG1heEFkajJgXSxbYGExYCxgcGluIDAgYWRqMSBhMmBdLFtgdGhgLGAqLyBzcyBhMSAxMDAwMDBgXSxbYGF3YCxgKi8gc3MgYTIgMTAwMDAwYF0sW2BxMWAsYCsvIHRoIGF3IDRgXSxbYGhSYCxgKy0gaGQyIDAgcTFgXSxbYHE3YCxgKi8gaFIgMiAxYF0sW2BxOGAsYCovIHE3IHE3IDFgXSxbYHE5YCxgKi8gdGggdGggMWBdLFtgcTEwYCxgKy0gcTggMCBxOWBdLFtgcTExYCxgc3FydCBxMTBgXSxbYGlkeGAsYCovIHExMSB3IHE3YF0sW2BtYXhBZGozYCxgKi8gMTAwMDAwIGlkeCBzc2BdLFtgYTNgLGBwaW4gMCBhZGozIG1heEFkajNgXSxbYGFoYCxgKi8gc3MgYTMgMTAwMDAwYF0sW2B5M2AsYCstIGhSIHRoIDBgXSxbYHEyYCxgKi8gdyB3IDFgXSxbYHEzYCxgKi8gYWggYWggMWBdLFtgcTRgLGArLSBxMiAwIHEzYF0sW2BxNWAsYHNxcnQgcTRgXSxbYGR5YCxgKi8gcTUgaFIgd2BdLFtgeTVgLGArLSBoUiBkeSAwYF0sW2B5N2AsYCstIHkzIGR5IDBgXSxbYHE2YCxgKy0gYXcgMCB0aGBdLFtgZGhgLGAqLyBxNiAxIDJgXSxbYHk0YCxgKy0geTUgMCBkaGBdLFtgeThgLGArLSB5NyBkaCAwYF0sW2BhdzJgLGAqLyBhdyAxIDJgXSxbYHk2YCxgKy0gYiAwIGF3MmBdLFtgeDFgLGArLSByIDAgYWhgXSxbYHN3QW5nYCxgYXQyIGFoIGR5YF0sW2BzdEFuZ2AsYCstIGNkMiAwIHN3QW5nYF0sW2Btc3dBbmdgLGArLSAwIDAgc3dBbmdgXSxbYGl4YCxgKy0gciAwIGlkeGBdLFtgaXlgLGArLyBoUiB5MyAyYF0sW2BxMTJgLGAqLyB0aCAxIDJgXSxbYGRhbmcyYCxgYXQyIGlkeCBxMTJgXSxbYHN3QW5nMmAsYCstIGRhbmcyIDAgY2Q0YF0sW2Bzd0FuZzNgLGArLSBjZDQgZGFuZzIgMGBdLFtgc3RBbmczYCxgKy0gY2QyIDAgZGFuZzJgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgbGAsYGhSYF0sW2BhYCxgd2AsYGhSYCxgY2QyYCxgbXN3QW5nYF0sW2BsYCxgeDFgLGB5NGBdLFtgbGAsYHJgLGB5NmBdLFtgbGAsYHgxYCxgeThgXSxbYGxgLGB4MWAsYHk3YF0sW2BhYCxgd2AsYGhSYCxgc3RBbmdgLGBzd0FuZ2BdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgZGFya2VuTGVzc2Asc3Ryb2tlOiExLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYHJgLGB0aGBdLFtgYWAsYHdgLGBoUmAsYDNjZDRgLGBzd0FuZzJgXSxbYGFgLGB3YCxgaFJgLGBzdEFuZzNgLGBzd0FuZzNgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBsYCxgaFJgXSxbYGFgLGB3YCxgaFJgLGBjZDJgLGBtc3dBbmdgXSxbYGxgLGB4MWAsYHk0YF0sW2BsYCxgcmAsYHk2YF0sW2BsYCxgeDFgLGB5OGBdLFtgbGAsYHgxYCxgeTdgXSxbYGFgLGB3YCxgaFJgLGBzdEFuZ2AsYHN3QW5nYF0sW2BsYCxgbGAsYGhSYF0sW2BhYCxgd2AsYGhSYCxgY2QyYCxgY2Q0YF0sW2BsYCxgcmAsYHRoYF0sW2BhYCxgd2AsYGhSYCxgM2NkNGAsYHN3QW5nMmBdXX1dfSxjdXJ2ZWR1cGFycm93OnthZGo6W1tgYWRqMWAsYHZhbCAyNTAwMGBdLFtgYWRqMmAsYHZhbCA1MDAwMGBdLFtgYWRqM2AsYHZhbCAyNTAwMGBdXSxnZDpbW2BtYXhBZGoyYCxgKi8gNTAwMDAgdyBzc2BdLFtgYTJgLGBwaW4gMCBhZGoyIG1heEFkajJgXSxbYGExYCxgcGluIDAgYWRqMSAxMDAwMDBgXSxbYHRoYCxgKi8gc3MgYTEgMTAwMDAwYF0sW2Bhd2AsYCovIHNzIGEyIDEwMDAwMGBdLFtgcTFgLGArLyB0aCBhdyA0YF0sW2B3UmAsYCstIHdkMiAwIHExYF0sW2BxN2AsYCovIHdSIDIgMWBdLFtgcThgLGAqLyBxNyBxNyAxYF0sW2BxOWAsYCovIHRoIHRoIDFgXSxbYHExMGAsYCstIHE4IDAgcTlgXSxbYHExMWAsYHNxcnQgcTEwYF0sW2BpZHlgLGAqLyBxMTEgaCBxN2BdLFtgbWF4QWRqM2AsYCovIDEwMDAwMCBpZHkgc3NgXSxbYGEzYCxgcGluIDAgYWRqMyBtYXhBZGozYF0sW2BhaGAsYCovIHNzIGFkajMgMTAwMDAwYF0sW2B4M2AsYCstIHdSIHRoIDBgXSxbYHEyYCxgKi8gaCBoIDFgXSxbYHEzYCxgKi8gYWggYWggMWBdLFtgcTRgLGArLSBxMiAwIHEzYF0sW2BxNWAsYHNxcnQgcTRgXSxbYGR4YCxgKi8gcTUgd1IgaGBdLFtgeDVgLGArLSB3UiBkeCAwYF0sW2B4N2AsYCstIHgzIGR4IDBgXSxbYHE2YCxgKy0gYXcgMCB0aGBdLFtgZGhgLGAqLyBxNiAxIDJgXSxbYHg0YCxgKy0geDUgMCBkaGBdLFtgeDhgLGArLSB4NyBkaCAwYF0sW2BhdzJgLGAqLyBhdyAxIDJgXSxbYHg2YCxgKy0gciAwIGF3MmBdLFtgeTFgLGArLSB0IGFoIDBgXSxbYHN3QW5nYCxgYXQyIGFoIGR4YF0sW2Btc3dBbmdgLGArLSAwIDAgc3dBbmdgXSxbYGl5YCxgKy0gdCBpZHkgMGBdLFtgaXhgLGArLyB3UiB4MyAyYF0sW2BxMTJgLGAqLyB0aCAxIDJgXSxbYGRhbmcyYCxgYXQyIGlkeSBxMTJgXSxbYHN3QW5nMmAsYCstIGRhbmcyIDAgc3dBbmdgXSxbYG1zd0FuZzJgLGArLSAwIDAgc3dBbmcyYF0sW2BzdEFuZzNgLGArLSBjZDQgMCBzd0FuZ2BdLFtgc3dBbmczYCxgKy0gc3dBbmcgZGFuZzIgMGBdLFtgc3RBbmcyYCxgKy0gY2Q0IDAgZGFuZzJgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgeDZgLGB0YF0sW2BsYCxgeDhgLGB5MWBdLFtgbGAsYHg3YCxgeTFgXSxbYGFgLGB3UmAsYGhgLGBzdEFuZzNgLGBzd0FuZzNgXSxbYGFgLGB3UmAsYGhgLGBzdEFuZzJgLGBzd0FuZzJgXSxbYGxgLGB4NGAsYHkxYF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBkYXJrZW5MZXNzYCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgd1JgLGBiYF0sW2BhYCxgd1JgLGBoYCxgY2Q0YCxgY2Q0YF0sW2BsYCxgdGhgLGB0YF0sW2BhYCxgd1JgLGBoYCxgY2QyYCxgLTU0MDAwMDBgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBpeGAsYGl5YF0sW2BhYCxgd1JgLGBoYCxgc3RBbmcyYCxgc3dBbmcyYF0sW2BsYCxgeDRgLGB5MWBdLFtgbGAsYHg2YCxgdGBdLFtgbGAsYHg4YCxgeTFgXSxbYGxgLGB4N2AsYHkxYF0sW2BhYCxgd1JgLGBoYCxgc3RBbmczYCxgc3dBbmdgXSxbYGxgLGB3UmAsYGJgXSxbYGFgLGB3UmAsYGhgLGBjZDRgLGBjZDRgXSxbYGxgLGB0aGAsYHRgXSxbYGFgLGB3UmAsYGhgLGBjZDJgLGAtNTQwMDAwMGBdXX1dfSxkZWNhZ29uOnthZGo6W1tgdmZgLGB2YWwgMTA1MTQ2YF1dLGdkOltbYHNoZDJgLGAqLyBoZDIgdmYgMTAwMDAwYF0sW2BkeDFgLGBjb3Mgd2QyIDIxNjAwMDBgXSxbYGR4MmAsYGNvcyB3ZDIgNDMyMDAwMGBdLFtgeDFgLGArLSBoYyAwIGR4MWBdLFtgeDJgLGArLSBoYyAwIGR4MmBdLFtgeDNgLGArLSBoYyBkeDIgMGBdLFtgeDRgLGArLSBoYyBkeDEgMGBdLFtgZHkxYCxgc2luIHNoZDIgNDMyMDAwMGBdLFtgZHkyYCxgc2luIHNoZDIgMjE2MDAwMGBdLFtgeTFgLGArLSB2YyAwIGR5MWBdLFtgeTJgLGArLSB2YyAwIGR5MmBdLFtgeTNgLGArLSB2YyBkeTIgMGBdLFtgeTRgLGArLSB2YyBkeTEgMGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGBsYCxgdmNgXSxbYGxgLGB4MWAsYHkyYF0sW2BsYCxgeDJgLGB5MWBdLFtgbGAsYHgzYCxgeTFgXSxbYGxgLGB4NGAsYHkyYF0sW2BsYCxgcmAsYHZjYF0sW2BsYCxgeDRgLGB5M2BdLFtgbGAsYHgzYCxgeTRgXSxbYGxgLGB4MmAsYHk0YF0sW2BsYCxgeDFgLGB5M2BdLFtgY2BdXX1dfSxkaWFnc3RyaXBlOnthZGo6W1tgYWRqYCxgdmFsIDUwMDAwYF1dLGdkOltbYGFgLGBwaW4gMCBhZGogMTAwMDAwYF0sW2B4MmAsYCovIHcgYSAxMDAwMDBgXSxbYHgxYCxgKi8geDIgMSAyYF0sW2B4M2AsYCsvIHgyIHIgMmBdLFtgeTJgLGAqLyBoIGEgMTAwMDAwYF0sW2B5MWAsYCovIHkyIDEgMmBdLFtgeTNgLGArLyB5MiBiIDJgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHkyYF0sW2BsYCxgeDJgLGB0YF0sW2BsYCxgcmAsYHRgXSxbYGxgLGBsYCxgYmBdLFtgY2BdXX1dfSxkaWFtb25kOnthZGo6W10sZ2Q6W1tgaXJgLGAqLyB3IDMgNGBdLFtgaWJgLGAqLyBoIDMgNGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGBsYCxgdmNgXSxbYGxgLGBoY2AsYHRgXSxbYGxgLGByYCxgdmNgXSxbYGxgLGBoY2AsYGJgXSxbYGNgXV19XX0sZG9kZWNhZ29uOnthZGo6W10sZ2Q6W1tgeDFgLGAqLyB3IDI4OTQgMjE2MDBgXSxbYHgyYCxgKi8gdyA3OTA2IDIxNjAwYF0sW2B4M2AsYCovIHcgMTM2OTQgMjE2MDBgXSxbYHg0YCxgKi8gdyAxODcwNiAyMTYwMGBdLFtgeTFgLGAqLyBoIDI4OTQgMjE2MDBgXSxbYHkyYCxgKi8gaCA3OTA2IDIxNjAwYF0sW2B5M2AsYCovIGggMTM2OTQgMjE2MDBgXSxbYHk0YCxgKi8gaCAxODcwNiAyMTYwMGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGBsYCxgeTJgXSxbYGxgLGB4MWAsYHkxYF0sW2BsYCxgeDJgLGB0YF0sW2BsYCxgeDNgLGB0YF0sW2BsYCxgeDRgLGB5MWBdLFtgbGAsYHJgLGB5MmBdLFtgbGAsYHJgLGB5M2BdLFtgbGAsYHg0YCxgeTRgXSxbYGxgLGB4M2AsYGJgXSxbYGxgLGB4MmAsYGJgXSxbYGxgLGB4MWAsYHk0YF0sW2BsYCxgbGAsYHkzYF0sW2BjYF1dfV19LGRvbnV0OnthZGo6W1tgYWRqYCxgdmFsIDI1MDAwYF1dLGdkOltbYGFgLGBwaW4gMCBhZGogNTAwMDBgXSxbYGRyYCxgKi8gc3MgYSAxMDAwMDBgXSxbYGl3ZDJgLGArLSB3ZDIgMCBkcmBdLFtgaWhkMmAsYCstIGhkMiAwIGRyYF0sW2BpZHhgLGBjb3Mgd2QyIDI3MDAwMDBgXSxbYGlkeWAsYHNpbiBoZDIgMjcwMDAwMGBdLFtgaWxgLGArLSBoYyAwIGlkeGBdLFtgaXJgLGArLSBoYyBpZHggMGBdLFtgaXRgLGArLSB2YyAwIGlkeWBdLFtgaWJgLGArLSB2YyBpZHkgMGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGBsYCxgdmNgXSxbYGFgLGB3ZDJgLGBoZDJgLGBjZDJgLGBjZDRgXSxbYGFgLGB3ZDJgLGBoZDJgLGAzY2Q0YCxgY2Q0YF0sW2BhYCxgd2QyYCxgaGQyYCxgMGAsYGNkNGBdLFtgYWAsYHdkMmAsYGhkMmAsYGNkNGAsYGNkNGBdLFtgY2BdLFtgbWAsYGRyYCxgdmNgXSxbYGFgLGBpd2QyYCxgaWhkMmAsYGNkMmAsYC01NDAwMDAwYF0sW2BhYCxgaXdkMmAsYGloZDJgLGBjZDRgLGAtNTQwMDAwMGBdLFtgYWAsYGl3ZDJgLGBpaGQyYCxgMGAsYC01NDAwMDAwYF0sW2BhYCxgaXdkMmAsYGloZDJgLGAzY2Q0YCxgLTU0MDAwMDBgXSxbYGNgXV19XX0sZG91Ymxld2F2ZTp7YWRqOltbYGFkajFgLGB2YWwgNjI1MGBdLFtgYWRqMmAsYHZhbCAwYF1dLGdkOltbYGExYCxgcGluIDAgYWRqMSAxMjUwMGBdLFtgYTJgLGBwaW4gLTEwMDAwIGFkajIgMTAwMDBgXSxbYHkxYCxgKi8gaCBhMSAxMDAwMDBgXSxbYGR5MmAsYCovIHkxIDEwIDNgXSxbYHkyYCxgKy0geTEgMCBkeTJgXSxbYHkzYCxgKy0geTEgZHkyIDBgXSxbYHk0YCxgKy0gYiAwIHkxYF0sW2B5NWAsYCstIHk0IDAgZHkyYF0sW2B5NmAsYCstIHk0IGR5MiAwYF0sW2BkeDFgLGAqLyB3IGEyIDEwMDAwMGBdLFtgb2YyYCxgKi8gdyBhMiA1MDAwMGBdLFtgeDFgLGBhYnMgZHgxYF0sW2BkeDJgLGA/OiBvZjIgMCBvZjJgXSxbYHgyYCxgKy0gbCAwIGR4MmBdLFtgZHg4YCxgPzogb2YyIG9mMiAwYF0sW2B4OGAsYCstIHIgMCBkeDhgXSxbYGR4M2AsYCsvIGR4MiB4OCA2YF0sW2B4M2AsYCstIHgyIGR4MyAwYF0sW2BkeDRgLGArLyBkeDIgeDggM2BdLFtgeDRgLGArLSB4MiBkeDQgMGBdLFtgeDVgLGArLyB4MiB4OCAyYF0sW2B4NmAsYCstIHg1IGR4MyAwYF0sW2B4N2AsYCsvIHg2IHg4IDJgXSxbYHg5YCxgKy0gbCBkeDggMGBdLFtgeDE1YCxgKy0gciBkeDIgMGBdLFtgeDEwYCxgKy0geDkgZHgzIDBgXSxbYHgxMWAsYCstIHg5IGR4NCAwYF0sW2B4MTJgLGArLyB4OSB4MTUgMmBdLFtgeDEzYCxgKy0geDEyIGR4MyAwYF0sW2B4MTRgLGArLyB4MTMgeDE1IDJgXSxbYHgxNmAsYCstIHIgMCB4MWBdLFtgeEFkamAsYCstIGhjIGR4MSAwYF0sW2BpbGAsYG1heCB4MiB4OWBdLFtgaXJgLGBtaW4geDggeDE1YF0sW2BpdGAsYCovIGggYTEgNTAwMDBgXSxbYGliYCxgKy0gYiAwIGl0YF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYHgyYCxgeTFgXSxbYENgLGB4M2AsYHkyYCxgeDRgLGB5M2AsYHg1YCxgeTFgXSxbYENgLGB4NmAsYHkyYCxgeDdgLGB5M2AsYHg4YCxgeTFgXSxbYGxgLGB4MTVgLGB5NGBdLFtgQ2AsYHgxNGAsYHk2YCxgeDEzYCxgeTVgLGB4MTJgLGB5NGBdLFtgQ2AsYHgxMWAsYHk2YCxgeDEwYCxgeTVgLGB4OWAsYHk0YF0sW2BjYF1dfV19LGRvd25hcnJvdzp7YWRqOltbYGFkajFgLGB2YWwgNTAwMDBgXSxbYGFkajJgLGB2YWwgNTAwMDBgXV0sZ2Q6W1tgbWF4QWRqMmAsYCovIDEwMDAwMCBoIHNzYF0sW2BhMWAsYHBpbiAwIGFkajEgMTAwMDAwYF0sW2BhMmAsYHBpbiAwIGFkajIgbWF4QWRqMmBdLFtgZHkxYCxgKi8gc3MgYTIgMTAwMDAwYF0sW2B5MWAsYCstIGIgMCBkeTFgXSxbYGR4MWAsYCovIHcgYTEgMjAwMDAwYF0sW2B4MWAsYCstIGhjIDAgZHgxYF0sW2B4MmAsYCstIGhjIGR4MSAwYF0sW2BkeTJgLGAqLyB4MSBkeTEgd2QyYF0sW2B5MmAsYCstIHkxIGR5MiAwYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB5MWBdLFtgbGAsYHgxYCxgeTFgXSxbYGxgLGB4MWAsYHRgXSxbYGxgLGB4MmAsYHRgXSxbYGxgLGB4MmAsYHkxYF0sW2BsYCxgcmAsYHkxYF0sW2BsYCxgaGNgLGBiYF0sW2BjYF1dfV19LGRvd25hcnJvd2NhbGxvdXQ6e2FkajpbW2BhZGoxYCxgdmFsIDI1MDAwYF0sW2BhZGoyYCxgdmFsIDI1MDAwYF0sW2BhZGozYCxgdmFsIDI1MDAwYF0sW2BhZGo0YCxgdmFsIDY0OTc3YF1dLGdkOltbYG1heEFkajJgLGAqLyA1MDAwMCB3IHNzYF0sW2BhMmAsYHBpbiAwIGFkajIgbWF4QWRqMmBdLFtgbWF4QWRqMWAsYCovIGEyIDIgMWBdLFtgYTFgLGBwaW4gMCBhZGoxIG1heEFkajFgXSxbYG1heEFkajNgLGAqLyAxMDAwMDAgaCBzc2BdLFtgYTNgLGBwaW4gMCBhZGozIG1heEFkajNgXSxbYHEyYCxgKi8gYTMgc3MgaGBdLFtgbWF4QWRqNGAsYCstIDEwMDAwMCAwIHEyYF0sW2BhNGAsYHBpbiAwIGFkajQgbWF4QWRqNGBdLFtgZHgxYCxgKi8gc3MgYTIgMTAwMDAwYF0sW2BkeDJgLGAqLyBzcyBhMSAyMDAwMDBgXSxbYHgxYCxgKy0gaGMgMCBkeDFgXSxbYHgyYCxgKy0gaGMgMCBkeDJgXSxbYHgzYCxgKy0gaGMgZHgyIDBgXSxbYHg0YCxgKy0gaGMgZHgxIDBgXSxbYGR5M2AsYCovIHNzIGEzIDEwMDAwMGBdLFtgeTNgLGArLSBiIDAgZHkzYF0sW2B5MmAsYCovIGggYTQgMTAwMDAwYF0sW2B5MWAsYCovIHkyIDEgMmBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGBsYCxgdGBdLFtgbGAsYHJgLGB0YF0sW2BsYCxgcmAsYHkyYF0sW2BsYCxgeDNgLGB5MmBdLFtgbGAsYHgzYCxgeTNgXSxbYGxgLGB4NGAsYHkzYF0sW2BsYCxgaGNgLGBiYF0sW2BsYCxgeDFgLGB5M2BdLFtgbGAsYHgyYCxgeTNgXSxbYGxgLGB4MmAsYHkyYF0sW2BsYCxgbGAsYHkyYF0sW2BjYF1dfV19LGVsbGlwc2U6e2FkajpbXSxnZDpbW2BpZHhgLGBjb3Mgd2QyIDI3MDAwMDBgXSxbYGlkeWAsYHNpbiBoZDIgMjcwMDAwMGBdLFtgaWxgLGArLSBoYyAwIGlkeGBdLFtgaXJgLGArLSBoYyBpZHggMGBdLFtgaXRgLGArLSB2YyAwIGlkeWBdLFtgaWJgLGArLSB2YyBpZHkgMGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGBsYCxgdmNgXSxbYGFgLGB3ZDJgLGBoZDJgLGBjZDJgLGBjZDRgXSxbYGFgLGB3ZDJgLGBoZDJgLGAzY2Q0YCxgY2Q0YF0sW2BhYCxgd2QyYCxgaGQyYCxgMGAsYGNkNGBdLFtgYWAsYHdkMmAsYGhkMmAsYGNkNGAsYGNkNGBdLFtgY2BdXX1dfSxlbGxpcHNlcmliYm9uOnthZGo6W1tgYWRqMWAsYHZhbCAyNTAwMGBdLFtgYWRqMmAsYHZhbCA1MDAwMGBdLFtgYWRqM2AsYHZhbCAxMjUwMGBdXSxnZDpbW2BhMWAsYHBpbiAwIGFkajEgMTAwMDAwYF0sW2BhMmAsYHBpbiAyNTAwMCBhZGoyIDc1MDAwYF0sW2BxMTBgLGArLSAxMDAwMDAgMCBhMWBdLFtgcTExYCxgKi8gcTEwIDEgMmBdLFtgcTEyYCxgKy0gYTEgMCBxMTFgXSxbYG1pbkFkajNgLGBtYXggMCBxMTJgXSxbYGEzYCxgcGluIG1pbkFkajMgYWRqMyBhMWBdLFtgZHgyYCxgKi8gdyBhMiAyMDAwMDBgXSxbYHgyYCxgKy0gaGMgMCBkeDJgXSxbYHgzYCxgKy0geDIgd2Q4IDBgXSxbYHg0YCxgKy0gciAwIHgzYF0sW2B4NWAsYCstIHIgMCB4MmBdLFtgeDZgLGArLSByIDAgd2Q4YF0sW2BkeTFgLGAqLyBoIGEzIDEwMDAwMGBdLFtgZjFgLGAqLyA0IGR5MSB3YF0sW2BxMWAsYCovIHgzIHgzIHdgXSxbYHEyYCxgKy0geDMgMCBxMWBdLFtgeTFgLGAqLyBmMSBxMiAxYF0sW2BjeDFgLGAqLyB4MyAxIDJgXSxbYGN5MWAsYCovIGYxIGN4MSAxYF0sW2BjeDJgLGArLSByIDAgY3gxYF0sW2BxMWAsYCovIGggYTEgMTAwMDAwYF0sW2BkeTNgLGArLSBxMSAwIGR5MWBdLFtgcTNgLGAqLyB4MiB4MiB3YF0sW2BxNGAsYCstIHgyIDAgcTNgXSxbYHE1YCxgKi8gZjEgcTQgMWBdLFtgeTNgLGArLSBxNSBkeTMgMGBdLFtgcTZgLGArLSBkeTEgZHkzIHkzYF0sW2BxN2AsYCstIHE2IGR5MSAwYF0sW2BjeTNgLGArLSBxNyBkeTMgMGBdLFtgcmhgLGArLSBiIDAgcTFgXSxbYHE4YCxgKi8gZHkxIDE0IDE2YF0sW2B5MmAsYCsvIHE4IHJoIDJgXSxbYHk1YCxgKy0gcTUgcmggMGBdLFtgeTZgLGArLSB5MyByaCAwYF0sW2BjeDRgLGAqLyB4MiAxIDJgXSxbYHE5YCxgKi8gZjEgY3g0IDFgXSxbYGN5NGAsYCstIHE5IHJoIDBgXSxbYGN4NWAsYCstIHIgMCBjeDRgXSxbYGN5NmAsYCstIGN5MyByaCAwYF0sW2B5N2AsYCstIHkxIGR5MyAwYF0sW2BjeTdgLGArLSBxMSBxMSB5N2BdLFtgeThgLGArLSBiIDAgZHkxYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiExLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYGxgLGB0YF0sW2BRYCxgY3gxYCxgY3kxYCxgeDNgLGB5MWBdLFtgbGAsYHgyYCxgeTNgXSxbYFFgLGBoY2AsYGN5M2AsYHg1YCxgeTNgXSxbYGxgLGB4NGAsYHkxYF0sW2BRYCxgY3gyYCxgY3kxYCxgcmAsYHRgXSxbYGxgLGB4NmAsYHkyYF0sW2BsYCxgcmAsYHJoYF0sW2BRYCxgY3g1YCxgY3k0YCxgeDVgLGB5NWBdLFtgbGAsYHg1YCxgeTZgXSxbYFFgLGBoY2AsYGN5NmAsYHgyYCxgeTZgXSxbYGxgLGB4MmAsYHk1YF0sW2BRYCxgY3g0YCxgY3k0YCxgbGAsYHJoYF0sW2BsYCxgd2Q4YCxgeTJgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YGRhcmtlbkxlc3NgLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGB4M2AsYHk3YF0sW2BsYCxgeDNgLGB5MWBdLFtgbGAsYHgyYCxgeTNgXSxbYFFgLGBoY2AsYGN5M2AsYHg1YCxgeTNgXSxbYGxgLGB4NGAsYHkxYF0sW2BsYCxgeDRgLGB5N2BdLFtgUWAsYGhjYCxgY3k3YCxgeDNgLGB5N2BdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYGxgLGB0YF0sW2BRYCxgY3gxYCxgY3kxYCxgeDNgLGB5MWBdLFtgbGAsYHgyYCxgeTNgXSxbYFFgLGBoY2AsYGN5M2AsYHg1YCxgeTNgXSxbYGxgLGB4NGAsYHkxYF0sW2BRYCxgY3gyYCxgY3kxYCxgcmAsYHRgXSxbYGxgLGB4NmAsYHkyYF0sW2BsYCxgcmAsYHJoYF0sW2BRYCxgY3g1YCxgY3k0YCxgeDVgLGB5NWBdLFtgbGAsYHg1YCxgeTZgXSxbYFFgLGBoY2AsYGN5NmAsYHgyYCxgeTZgXSxbYGxgLGB4MmAsYHk1YF0sW2BRYCxgY3g0YCxgY3k0YCxgbGAsYHJoYF0sW2BsYCxgd2Q4YCxgeTJgXSxbYGNgXSxbYG1gLGB4MmAsYHk1YF0sW2BsYCxgeDJgLGB5M2BdLFtgbWAsYHg1YCxgeTNgXSxbYGxgLGB4NWAsYHk1YF0sW2BtYCxgeDNgLGB5MWBdLFtgbGAsYHgzYCxgeTdgXSxbYG1gLGB4NGAsYHk3YF0sW2BsYCxgeDRgLGB5MWBdXX1dfSxlbGxpcHNlcmliYm9uMjp7YWRqOltbYGFkajFgLGB2YWwgMjUwMDBgXSxbYGFkajJgLGB2YWwgNTAwMDBgXSxbYGFkajNgLGB2YWwgMTI1MDBgXV0sZ2Q6W1tgYTFgLGBwaW4gMCBhZGoxIDEwMDAwMGBdLFtgYTJgLGBwaW4gMjUwMDAgYWRqMiA3NTAwMGBdLFtgcTEwYCxgKy0gMTAwMDAwIDAgYTFgXSxbYHExMWAsYCovIHExMCAxIDJgXSxbYHExMmAsYCstIGExIDAgcTExYF0sW2BtaW5BZGozYCxgbWF4IDAgcTEyYF0sW2BhM2AsYHBpbiBtaW5BZGozIGFkajMgYTFgXSxbYGR4MmAsYCovIHcgYTIgMjAwMDAwYF0sW2B4MmAsYCstIGhjIDAgZHgyYF0sW2B4M2AsYCstIHgyIHdkOCAwYF0sW2B4NGAsYCstIHIgMCB4M2BdLFtgeDVgLGArLSByIDAgeDJgXSxbYHg2YCxgKy0gciAwIHdkOGBdLFtgZHkxYCxgKi8gaCBhMyAxMDAwMDBgXSxbYGYxYCxgKi8gNCBkeTEgd2BdLFtgcTFgLGAqLyB4MyB4MyB3YF0sW2BxMmAsYCstIHgzIDAgcTFgXSxbYHUxYCxgKi8gZjEgcTIgMWBdLFtgeTFgLGArLSBiIDAgdTFgXSxbYGN4MWAsYCovIHgzIDEgMmBdLFtgY3UxYCxgKi8gZjEgY3gxIDFgXSxbYGN5MWAsYCstIGIgMCBjdTFgXSxbYGN4MmAsYCstIHIgMCBjeDFgXSxbYHExYCxgKi8gaCBhMSAxMDAwMDBgXSxbYGR5M2AsYCstIHExIDAgZHkxYF0sW2BxM2AsYCovIHgyIHgyIHdgXSxbYHE0YCxgKy0geDIgMCBxM2BdLFtgcTVgLGAqLyBmMSBxNCAxYF0sW2B1M2AsYCstIHE1IGR5MyAwYF0sW2B5M2AsYCstIGIgMCB1M2BdLFtgcTZgLGArLSBkeTEgZHkzIHUzYF0sW2BxN2AsYCstIHE2IGR5MSAwYF0sW2BjdTNgLGArLSBxNyBkeTMgMGBdLFtgY3kzYCxgKy0gYiAwIGN1M2BdLFtgcmhgLGArLSBiIDAgcTFgXSxbYHE4YCxgKi8gZHkxIDE0IDE2YF0sW2B1MmAsYCsvIHE4IHJoIDJgXSxbYHkyYCxgKy0gYiAwIHUyYF0sW2B1NWAsYCstIHE1IHJoIDBgXSxbYHk1YCxgKy0gYiAwIHU1YF0sW2B1NmAsYCstIHUzIHJoIDBgXSxbYHk2YCxgKy0gYiAwIHU2YF0sW2BjeDRgLGAqLyB4MiAxIDJgXSxbYHE5YCxgKi8gZjEgY3g0IDFgXSxbYGN1NGAsYCstIHE5IHJoIDBgXSxbYGN5NGAsYCstIGIgMCBjdTRgXSxbYGN4NWAsYCstIHIgMCBjeDRgXSxbYGN1NmAsYCstIGN1MyByaCAwYF0sW2BjeTZgLGArLSBiIDAgY3U2YF0sW2B1N2AsYCstIHUxIGR5MyAwYF0sW2B5N2AsYCstIGIgMCB1N2BdLFtgY3U3YCxgKy0gcTEgcTEgdTdgXSxbYGN5N2AsYCstIGIgMCBjdTdgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgbGAsYGJgXSxbYFFgLGBjeDFgLGBjeTFgLGB4M2AsYHkxYF0sW2BsYCxgeDJgLGB5M2BdLFtgUWAsYGhjYCxgY3kzYCxgeDVgLGB5M2BdLFtgbGAsYHg0YCxgeTFgXSxbYFFgLGBjeDJgLGBjeTFgLGByYCxgYmBdLFtgbGAsYHg2YCxgeTJgXSxbYGxgLGByYCxgcTFgXSxbYFFgLGBjeDVgLGBjeTRgLGB4NWAsYHk1YF0sW2BsYCxgeDVgLGB5NmBdLFtgUWAsYGhjYCxgY3k2YCxgeDJgLGB5NmBdLFtgbGAsYHgyYCxgeTVgXSxbYFFgLGBjeDRgLGBjeTRgLGBsYCxgcTFgXSxbYGxgLGB3ZDhgLGB5MmBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgZGFya2VuTGVzc2Asc3Ryb2tlOiExLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYHgzYCxgeTdgXSxbYGxgLGB4M2AsYHkxYF0sW2BsYCxgeDJgLGB5M2BdLFtgUWAsYGhjYCxgY3kzYCxgeDVgLGB5M2BdLFtgbGAsYHg0YCxgeTFgXSxbYGxgLGB4NGAsYHk3YF0sW2BRYCxgaGNgLGBjeTdgLGB4M2AsYHk3YF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgbGAsYGJgXSxbYGxgLGB3ZDhgLGB5MmBdLFtgbGAsYGxgLGBxMWBdLFtgUWAsYGN4NGAsYGN5NGAsYHgyYCxgeTVgXSxbYGxgLGB4MmAsYHk2YF0sW2BRYCxgaGNgLGBjeTZgLGB4NWAsYHk2YF0sW2BsYCxgeDVgLGB5NWBdLFtgUWAsYGN4NWAsYGN5NGAsYHJgLGBxMWBdLFtgbGAsYHg2YCxgeTJgXSxbYGxgLGByYCxgYmBdLFtgUWAsYGN4MmAsYGN5MWAsYHg0YCxgeTFgXSxbYGxgLGB4NWAsYHkzYF0sW2BRYCxgaGNgLGBjeTNgLGB4MmAsYHkzYF0sW2BsYCxgeDNgLGB5MWBdLFtgUWAsYGN4MWAsYGN5MWAsYGxgLGBiYF0sW2BjYF0sW2BtYCxgeDJgLGB5M2BdLFtgbGAsYHgyYCxgeTVgXSxbYG1gLGB4NWAsYHk1YF0sW2BsYCxgeDVgLGB5M2BdLFtgbWAsYHgzYCxgeTdgXSxbYGxgLGB4M2AsYHkxYF0sW2BtYCxgeDRgLGB5MWBdLFtgbGAsYHg0YCxgeTdgXV19XX0sZmxvd2NoYXJ0YWx0ZXJuYXRlcHJvY2Vzczp7YWRqOltdLGdkOltbYHgyYCxgKy0gciAwIHNzZDZgXSxbYHkyYCxgKy0gYiAwIHNzZDZgXSxbYGlsYCxgKi8gc3NkNiAyOTI4OSAxMDAwMDBgXSxbYGlyYCxgKy0gciAwIGlsYF0sW2BpYmAsYCstIGIgMCBpbGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGBsYCxgc3NkNmBdLFtgYWAsYHNzZDZgLGBzc2Q2YCxgY2QyYCxgY2Q0YF0sW2BsYCxgeDJgLGB0YF0sW2BhYCxgc3NkNmAsYHNzZDZgLGAzY2Q0YCxgY2Q0YF0sW2BsYCxgcmAsYHkyYF0sW2BhYCxgc3NkNmAsYHNzZDZgLGAwYCxgY2Q0YF0sW2BsYCxgc3NkNmAsYGJgXSxbYGFgLGBzc2Q2YCxgc3NkNmAsYGNkNGAsYGNkNGBdLFtgY2BdXX1dfSxmbG93Y2hhcnRjb2xsYXRlOnthZGo6W10sZ2Q6W1tgaXJgLGAqLyB3IDMgNGBdLFtgaWJgLGAqLyBoIDMgNGBdXSxwYXRoczpbe3c6MixoOjIsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGAwYCxgMGBdLFtgbGAsYDJgLGAwYF0sW2BsYCxgMWAsYDFgXSxbYGxgLGAyYCxgMmBdLFtgbGAsYDBgLGAyYF0sW2BsYCxgMWAsYDFgXSxbYGNgXV19XX0sZmxvd2NoYXJ0Y29ubmVjdG9yOnthZGo6W10sZ2Q6W1tgaWR4YCxgY29zIHdkMiAyNzAwMDAwYF0sW2BpZHlgLGBzaW4gaGQyIDI3MDAwMDBgXSxbYGlsYCxgKy0gaGMgMCBpZHhgXSxbYGlyYCxgKy0gaGMgaWR4IDBgXSxbYGl0YCxgKy0gdmMgMCBpZHlgXSxbYGliYCxgKy0gdmMgaWR5IDBgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHZjYF0sW2BhYCxgd2QyYCxgaGQyYCxgY2QyYCxgY2Q0YF0sW2BhYCxgd2QyYCxgaGQyYCxgM2NkNGAsYGNkNGBdLFtgYWAsYHdkMmAsYGhkMmAsYDBgLGBjZDRgXSxbYGFgLGB3ZDJgLGBoZDJgLGBjZDRgLGBjZDRgXSxbYGNgXV19XX0sZmxvd2NoYXJ0ZGVjaXNpb246e2FkajpbXSxnZDpbW2BpcmAsYCovIHcgMyA0YF0sW2BpYmAsYCovIGggMyA0YF1dLHBhdGhzOlt7dzoyLGg6MixmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYDBgLGAxYF0sW2BsYCxgMWAsYDBgXSxbYGxgLGAyYCxgMWBdLFtgbGAsYDFgLGAyYF0sW2BjYF1dfV19LGZsb3djaGFydGRlbGF5OnthZGo6W10sZ2Q6W1tgaWR4YCxgY29zIHdkMiAyNzAwMDAwYF0sW2BpZHlgLGBzaW4gaGQyIDI3MDAwMDBgXSxbYGlyYCxgKy0gaGMgaWR4IDBgXSxbYGl0YCxgKy0gdmMgMCBpZHlgXSxbYGliYCxgKy0gdmMgaWR5IDBgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHRgXSxbYGxgLGBoY2AsYHRgXSxbYGFgLGB3ZDJgLGBoZDJgLGAzY2Q0YCxgY2QyYF0sW2BsYCxgbGAsYGJgXSxbYGNgXV19XX0sZmxvd2NoYXJ0ZGlzcGxheTp7YWRqOltdLGdkOltbYHgyYCxgKi8gdyA1IDZgXV0scGF0aHM6W3t3OjYsaDo2LGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgMGAsYDNgXSxbYGxgLGAxYCxgMGBdLFtgbGAsYDVgLGAwYF0sW2BhYCxgMWAsYDNgLGAzY2Q0YCxgY2QyYF0sW2BsYCxgMWAsYDZgXSxbYGNgXV19XX0sZmxvd2NoYXJ0ZG9jdW1lbnQ6e2FkajpbXSxnZDpbW2B5MWAsYCovIGggMTczMjIgMjE2MDBgXSxbYHkyYCxgKi8gaCAyMDE3MiAyMTYwMGBdXSxwYXRoczpbe3c6MjE2MDAsaDoyMTYwMCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYDBgLGAwYF0sW2BsYCxgMjE2MDBgLGAwYF0sW2BsYCxgMjE2MDBgLGAxNzMyMmBdLFtgQ2AsYDEwODAwYCxgMTczMjJgLGAxMDgwMGAsYDIzOTIyYCxgMGAsYDIwMTcyYF0sW2BjYF1dfV19LGZsb3djaGFydGV4dHJhY3Q6e2FkajpbXSxnZDpbW2B4MmAsYCovIHcgMyA0YF1dLHBhdGhzOlt7dzoyLGg6MixmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYDBgLGAyYF0sW2BsYCxgMWAsYDBgXSxbYGxgLGAyYCxgMmBdLFtgY2BdXX1dfSxmbG93Y2hhcnRpbnB1dG91dHB1dDp7YWRqOltdLGdkOltbYHgzYCxgKi8gdyAyIDVgXSxbYHg0YCxgKi8gdyAzIDVgXSxbYHg1YCxgKi8gdyA0IDVgXSxbYHg2YCxgKi8gdyA5IDEwYF1dLHBhdGhzOlt7dzo1LGg6NSxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYDBgLGA1YF0sW2BsYCxgMWAsYDBgXSxbYGxgLGA1YCxgMGBdLFtgbGAsYDRgLGA1YF0sW2BjYF1dfV19LGZsb3djaGFydGludGVybmFsc3RvcmFnZTp7YWRqOltdLGdkOltdLHBhdGhzOlt7dzoxLGg6MSxmaWxsOm51bGwsc3Ryb2tlOiExLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYDBgLGAwYF0sW2BsYCxgMWAsYDBgXSxbYGxgLGAxYCxgMWBdLFtgbGAsYDBgLGAxYF0sW2BjYF1dfSx7dzo4LGg6OCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgMWAsYDBgXSxbYGxgLGAxYCxgOGBdLFtgbWAsYDBgLGAxYF0sW2BsYCxgOGAsYDFgXV19LHt3OjEsaDoxLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGAwYCxgMGBdLFtgbGAsYDFgLGAwYF0sW2BsYCxgMWAsYDFgXSxbYGxgLGAwYCxgMWBdLFtgY2BdXX1dfSxmbG93Y2hhcnRtYWduZXRpY2Rpc2s6e2FkajpbXSxnZDpbW2B5M2AsYCovIGggNSA2YF1dLHBhdGhzOlt7dzo2LGg6NixmaWxsOm51bGwsc3Ryb2tlOiExLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYDBgLGAxYF0sW2BhYCxgM2AsYDFgLGBjZDJgLGBjZDJgXSxbYGxgLGA2YCxgNWBdLFtgYWAsYDNgLGAxYCxgMGAsYGNkMmBdLFtgY2BdXX0se3c6NixoOjYsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYDZgLGAxYF0sW2BhYCxgM2AsYDFgLGAwYCxgY2QyYF1dfSx7dzo2LGg6NixmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgMGAsYDFgXSxbYGFgLGAzYCxgMWAsYGNkMmAsYGNkMmBdLFtgbGAsYDZgLGA1YF0sW2BhYCxgM2AsYDFgLGAwYCxgY2QyYF0sW2BjYF1dfV19LGZsb3djaGFydG1hZ25ldGljZHJ1bTp7YWRqOltdLGdkOltbYHgyYCxgKi8gdyAyIDNgXV0scGF0aHM6W3t3OjYsaDo2LGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgMWAsYDBgXSxbYGxgLGA1YCxgMGBdLFtgYWAsYDFgLGAzYCxgM2NkNGAsYGNkMmBdLFtgbGAsYDFgLGA2YF0sW2BhYCxgMWAsYDNgLGBjZDRgLGBjZDJgXSxbYGNgXV19LHt3OjYsaDo2LGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGA1YCxgNmBdLFtgYWAsYDFgLGAzYCxgY2Q0YCxgY2QyYF1dfSx7dzo2LGg6NixmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgMWAsYDBgXSxbYGxgLGA1YCxgMGBdLFtgYWAsYDFgLGAzYCxgM2NkNGAsYGNkMmBdLFtgbGAsYDFgLGA2YF0sW2BhYCxgMWAsYDNgLGBjZDRgLGBjZDJgXSxbYGNgXV19XX0sZmxvd2NoYXJ0bWFnbmV0aWN0YXBlOnthZGo6W10sZ2Q6W1tgaWR4YCxgY29zIHdkMiAyNzAwMDAwYF0sW2BpZHlgLGBzaW4gaGQyIDI3MDAwMDBgXSxbYGlsYCxgKy0gaGMgMCBpZHhgXSxbYGlyYCxgKy0gaGMgaWR4IDBgXSxbYGl0YCxgKy0gdmMgMCBpZHlgXSxbYGliYCxgKy0gdmMgaWR5IDBgXSxbYGFuZzFgLGBhdDIgdyBoYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGhjYCxgYmBdLFtgYWAsYHdkMmAsYGhkMmAsYGNkNGAsYGNkNGBdLFtgYWAsYHdkMmAsYGhkMmAsYGNkMmAsYGNkNGBdLFtgYWAsYHdkMmAsYGhkMmAsYDNjZDRgLGBjZDRgXSxbYGFgLGB3ZDJgLGBoZDJgLGAwYCxgYW5nMWBdLFtgbGAsYHJgLGBpYmBdLFtgbGAsYHJgLGBiYF0sW2BjYF1dfV19LGZsb3djaGFydG1hbnVhbGlucHV0OnthZGo6W10sZ2Q6W10scGF0aHM6W3t3OjUsaDo1LGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgMGAsYDFgXSxbYGxgLGA1YCxgMGBdLFtgbGAsYDVgLGA1YF0sW2BsYCxgMGAsYDVgXSxbYGNgXV19XX0sZmxvd2NoYXJ0bWFudWFsb3BlcmF0aW9uOnthZGo6W10sZ2Q6W1tgeDNgLGAqLyB3IDQgNWBdLFtgeDRgLGAqLyB3IDkgMTBgXV0scGF0aHM6W3t3OjUsaDo1LGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgMGAsYDBgXSxbYGxgLGA1YCxgMGBdLFtgbGAsYDRgLGA1YF0sW2BsYCxgMWAsYDVgXSxbYGNgXV19XX0sZmxvd2NoYXJ0bWVyZ2U6e2FkajpbXSxnZDpbW2B4MmAsYCovIHcgMyA0YF1dLHBhdGhzOlt7dzoyLGg6MixmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYDBgLGAwYF0sW2BsYCxgMmAsYDBgXSxbYGxgLGAxYCxgMmBdLFtgY2BdXX1dfSxmbG93Y2hhcnRtdWx0aWRvY3VtZW50OnthZGo6W10sZ2Q6W1tgeTJgLGAqLyBoIDM2NzUgMjE2MDBgXSxbYHk4YCxgKi8gaCAyMDc4MiAyMTYwMGBdLFtgeDNgLGAqLyB3IDkyOTggMjE2MDBgXSxbYHg0YCxgKi8gdyAxMjI4NiAyMTYwMGBdLFtgeDVgLGAqLyB3IDE4NTk1IDIxNjAwYF1dLHBhdGhzOlt7dzoyMTYwMCxoOjIxNjAwLGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgMGAsYDIwNzgyYF0sW2BDYCxgOTI5OGAsYDIzNTQyYCxgOTI5OGAsYDE4MDIyYCxgMTg1OTVgLGAxODAyMmBdLFtgbGAsYDE4NTk1YCxgMzY3NWBdLFtgbGAsYDBgLGAzNjc1YF0sW2BjYF0sW2BtYCxgMTUzMmAsYDM2NzVgXSxbYGxgLGAxNTMyYCxgMTgxNWBdLFtgbGAsYDIwMDAwYCxgMTgxNWBdLFtgbGAsYDIwMDAwYCxgMTYyNTJgXSxbYENgLGAxOTI5OGAsYDE2MjUyYCxgMTg1OTVgLGAxNjM1MmAsYDE4NTk1YCxgMTYzNTJgXSxbYGxgLGAxODU5NWAsYDM2NzVgXSxbYGNgXSxbYG1gLGAyOTcyYCxgMTgxNWBdLFtgbGAsYDI5NzJgLGAwYF0sW2BsYCxgMjE2MDBgLGAwYF0sW2BsYCxgMjE2MDBgLGAxNDM5MmBdLFtgQ2AsYDIwODAwYCxgMTQzOTJgLGAyMDAwMGAsYDE0NDY3YCxgMjAwMDBgLGAxNDQ2N2BdLFtgbGAsYDIwMDAwYCxgMTgxNWBdLFtgY2BdXX0se3c6MjE2MDAsaDoyMTYwMCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgMGAsYDM2NzVgXSxbYGxgLGAxODU5NWAsYDM2NzVgXSxbYGxgLGAxODU5NWAsYDE4MDIyYF0sW2BDYCxgOTI5OGAsYDE4MDIyYCxgOTI5OGAsYDIzNTQyYCxgMGAsYDIwNzgyYF0sW2BjYF0sW2BtYCxgMTUzMmAsYDM2NzVgXSxbYGxgLGAxNTMyYCxgMTgxNWBdLFtgbGAsYDIwMDAwYCxgMTgxNWBdLFtgbGAsYDIwMDAwYCxgMTYyNTJgXSxbYENgLGAxOTI5OGAsYDE2MjUyYCxgMTg1OTVgLGAxNjM1MmAsYDE4NTk1YCxgMTYzNTJgXSxbYG1gLGAyOTcyYCxgMTgxNWBdLFtgbGAsYDI5NzJgLGAwYF0sW2BsYCxgMjE2MDBgLGAwYF0sW2BsYCxgMjE2MDBgLGAxNDM5MmBdLFtgQ2AsYDIwODAwYCxgMTQzOTJgLGAyMDAwMGAsYDE0NDY3YCxgMjAwMDBgLGAxNDQ2N2BdXX0se3c6MjE2MDAsaDoyMTYwMCxmaWxsOmBub25lYCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgMGAsYDIwNzgyYF0sW2BDYCxgOTI5OGAsYDIzNTQyYCxgOTI5OGAsYDE4MDIyYCxgMTg1OTVgLGAxODAyMmBdLFtgbGAsYDE4NTk1YCxgMTYzNTJgXSxbYENgLGAxODU5NWAsYDE2MzUyYCxgMTkyOThgLGAxNjI1MmAsYDIwMDAwYCxgMTYyNTJgXSxbYGxgLGAyMDAwMGAsYDE0NDY3YF0sW2BDYCxgMjAwMDBgLGAxNDQ2N2AsYDIwODAwYCxgMTQzOTJgLGAyMTYwMGAsYDE0MzkyYF0sW2BsYCxgMjE2MDBgLGAwYF0sW2BsYCxgMjk3MmAsYDBgXSxbYGxgLGAyOTcyYCxgMTgxNWBdLFtgbGAsYDE1MzJgLGAxODE1YF0sW2BsYCxgMTUzMmAsYDM2NzVgXSxbYGxgLGAwYCxgMzY3NWBdLFtgY2BdXX1dfSxmbG93Y2hhcnRvZmZsaW5lc3RvcmFnZTp7YWRqOltdLGdkOltbYHg0YCxgKi8gdyAzIDRgXV0scGF0aHM6W3t3OjIsaDoyLGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgMGAsYDBgXSxbYGxgLGAyYCxgMGBdLFtgbGAsYDFgLGAyYF0sW2BjYF1dfSx7dzo1LGg6NSxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgMmAsYDRgXSxbYGxgLGAzYCxgNGBdXX0se3c6MixoOjIsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYDBgLGAwYF0sW2BsYCxgMmAsYDBgXSxbYGxgLGAxYCxgMmBdLFtgY2BdXX1dfSxmbG93Y2hhcnRvZmZwYWdlY29ubmVjdG9yOnthZGo6W10sZ2Q6W1tgeTFgLGAqLyBoIDQgNWBdXSxwYXRoczpbe3c6MTAsaDoxMCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYDBgLGAwYF0sW2BsYCxgMTBgLGAwYF0sW2BsYCxgMTBgLGA4YF0sW2BsYCxgNWAsYDEwYF0sW2BsYCxgMGAsYDhgXSxbYGNgXV19XX0sZmxvd2NoYXJ0b25saW5lc3RvcmFnZTp7YWRqOltdLGdkOltbYHgyYCxgKi8gdyA1IDZgXV0scGF0aHM6W3t3OjYsaDo2LGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgMWAsYDBgXSxbYGxgLGA2YCxgMGBdLFtgYWAsYDFgLGAzYCxgM2NkNGAsYC0xMDgwMDAwMGBdLFtgbGAsYDFgLGA2YF0sW2BhYCxgMWAsYDNgLGBjZDRgLGBjZDJgXSxbYGNgXV19XX0sZmxvd2NoYXJ0b3I6e2FkajpbXSxnZDpbW2BpZHhgLGBjb3Mgd2QyIDI3MDAwMDBgXSxbYGlkeWAsYHNpbiBoZDIgMjcwMDAwMGBdLFtgaWxgLGArLSBoYyAwIGlkeGBdLFtgaXJgLGArLSBoYyBpZHggMGBdLFtgaXRgLGArLSB2YyAwIGlkeWBdLFtgaWJgLGArLSB2YyBpZHkgMGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBsYCxgdmNgXSxbYGFgLGB3ZDJgLGBoZDJgLGBjZDJgLGBjZDRgXSxbYGFgLGB3ZDJgLGBoZDJgLGAzY2Q0YCxgY2Q0YF0sW2BhYCxgd2QyYCxgaGQyYCxgMGAsYGNkNGBdLFtgYWAsYHdkMmAsYGhkMmAsYGNkNGAsYGNkNGBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYGhjYCxgdGBdLFtgbGAsYGhjYCxgYmBdLFtgbWAsYGxgLGB2Y2BdLFtgbGAsYHJgLGB2Y2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB2Y2BdLFtgYWAsYHdkMmAsYGhkMmAsYGNkMmAsYGNkNGBdLFtgYWAsYHdkMmAsYGhkMmAsYDNjZDRgLGBjZDRgXSxbYGFgLGB3ZDJgLGBoZDJgLGAwYCxgY2Q0YF0sW2BhYCxgd2QyYCxgaGQyYCxgY2Q0YCxgY2Q0YF0sW2BjYF1dfV19LGZsb3djaGFydHByZWRlZmluZWRwcm9jZXNzOnthZGo6W10sZ2Q6W1tgeDJgLGAqLyB3IDcgOGBdXSxwYXRoczpbe3c6MSxoOjEsZmlsbDpudWxsLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGAwYCxgMGBdLFtgbGAsYDFgLGAwYF0sW2BsYCxgMWAsYDFgXSxbYGxgLGAwYCxgMWBdLFtgY2BdXX0se3c6OCxoOjgsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYDFgLGAwYF0sW2BsYCxgMWAsYDhgXSxbYG1gLGA3YCxgMGBdLFtgbGAsYDdgLGA4YF1dfSx7dzoxLGg6MSxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgMGAsYDBgXSxbYGxgLGAxYCxgMGBdLFtgbGAsYDFgLGAxYF0sW2BsYCxgMGAsYDFgXSxbYGNgXV19XX0sZmxvd2NoYXJ0cHJlcGFyYXRpb246e2FkajpbXSxnZDpbW2B4MmAsYCovIHcgNCA1YF1dLHBhdGhzOlt7dzoxMCxoOjEwLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgMGAsYDVgXSxbYGxgLGAyYCxgMGBdLFtgbGAsYDhgLGAwYF0sW2BsYCxgMTBgLGA1YF0sW2BsYCxgOGAsYDEwYF0sW2BsYCxgMmAsYDEwYF0sW2BjYF1dfV19LGZsb3djaGFydHByb2Nlc3M6e2FkajpbXSxnZDpbXSxwYXRoczpbe3c6MSxoOjEsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGAwYCxgMGBdLFtgbGAsYDFgLGAwYF0sW2BsYCxgMWAsYDFgXSxbYGxgLGAwYCxgMWBdLFtgY2BdXX1dfSxmbG93Y2hhcnRwdW5jaGVkY2FyZDp7YWRqOltdLGdkOltdLHBhdGhzOlt7dzo1LGg6NSxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYDBgLGAxYF0sW2BsYCxgMWAsYDBgXSxbYGxgLGA1YCxgMGBdLFtgbGAsYDVgLGA1YF0sW2BsYCxgMGAsYDVgXSxbYGNgXV19XX0sZmxvd2NoYXJ0cHVuY2hlZHRhcGU6e2FkajpbXSxnZDpbW2B5MmAsYCovIGggOSAxMGBdLFtgaWJgLGAqLyBoIDQgNWBdXSxwYXRoczpbe3c6MjAsaDoyMCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYDBgLGAyYF0sW2BhYCxgNWAsYDJgLGBjZDJgLGAtMTA4MDAwMDBgXSxbYGFgLGA1YCxgMmAsYGNkMmAsYGNkMmBdLFtgbGAsYDIwYCxgMThgXSxbYGFgLGA1YCxgMmAsYDBgLGAtMTA4MDAwMDBgXSxbYGFgLGA1YCxgMmAsYDBgLGBjZDJgXSxbYGNgXV19XX0sZmxvd2NoYXJ0c29ydDp7YWRqOltdLGdkOltbYGlyYCxgKi8gdyAzIDRgXSxbYGliYCxgKi8gaCAzIDRgXV0scGF0aHM6W3t3OjIsaDoyLGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgMGAsYDFgXSxbYGxgLGAxYCxgMGBdLFtgbGAsYDJgLGAxYF0sW2BsYCxgMWAsYDJgXSxbYGNgXV19LHt3OjIsaDoyLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGAwYCxgMWBdLFtgbGAsYDJgLGAxYF1dfSx7dzoyLGg6MixmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgMGAsYDFgXSxbYGxgLGAxYCxgMGBdLFtgbGAsYDJgLGAxYF0sW2BsYCxgMWAsYDJgXSxbYGNgXV19XX0sZmxvd2NoYXJ0c3VtbWluZ2p1bmN0aW9uOnthZGo6W10sZ2Q6W1tgaWR4YCxgY29zIHdkMiAyNzAwMDAwYF0sW2BpZHlgLGBzaW4gaGQyIDI3MDAwMDBgXSxbYGlsYCxgKy0gaGMgMCBpZHhgXSxbYGlyYCxgKy0gaGMgaWR4IDBgXSxbYGl0YCxgKy0gdmMgMCBpZHlgXSxbYGliYCxgKy0gdmMgaWR5IDBgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgbGAsYHZjYF0sW2BhYCxgd2QyYCxgaGQyYCxgY2QyYCxgY2Q0YF0sW2BhYCxgd2QyYCxgaGQyYCxgM2NkNGAsYGNkNGBdLFtgYWAsYHdkMmAsYGhkMmAsYDBgLGBjZDRgXSxbYGFgLGB3ZDJgLGBoZDJgLGBjZDRgLGBjZDRgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBpbGAsYGl0YF0sW2BsYCxgaXJgLGBpYmBdLFtgbWAsYGlyYCxgaXRgXSxbYGxgLGBpbGAsYGliYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHZjYF0sW2BhYCxgd2QyYCxgaGQyYCxgY2QyYCxgY2Q0YF0sW2BhYCxgd2QyYCxgaGQyYCxgM2NkNGAsYGNkNGBdLFtgYWAsYHdkMmAsYGhkMmAsYDBgLGBjZDRgXSxbYGFgLGB3ZDJgLGBoZDJgLGBjZDRgLGBjZDRgXSxbYGNgXV19XX0sZmxvd2NoYXJ0dGVybWluYXRvcjp7YWRqOltdLGdkOltbYGlsYCxgKi8gdyAxMDE4IDIxNjAwYF0sW2BpcmAsYCovIHcgMjA1ODIgMjE2MDBgXSxbYGl0YCxgKi8gaCAzMTYzIDIxNjAwYF0sW2BpYmAsYCovIGggMTg0MzcgMjE2MDBgXV0scGF0aHM6W3t3OjIxNjAwLGg6MjE2MDAsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGAzNDc1YCxgMGBdLFtgbGAsYDE4MTI1YCxgMGBdLFtgYWAsYDM0NzVgLGAxMDgwMGAsYDNjZDRgLGBjZDJgXSxbYGxgLGAzNDc1YCxgMjE2MDBgXSxbYGFgLGAzNDc1YCxgMTA4MDBgLGBjZDRgLGBjZDJgXSxbYGNgXV19XX0sZm9sZGVkY29ybmVyOnthZGo6W1tgYWRqYCxgdmFsIDE2NjY3YF1dLGdkOltbYGFgLGBwaW4gMCBhZGogNTAwMDBgXSxbYGR5MmAsYCovIHNzIGEgMTAwMDAwYF0sW2BkeTFgLGAqLyBkeTIgMSA1YF0sW2B4MWAsYCstIHIgMCBkeTJgXSxbYHgyYCxgKy0geDEgZHkxIDBgXSxbYHkyYCxgKy0gYiAwIGR5MmBdLFtgeTFgLGArLSB5MiBkeTEgMGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBsYCxgdGBdLFtgbGAsYHJgLGB0YF0sW2BsYCxgcmAsYHkyYF0sW2BsYCxgeDFgLGBiYF0sW2BsYCxgbGAsYGJgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YGRhcmtlbkxlc3NgLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGB4MWAsYGJgXSxbYGxgLGB4MmAsYHkxYF0sW2BsYCxgcmAsYHkyYF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgeDFgLGBiYF0sW2BsYCxgeDJgLGB5MWBdLFtgbGAsYHJgLGB5MmBdLFtgbGAsYHgxYCxgYmBdLFtgbGAsYGxgLGBiYF0sW2BsYCxgbGAsYHRgXSxbYGxgLGByYCxgdGBdLFtgbGAsYHJgLGB5MmBdXX1dfSxmcmFtZTp7YWRqOltbYGFkajFgLGB2YWwgMTI1MDBgXV0sZ2Q6W1tgYTFgLGBwaW4gMCBhZGoxIDUwMDAwYF0sW2B4MWAsYCovIHNzIGExIDEwMDAwMGBdLFtgeDRgLGArLSByIDAgeDFgXSxbYHk0YCxgKy0gYiAwIHgxYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB0YF0sW2BsYCxgcmAsYHRgXSxbYGxgLGByYCxgYmBdLFtgbGAsYGxgLGBiYF0sW2BjYF0sW2BtYCxgeDFgLGB4MWBdLFtgbGAsYHgxYCxgeTRgXSxbYGxgLGB4NGAsYHk0YF0sW2BsYCxgeDRgLGB4MWBdLFtgY2BdXX1dfSxmdW5uZWw6e2FkajpbXSxnZDpbW2BkYCxgKi8gc3MgMSAyMGBdLFtgcncyYCxgKy0gd2QyIDAgZGBdLFtgcmgyYCxgKy0gaGQ0IDAgZGBdLFtgdDFgLGBjb3Mgd2QyIDQ4MDAwMGBdLFtgdDJgLGBzaW4gaGQ0IDQ4MDAwMGBdLFtgZGFgLGBhdDIgdDEgdDJgXSxbYDJkYWAsYCovIGRhIDIgMWBdLFtgc3RBbmcxYCxgKy0gY2QyIDAgZGFgXSxbYHN3QW5nMWAsYCstIGNkMiAyZGEgMGBdLFtgc3dBbmczYCxgKy0gY2QyIDAgMmRhYF0sW2BydzNgLGAqLyB3ZDIgMSA0YF0sW2ByaDNgLGAqLyBoZDQgMSA0YF0sW2BjdDFgLGBjb3MgaGQ0IHN0QW5nMWBdLFtgc3QxYCxgc2luIHdkMiBzdEFuZzFgXSxbYG0xYCxgbW9kIGN0MSBzdDEgMGBdLFtgbjFgLGAqLyB3ZDIgaGQ0IG0xYF0sW2BkeDFgLGBjb3MgbjEgc3RBbmcxYF0sW2BkeTFgLGBzaW4gbjEgc3RBbmcxYF0sW2B4MWAsYCstIGhjIGR4MSAwYF0sW2B5MWAsYCstIGhkNCBkeTEgMGBdLFtgY3QzYCxgY29zIHJoMyBkYWBdLFtgc3QzYCxgc2luIHJ3MyBkYWBdLFtgbTNgLGBtb2QgY3QzIHN0MyAwYF0sW2BuM2AsYCovIHJ3MyByaDMgbTNgXSxbYGR4M2AsYGNvcyBuMyBkYWBdLFtgZHkzYCxgc2luIG4zIGRhYF0sW2B4M2AsYCstIGhjIGR4MyAwYF0sW2B2YzNgLGArLSBiIDAgcmgzYF0sW2B5MmAsYCstIHZjMyBkeTMgMGBdLFtgeDJgLGArLSB3ZDIgMCBydzJgXSxbYGNkYCxgKi8gY2QyIDIgMWBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGB4MWAsYHkxYF0sW2BhYCxgd2QyYCxgaGQ0YCxgc3RBbmcxYCxgc3dBbmcxYF0sW2BsYCxgeDNgLGB5MmBdLFtgYWAsYHJ3M2AsYHJoM2AsYGRhYCxgc3dBbmczYF0sW2BjYF0sW2BtYCxgeDJgLGBoZDRgXSxbYGFgLGBydzJgLGByaDJgLGBjZDJgLGAtMjE2MDAwMDBgXSxbYGNgXV19XX0sZ2VhcjY6e2FkajpbW2BhZGoxYCxgdmFsIDE1MDAwYF0sW2BhZGoyYCxgdmFsIDM1MjZgXV0sZ2Q6W1tgYTFgLGBwaW4gMCBhZGoxIDIwMDAwYF0sW2BhMmAsYHBpbiAwIGFkajIgNTM1OGBdLFtgdGhgLGAqLyBzcyBhMSAxMDAwMDBgXSxbYGxGRGAsYCovIHNzIGEyIDEwMDAwMGBdLFtgdGgyYCxgKi8gdGggMSAyYF0sW2BsMmAsYCovIGxGRCAxIDJgXSxbYGwzYCxgKy0gdGgyIGwyIDBgXSxbYHJoYCxgKy0gaGQyIDAgdGhgXSxbYHJ3YCxgKy0gd2QyIDAgdGhgXSxbYGRyYCxgKy0gcncgMCByaGBdLFtgbWF4cmAsYD86IGRyIHJoIHJ3YF0sW2BoYWAsYGF0MiBtYXhyIGwzYF0sW2BhQTFgLGArLSAxOTgwMDAwMCAwIGhhYF0sW2BhRDFgLGArLSAxOTgwMDAwMCBoYSAwYF0sW2B0YTExYCxgY29zIHJ3IGFBMWBdLFtgdGExMmAsYHNpbiByaCBhQTFgXSxbYGJBMWAsYGF0MiB0YTExIHRhMTJgXSxbYGN0YTFgLGBjb3MgcmggYkExYF0sW2BzdGExYCxgc2luIHJ3IGJBMWBdLFtgbWExYCxgbW9kIGN0YTEgc3RhMSAwYF0sW2BuYTFgLGAqLyBydyByaCBtYTFgXSxbYGR4YTFgLGBjb3MgbmExIGJBMWBdLFtgZHlhMWAsYHNpbiBuYTEgYkExYF0sW2B4QTFgLGArLSBoYyBkeGExIDBgXSxbYHlBMWAsYCstIHZjIGR5YTEgMGBdLFtgdGQxMWAsYGNvcyBydyBhRDFgXSxbYHRkMTJgLGBzaW4gcmggYUQxYF0sW2BiRDFgLGBhdDIgdGQxMSB0ZDEyYF0sW2BjdGQxYCxgY29zIHJoIGJEMWBdLFtgc3RkMWAsYHNpbiBydyBiRDFgXSxbYG1kMWAsYG1vZCBjdGQxIHN0ZDEgMGBdLFtgbmQxYCxgKi8gcncgcmggbWQxYF0sW2BkeGQxYCxgY29zIG5kMSBiRDFgXSxbYGR5ZDFgLGBzaW4gbmQxIGJEMWBdLFtgeEQxYCxgKy0gaGMgZHhkMSAwYF0sW2B5RDFgLGArLSB2YyBkeWQxIDBgXSxbYHhBRDFgLGArLSB4QTEgMCB4RDFgXSxbYHlBRDFgLGArLSB5QTEgMCB5RDFgXSxbYGxBRDFgLGBtb2QgeEFEMSB5QUQxIDBgXSxbYGExYCxgYXQyIHlBRDEgeEFEMWBdLFtgZHhGMWAsYHNpbiBsRkQgYTFgXSxbYGR5RjFgLGBjb3MgbEZEIGExYF0sW2B4RjFgLGArLSB4RDEgZHhGMSAwYF0sW2B5RjFgLGArLSB5RDEgZHlGMSAwYF0sW2B4RTFgLGArLSB4QTEgMCBkeEYxYF0sW2B5RTFgLGArLSB5QTEgMCBkeUYxYF0sW2B5QzF0YCxgc2luIHRoIGExYF0sW2B4QzF0YCxgY29zIHRoIGExYF0sW2B5QzFgLGArLSB5RjEgeUMxdCAwYF0sW2B4QzFgLGArLSB4RjEgMCB4QzF0YF0sW2B5QjFgLGArLSB5RTEgeUMxdCAwYF0sW2B4QjFgLGArLSB4RTEgMCB4QzF0YF0sW2BhRDZgLGArLSAzY2Q0IGhhIDBgXSxbYHRkNjFgLGBjb3MgcncgYUQ2YF0sW2B0ZDYyYCxgc2luIHJoIGFENmBdLFtgYkQ2YCxgYXQyIHRkNjEgdGQ2MmBdLFtgY3RkNmAsYGNvcyByaCBiRDZgXSxbYHN0ZDZgLGBzaW4gcncgYkQ2YF0sW2BtZDZgLGBtb2QgY3RkNiBzdGQ2IDBgXSxbYG5kNmAsYCovIHJ3IHJoIG1kNmBdLFtgZHhkNmAsYGNvcyBuZDYgYkQ2YF0sW2BkeWQ2YCxgc2luIG5kNiBiRDZgXSxbYHhENmAsYCstIGhjIGR4ZDYgMGBdLFtgeUQ2YCxgKy0gdmMgZHlkNiAwYF0sW2B4QTZgLGArLSBoYyAwIGR4ZDZgXSxbYHhGNmAsYCstIHhENiAwIGxGRGBdLFtgeEU2YCxgKy0geEE2IGxGRCAwYF0sW2B5QzZgLGArLSB5RDYgMCB0aGBdLFtgc3dBbmcxYCxgKy0gYkExIDAgYkQ2YF0sW2BhQTJgLGArLSAxODAwMDAwIDAgaGFgXSxbYGFEMmAsYCstIDE4MDAwMDAgaGEgMGBdLFtgdGEyMWAsYGNvcyBydyBhQTJgXSxbYHRhMjJgLGBzaW4gcmggYUEyYF0sW2BiQTJgLGBhdDIgdGEyMSB0YTIyYF0sW2B5QTJgLGArLSBoIDAgeUQxYF0sW2B0ZDIxYCxgY29zIHJ3IGFEMmBdLFtgdGQyMmAsYHNpbiByaCBhRDJgXSxbYGJEMmAsYGF0MiB0ZDIxIHRkMjJgXSxbYHlEMmAsYCstIGggMCB5QTFgXSxbYHlDMmAsYCstIGggMCB5QjFgXSxbYHlCMmAsYCstIGggMCB5QzFgXSxbYHhCMmAsYHZhbCB4QzFgXSxbYHN3QW5nMmAsYCstIGJBMiAwIGJEMWBdLFtgYUQzYCxgKy0gY2Q0IGhhIDBgXSxbYHRkMzFgLGBjb3MgcncgYUQzYF0sW2B0ZDMyYCxgc2luIHJoIGFEM2BdLFtgYkQzYCxgYXQyIHRkMzEgdGQzMmBdLFtgeUQzYCxgKy0gaCAwIHlENmBdLFtgeUIzYCxgKy0gaCAwIHlDNmBdLFtgYUQ0YCxgKy0gOTAwMDAwMCBoYSAwYF0sW2B0ZDQxYCxgY29zIHJ3IGFENGBdLFtgdGQ0MmAsYHNpbiByaCBhRDRgXSxbYGJENGAsYGF0MiB0ZDQxIHRkNDJgXSxbYHhENGAsYCstIHcgMCB4RDFgXSxbYHhDNGAsYCstIHcgMCB4QzFgXSxbYHhCNGAsYCstIHcgMCB4QjFgXSxbYGFENWAsYCstIDEyNjAwMDAwIGhhIDBgXSxbYHRkNTFgLGBjb3MgcncgYUQ1YF0sW2B0ZDUyYCxgc2luIHJoIGFENWBdLFtgYkQ1YCxgYXQyIHRkNTEgdGQ1MmBdLFtgeEQ1YCxgKy0gdyAwIHhBMWBdLFtgeEM1YCxgKy0gdyAwIHhCMWBdLFtgeEI1YCxgKy0gdyAwIHhDMWBdLFtgeEN4bjFgLGArLyB4QjEgeEMxIDJgXSxbYHlDeG4xYCxgKy8geUIxIHlDMSAyYF0sW2B5Q3huMmAsYCstIGIgMCB5Q3huMWBdLFtgeEN4bjRgLGArLyByIDAgeEN4bjFgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgeEExYCxgeUExYF0sW2BsYCxgeEIxYCxgeUIxYF0sW2BsYCxgeEMxYCxgeUMxYF0sW2BsYCxgeEQxYCxgeUQxYF0sW2BhYCxgcndgLGByaGAsYGJEMWAsYHN3QW5nMmBdLFtgbGAsYHhDMWAsYHlCMmBdLFtgbGAsYHhCMWAsYHlDMmBdLFtgbGAsYHhBMWAsYHlEMmBdLFtgYWAsYHJ3YCxgcmhgLGBiRDJgLGBzd0FuZzFgXSxbYGxgLGB4RjZgLGB5QjNgXSxbYGxgLGB4RTZgLGB5QjNgXSxbYGxgLGB4QTZgLGB5RDNgXSxbYGFgLGByd2AsYHJoYCxgYkQzYCxgc3dBbmcxYF0sW2BsYCxgeEI0YCxgeUMyYF0sW2BsYCxgeEM0YCxgeUIyYF0sW2BsYCxgeEQ0YCxgeUEyYF0sW2BhYCxgcndgLGByaGAsYGJENGAsYHN3QW5nMmBdLFtgbGAsYHhCNWAsYHlDMWBdLFtgbGAsYHhDNWAsYHlCMWBdLFtgbGAsYHhENWAsYHlBMWBdLFtgYWAsYHJ3YCxgcmhgLGBiRDVgLGBzd0FuZzFgXSxbYGxgLGB4RTZgLGB5QzZgXSxbYGxgLGB4RjZgLGB5QzZgXSxbYGxgLGB4RDZgLGB5RDZgXSxbYGFgLGByd2AsYHJoYCxgYkQ2YCxgc3dBbmcxYF0sW2BjYF1dfV19LGdlYXI5OnthZGo6W1tgYWRqMWAsYHZhbCAxMDAwMGBdLFtgYWRqMmAsYHZhbCAxNzYzYF1dLGdkOltbYGExYCxgcGluIDAgYWRqMSAyMDAwMGBdLFtgYTJgLGBwaW4gMCBhZGoyIDI2NzlgXSxbYHRoYCxgKi8gc3MgYTEgMTAwMDAwYF0sW2BsRkRgLGAqLyBzcyBhMiAxMDAwMDBgXSxbYHRoMmAsYCovIHRoIDEgMmBdLFtgbDJgLGAqLyBsRkQgMSAyYF0sW2BsM2AsYCstIHRoMiBsMiAwYF0sW2ByaGAsYCstIGhkMiAwIHRoYF0sW2Byd2AsYCstIHdkMiAwIHRoYF0sW2BkcmAsYCstIHJ3IDAgcmhgXSxbYG1heHJgLGA/OiBkciByaCByd2BdLFtgaGFgLGBhdDIgbWF4ciBsM2BdLFtgYUExYCxgKy0gMTg2MDAwMDAgMCBoYWBdLFtgYUQxYCxgKy0gMTg2MDAwMDAgaGEgMGBdLFtgdGExMWAsYGNvcyBydyBhQTFgXSxbYHRhMTJgLGBzaW4gcmggYUExYF0sW2BiQTFgLGBhdDIgdGExMSB0YTEyYF0sW2BjdGExYCxgY29zIHJoIGJBMWBdLFtgc3RhMWAsYHNpbiBydyBiQTFgXSxbYG1hMWAsYG1vZCBjdGExIHN0YTEgMGBdLFtgbmExYCxgKi8gcncgcmggbWExYF0sW2BkeGExYCxgY29zIG5hMSBiQTFgXSxbYGR5YTFgLGBzaW4gbmExIGJBMWBdLFtgeEExYCxgKy0gaGMgZHhhMSAwYF0sW2B5QTFgLGArLSB2YyBkeWExIDBgXSxbYHRkMTFgLGBjb3MgcncgYUQxYF0sW2B0ZDEyYCxgc2luIHJoIGFEMWBdLFtgYkQxYCxgYXQyIHRkMTEgdGQxMmBdLFtgY3RkMWAsYGNvcyByaCBiRDFgXSxbYHN0ZDFgLGBzaW4gcncgYkQxYF0sW2BtZDFgLGBtb2QgY3RkMSBzdGQxIDBgXSxbYG5kMWAsYCovIHJ3IHJoIG1kMWBdLFtgZHhkMWAsYGNvcyBuZDEgYkQxYF0sW2BkeWQxYCxgc2luIG5kMSBiRDFgXSxbYHhEMWAsYCstIGhjIGR4ZDEgMGBdLFtgeUQxYCxgKy0gdmMgZHlkMSAwYF0sW2B4QUQxYCxgKy0geEExIDAgeEQxYF0sW2B5QUQxYCxgKy0geUExIDAgeUQxYF0sW2BsQUQxYCxgbW9kIHhBRDEgeUFEMSAwYF0sW2BhMWAsYGF0MiB5QUQxIHhBRDFgXSxbYGR4RjFgLGBzaW4gbEZEIGExYF0sW2BkeUYxYCxgY29zIGxGRCBhMWBdLFtgeEYxYCxgKy0geEQxIGR4RjEgMGBdLFtgeUYxYCxgKy0geUQxIGR5RjEgMGBdLFtgeEUxYCxgKy0geEExIDAgZHhGMWBdLFtgeUUxYCxgKy0geUExIDAgZHlGMWBdLFtgeUMxdGAsYHNpbiB0aCBhMWBdLFtgeEMxdGAsYGNvcyB0aCBhMWBdLFtgeUMxYCxgKy0geUYxIHlDMXQgMGBdLFtgeEMxYCxgKy0geEYxIDAgeEMxdGBdLFtgeUIxYCxgKy0geUUxIHlDMXQgMGBdLFtgeEIxYCxgKy0geEUxIDAgeEMxdGBdLFtgYUEyYCxgKy0gMjEwMDAwMDAgMCBoYWBdLFtgYUQyYCxgKy0gMjEwMDAwMDAgaGEgMGBdLFtgdGEyMWAsYGNvcyBydyBhQTJgXSxbYHRhMjJgLGBzaW4gcmggYUEyYF0sW2BiQTJgLGBhdDIgdGEyMSB0YTIyYF0sW2BjdGEyYCxgY29zIHJoIGJBMmBdLFtgc3RhMmAsYHNpbiBydyBiQTJgXSxbYG1hMmAsYG1vZCBjdGEyIHN0YTIgMGBdLFtgbmEyYCxgKi8gcncgcmggbWEyYF0sW2BkeGEyYCxgY29zIG5hMiBiQTJgXSxbYGR5YTJgLGBzaW4gbmEyIGJBMmBdLFtgeEEyYCxgKy0gaGMgZHhhMiAwYF0sW2B5QTJgLGArLSB2YyBkeWEyIDBgXSxbYHRkMjFgLGBjb3MgcncgYUQyYF0sW2B0ZDIyYCxgc2luIHJoIGFEMmBdLFtgYkQyYCxgYXQyIHRkMjEgdGQyMmBdLFtgY3RkMmAsYGNvcyByaCBiRDJgXSxbYHN0ZDJgLGBzaW4gcncgYkQyYF0sW2BtZDJgLGBtb2QgY3RkMiBzdGQyIDBgXSxbYG5kMmAsYCovIHJ3IHJoIG1kMmBdLFtgZHhkMmAsYGNvcyBuZDIgYkQyYF0sW2BkeWQyYCxgc2luIG5kMiBiRDJgXSxbYHhEMmAsYCstIGhjIGR4ZDIgMGBdLFtgeUQyYCxgKy0gdmMgZHlkMiAwYF0sW2B4QUQyYCxgKy0geEEyIDAgeEQyYF0sW2B5QUQyYCxgKy0geUEyIDAgeUQyYF0sW2BsQUQyYCxgbW9kIHhBRDIgeUFEMiAwYF0sW2BhMmAsYGF0MiB5QUQyIHhBRDJgXSxbYGR4RjJgLGBzaW4gbEZEIGEyYF0sW2BkeUYyYCxgY29zIGxGRCBhMmBdLFtgeEYyYCxgKy0geEQyIGR4RjIgMGBdLFtgeUYyYCxgKy0geUQyIGR5RjIgMGBdLFtgeEUyYCxgKy0geEEyIDAgZHhGMmBdLFtgeUUyYCxgKy0geUEyIDAgZHlGMmBdLFtgeUMydGAsYHNpbiB0aCBhMmBdLFtgeEMydGAsYGNvcyB0aCBhMmBdLFtgeUMyYCxgKy0geUYyIHlDMnQgMGBdLFtgeEMyYCxgKy0geEYyIDAgeEMydGBdLFtgeUIyYCxgKy0geUUyIHlDMnQgMGBdLFtgeEIyYCxgKy0geEUyIDAgeEMydGBdLFtgc3dBbmcxYCxgKy0gYkEyIDAgYkQxYF0sW2BhQTNgLGArLSAxODAwMDAwIDAgaGFgXSxbYGFEM2AsYCstIDE4MDAwMDAgaGEgMGBdLFtgdGEzMWAsYGNvcyBydyBhQTNgXSxbYHRhMzJgLGBzaW4gcmggYUEzYF0sW2BiQTNgLGBhdDIgdGEzMSB0YTMyYF0sW2BjdGEzYCxgY29zIHJoIGJBM2BdLFtgc3RhM2AsYHNpbiBydyBiQTNgXSxbYG1hM2AsYG1vZCBjdGEzIHN0YTMgMGBdLFtgbmEzYCxgKi8gcncgcmggbWEzYF0sW2BkeGEzYCxgY29zIG5hMyBiQTNgXSxbYGR5YTNgLGBzaW4gbmEzIGJBM2BdLFtgeEEzYCxgKy0gaGMgZHhhMyAwYF0sW2B5QTNgLGArLSB2YyBkeWEzIDBgXSxbYHRkMzFgLGBjb3MgcncgYUQzYF0sW2B0ZDMyYCxgc2luIHJoIGFEM2BdLFtgYkQzYCxgYXQyIHRkMzEgdGQzMmBdLFtgY3RkM2AsYGNvcyByaCBiRDNgXSxbYHN0ZDNgLGBzaW4gcncgYkQzYF0sW2BtZDNgLGBtb2QgY3RkMyBzdGQzIDBgXSxbYG5kM2AsYCovIHJ3IHJoIG1kM2BdLFtgZHhkM2AsYGNvcyBuZDMgYkQzYF0sW2BkeWQzYCxgc2luIG5kMyBiRDNgXSxbYHhEM2AsYCstIGhjIGR4ZDMgMGBdLFtgeUQzYCxgKy0gdmMgZHlkMyAwYF0sW2B4QUQzYCxgKy0geEEzIDAgeEQzYF0sW2B5QUQzYCxgKy0geUEzIDAgeUQzYF0sW2BsQUQzYCxgbW9kIHhBRDMgeUFEMyAwYF0sW2BhM2AsYGF0MiB5QUQzIHhBRDNgXSxbYGR4RjNgLGBzaW4gbEZEIGEzYF0sW2BkeUYzYCxgY29zIGxGRCBhM2BdLFtgeEYzYCxgKy0geEQzIGR4RjMgMGBdLFtgeUYzYCxgKy0geUQzIGR5RjMgMGBdLFtgeEUzYCxgKy0geEEzIDAgZHhGM2BdLFtgeUUzYCxgKy0geUEzIDAgZHlGM2BdLFtgeUMzdGAsYHNpbiB0aCBhM2BdLFtgeEMzdGAsYGNvcyB0aCBhM2BdLFtgeUMzYCxgKy0geUYzIHlDM3QgMGBdLFtgeEMzYCxgKy0geEYzIDAgeEMzdGBdLFtgeUIzYCxgKy0geUUzIHlDM3QgMGBdLFtgeEIzYCxgKy0geEUzIDAgeEMzdGBdLFtgc3dBbmcyYCxgKy0gYkEzIDAgYkQyYF0sW2BhQTRgLGArLSA0MjAwMDAwIDAgaGFgXSxbYGFENGAsYCstIDQyMDAwMDAgaGEgMGBdLFtgdGE0MWAsYGNvcyBydyBhQTRgXSxbYHRhNDJgLGBzaW4gcmggYUE0YF0sW2BiQTRgLGBhdDIgdGE0MSB0YTQyYF0sW2BjdGE0YCxgY29zIHJoIGJBNGBdLFtgc3RhNGAsYHNpbiBydyBiQTRgXSxbYG1hNGAsYG1vZCBjdGE0IHN0YTQgMGBdLFtgbmE0YCxgKi8gcncgcmggbWE0YF0sW2BkeGE0YCxgY29zIG5hNCBiQTRgXSxbYGR5YTRgLGBzaW4gbmE0IGJBNGBdLFtgeEE0YCxgKy0gaGMgZHhhNCAwYF0sW2B5QTRgLGArLSB2YyBkeWE0IDBgXSxbYHRkNDFgLGBjb3MgcncgYUQ0YF0sW2B0ZDQyYCxgc2luIHJoIGFENGBdLFtgYkQ0YCxgYXQyIHRkNDEgdGQ0MmBdLFtgY3RkNGAsYGNvcyByaCBiRDRgXSxbYHN0ZDRgLGBzaW4gcncgYkQ0YF0sW2BtZDRgLGBtb2QgY3RkNCBzdGQ0IDBgXSxbYG5kNGAsYCovIHJ3IHJoIG1kNGBdLFtgZHhkNGAsYGNvcyBuZDQgYkQ0YF0sW2BkeWQ0YCxgc2luIG5kNCBiRDRgXSxbYHhENGAsYCstIGhjIGR4ZDQgMGBdLFtgeUQ0YCxgKy0gdmMgZHlkNCAwYF0sW2B4QUQ0YCxgKy0geEE0IDAgeEQ0YF0sW2B5QUQ0YCxgKy0geUE0IDAgeUQ0YF0sW2BsQUQ0YCxgbW9kIHhBRDQgeUFENCAwYF0sW2BhNGAsYGF0MiB5QUQ0IHhBRDRgXSxbYGR4RjRgLGBzaW4gbEZEIGE0YF0sW2BkeUY0YCxgY29zIGxGRCBhNGBdLFtgeEY0YCxgKy0geEQ0IGR4RjQgMGBdLFtgeUY0YCxgKy0geUQ0IGR5RjQgMGBdLFtgeEU0YCxgKy0geEE0IDAgZHhGNGBdLFtgeUU0YCxgKy0geUE0IDAgZHlGNGBdLFtgeUM0dGAsYHNpbiB0aCBhNGBdLFtgeEM0dGAsYGNvcyB0aCBhNGBdLFtgeUM0YCxgKy0geUY0IHlDNHQgMGBdLFtgeEM0YCxgKy0geEY0IDAgeEM0dGBdLFtgeUI0YCxgKy0geUU0IHlDNHQgMGBdLFtgeEI0YCxgKy0geEU0IDAgeEM0dGBdLFtgc3dBbmczYCxgKy0gYkE0IDAgYkQzYF0sW2BhQTVgLGArLSA2NjAwMDAwIDAgaGFgXSxbYGFENWAsYCstIDY2MDAwMDAgaGEgMGBdLFtgdGE1MWAsYGNvcyBydyBhQTVgXSxbYHRhNTJgLGBzaW4gcmggYUE1YF0sW2BiQTVgLGBhdDIgdGE1MSB0YTUyYF0sW2B0ZDUxYCxgY29zIHJ3IGFENWBdLFtgdGQ1MmAsYHNpbiByaCBhRDVgXSxbYGJENWAsYGF0MiB0ZDUxIHRkNTJgXSxbYHhENWAsYCstIHcgMCB4QTRgXSxbYHhDNWAsYCstIHcgMCB4QjRgXSxbYHhCNWAsYCstIHcgMCB4QzRgXSxbYHN3QW5nNGAsYCstIGJBNSAwIGJENGBdLFtgYUQ2YCxgKy0gOTAwMDAwMCBoYSAwYF0sW2B0ZDYxYCxgY29zIHJ3IGFENmBdLFtgdGQ2MmAsYHNpbiByaCBhRDZgXSxbYGJENmAsYGF0MiB0ZDYxIHRkNjJgXSxbYHhENmAsYCstIHcgMCB4QTNgXSxbYHhDNmAsYCstIHcgMCB4QjNgXSxbYHhCNmAsYCstIHcgMCB4QzNgXSxbYGFEN2AsYCstIDExNDAwMDAwIGhhIDBgXSxbYHRkNzFgLGBjb3MgcncgYUQ3YF0sW2B0ZDcyYCxgc2luIHJoIGFEN2BdLFtgYkQ3YCxgYXQyIHRkNzEgdGQ3MmBdLFtgeEQ3YCxgKy0gdyAwIHhBMmBdLFtgeEM3YCxgKy0gdyAwIHhCMmBdLFtgeEI3YCxgKy0gdyAwIHhDMmBdLFtgYUQ4YCxgKy0gMTM4MDAwMDAgaGEgMGBdLFtgdGQ4MWAsYGNvcyBydyBhRDhgXSxbYHRkODJgLGBzaW4gcmggYUQ4YF0sW2BiRDhgLGBhdDIgdGQ4MSB0ZDgyYF0sW2B4QThgLGArLSB3IDAgeEQxYF0sW2B4RDhgLGArLSB3IDAgeEExYF0sW2B4QzhgLGArLSB3IDAgeEIxYF0sW2B4QjhgLGArLSB3IDAgeEMxYF0sW2BhQTlgLGArLSAzY2Q0IDAgaGFgXSxbYGFEOWAsYCstIDNjZDQgaGEgMGBdLFtgdGQ5MWAsYGNvcyBydyBhRDlgXSxbYHRkOTJgLGBzaW4gcmggYUQ5YF0sW2BiRDlgLGBhdDIgdGQ5MSB0ZDkyYF0sW2BjdGQ5YCxgY29zIHJoIGJEOWBdLFtgc3RkOWAsYHNpbiBydyBiRDlgXSxbYG1kOWAsYG1vZCBjdGQ5IHN0ZDkgMGBdLFtgbmQ5YCxgKi8gcncgcmggbWQ5YF0sW2BkeGQ5YCxgY29zIG5kOSBiRDlgXSxbYGR5ZDlgLGBzaW4gbmQ5IGJEOWBdLFtgeEQ5YCxgKy0gaGMgZHhkOSAwYF0sW2B5RDlgLGArLSB2YyBkeWQ5IDBgXSxbYHRhOTFgLGBjb3MgcncgYUE5YF0sW2B0YTkyYCxgc2luIHJoIGFBOWBdLFtgYkE5YCxgYXQyIHRhOTEgdGE5MmBdLFtgeEE5YCxgKy0gaGMgMCBkeGQ5YF0sW2B4RjlgLGArLSB4RDkgMCBsRkRgXSxbYHhFOWAsYCstIHhBOSBsRkQgMGBdLFtgeUM5YCxgKy0geUQ5IDAgdGhgXSxbYHN3QW5nNWAsYCstIGJBOSAwIGJEOGBdLFtgeEN4bjFgLGArLyB4QjEgeEMxIDJgXSxbYHlDeG4xYCxgKy8geUIxIHlDMSAyYF0sW2B4Q3huMmAsYCsvIHhCMiB4QzIgMmBdLFtgeUN4bjJgLGArLyB5QjIgeUMyIDJgXSxbYHhDeG4zYCxgKy8geEIzIHhDMyAyYF0sW2B5Q3huM2AsYCsvIHlCMyB5QzMgMmBdLFtgeEN4bjRgLGArLyB4QjQgeEM0IDJgXSxbYHlDeG40YCxgKy8geUI0IHlDNCAyYF0sW2B4Q3huNWAsYCsvIHIgMCB4Q3huNGBdLFtgeEN4bjZgLGArLyByIDAgeEN4bjNgXSxbYHhDeG43YCxgKy8gciAwIHhDeG4yYF0sW2B4Q3huOGAsYCsvIHIgMCB4Q3huMWBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGB4QTFgLGB5QTFgXSxbYGxgLGB4QjFgLGB5QjFgXSxbYGxgLGB4QzFgLGB5QzFgXSxbYGxgLGB4RDFgLGB5RDFgXSxbYGFgLGByd2AsYHJoYCxgYkQxYCxgc3dBbmcxYF0sW2BsYCxgeEIyYCxgeUIyYF0sW2BsYCxgeEMyYCxgeUMyYF0sW2BsYCxgeEQyYCxgeUQyYF0sW2BhYCxgcndgLGByaGAsYGJEMmAsYHN3QW5nMmBdLFtgbGAsYHhCM2AsYHlCM2BdLFtgbGAsYHhDM2AsYHlDM2BdLFtgbGAsYHhEM2AsYHlEM2BdLFtgYWAsYHJ3YCxgcmhgLGBiRDNgLGBzd0FuZzNgXSxbYGxgLGB4QjRgLGB5QjRgXSxbYGxgLGB4QzRgLGB5QzRgXSxbYGxgLGB4RDRgLGB5RDRgXSxbYGFgLGByd2AsYHJoYCxgYkQ0YCxgc3dBbmc0YF0sW2BsYCxgeEI1YCxgeUM0YF0sW2BsYCxgeEM1YCxgeUI0YF0sW2BsYCxgeEQ1YCxgeUE0YF0sW2BhYCxgcndgLGByaGAsYGJENWAsYHN3QW5nM2BdLFtgbGAsYHhCNmAsYHlDM2BdLFtgbGAsYHhDNmAsYHlCM2BdLFtgbGAsYHhENmAsYHlBM2BdLFtgYWAsYHJ3YCxgcmhgLGBiRDZgLGBzd0FuZzJgXSxbYGxgLGB4QjdgLGB5QzJgXSxbYGxgLGB4QzdgLGB5QjJgXSxbYGxgLGB4RDdgLGB5QTJgXSxbYGFgLGByd2AsYHJoYCxgYkQ3YCxgc3dBbmcxYF0sW2BsYCxgeEI4YCxgeUMxYF0sW2BsYCxgeEM4YCxgeUIxYF0sW2BsYCxgeEQ4YCxgeUExYF0sW2BhYCxgcndgLGByaGAsYGJEOGAsYHN3QW5nNWBdLFtgbGAsYHhFOWAsYHlDOWBdLFtgbGAsYHhGOWAsYHlDOWBdLFtgbGAsYHhEOWAsYHlEOWBdLFtgYWAsYHJ3YCxgcmhgLGBiRDlgLGBzd0FuZzVgXSxbYGNgXV19XX0saGFsZmZyYW1lOnthZGo6W1tgYWRqMWAsYHZhbCAzMzMzM2BdLFtgYWRqMmAsYHZhbCAzMzMzM2BdXSxnZDpbW2BtYXhBZGoyYCxgKi8gMTAwMDAwIHcgc3NgXSxbYGEyYCxgcGluIDAgYWRqMiBtYXhBZGoyYF0sW2B4MWAsYCovIHNzIGEyIDEwMDAwMGBdLFtgZzFgLGAqLyBoIHgxIHdgXSxbYGcyYCxgKy0gaCAwIGcxYF0sW2BtYXhBZGoxYCxgKi8gMTAwMDAwIGcyIHNzYF0sW2BhMWAsYHBpbiAwIGFkajEgbWF4QWRqMWBdLFtgeTFgLGAqLyBzcyBhMSAxMDAwMDBgXSxbYGR4MmAsYCovIHkxIHcgaGBdLFtgeDJgLGArLSByIDAgZHgyYF0sW2BkeTJgLGAqLyB4MSBoIHdgXSxbYHkyYCxgKy0gYiAwIGR5MmBdLFtgY3gxYCxgKi8geDEgMSAyYF0sW2BjeTFgLGArLyB5MiBiIDJgXSxbYGN4MmAsYCsvIHgyIHIgMmBdLFtgY3kyYCxgKi8geTEgMSAyYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB0YF0sW2BsYCxgcmAsYHRgXSxbYGxgLGB4MmAsYHkxYF0sW2BsYCxgeDFgLGB5MWBdLFtgbGAsYHgxYCxgeTJgXSxbYGxgLGBsYCxgYmBdLFtgY2BdXX1dfSxoZWFydDp7YWRqOltdLGdkOltbYGR4MWAsYCovIHcgNDkgNDhgXSxbYGR4MmAsYCovIHcgMTAgNDhgXSxbYHgxYCxgKy0gaGMgMCBkeDFgXSxbYHgyYCxgKy0gaGMgMCBkeDJgXSxbYHgzYCxgKy0gaGMgZHgyIDBgXSxbYHg0YCxgKy0gaGMgZHgxIDBgXSxbYHkxYCxgKy0gdCAwIGhkM2BdLFtgaWxgLGAqLyB3IDEgNmBdLFtgaXJgLGAqLyB3IDUgNmBdLFtgaWJgLGAqLyBoIDIgM2BdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGBoY2AsYGhkNGBdLFtgQ2AsYHgzYCxgeTFgLGB4NGAsYGhkNGAsYGhjYCxgYmBdLFtgQ2AsYHgxYCxgaGQ0YCxgeDJgLGB5MWAsYGhjYCxgaGQ0YF0sW2BjYF1dfV19LGhlcHRhZ29uOnthZGo6W1tgaGZgLGB2YWwgMTAyNTcyYF0sW2B2ZmAsYHZhbCAxMDUyMTBgXV0sZ2Q6W1tgc3dkMmAsYCovIHdkMiBoZiAxMDAwMDBgXSxbYHNoZDJgLGAqLyBoZDIgdmYgMTAwMDAwYF0sW2BzdmNgLGAqLyB2YyAgdmYgMTAwMDAwYF0sW2BkeDFgLGAqLyBzd2QyIDk3NDkzIDEwMDAwMGBdLFtgZHgyYCxgKi8gc3dkMiA3ODE4MyAxMDAwMDBgXSxbYGR4M2AsYCovIHN3ZDIgNDMzODggMTAwMDAwYF0sW2BkeTFgLGAqLyBzaGQyIDYyMzQ5IDEwMDAwMGBdLFtgZHkyYCxgKi8gc2hkMiAyMjI1MiAxMDAwMDBgXSxbYGR5M2AsYCovIHNoZDIgOTAwOTcgMTAwMDAwYF0sW2B4MWAsYCstIGhjIDAgZHgxYF0sW2B4MmAsYCstIGhjIDAgZHgyYF0sW2B4M2AsYCstIGhjIDAgZHgzYF0sW2B4NGAsYCstIGhjIGR4MyAwYF0sW2B4NWAsYCstIGhjIGR4MiAwYF0sW2B4NmAsYCstIGhjIGR4MSAwYF0sW2B5MWAsYCstIHN2YyAwIGR5MWBdLFtgeTJgLGArLSBzdmMgZHkyIDBgXSxbYHkzYCxgKy0gc3ZjIGR5MyAwYF0sW2BpYmAsYCstIGIgMCB5MWBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGB4MWAsYHkyYF0sW2BsYCxgeDJgLGB5MWBdLFtgbGAsYGhjYCxgdGBdLFtgbGAsYHg1YCxgeTFgXSxbYGxgLGB4NmAsYHkyYF0sW2BsYCxgeDRgLGB5M2BdLFtgbGAsYHgzYCxgeTNgXSxbYGNgXV19XX0saGV4YWdvbjp7YWRqOltbYGFkamAsYHZhbCAyNTAwMGBdLFtgdmZgLGB2YWwgMTE1NDcwYF1dLGdkOltbYG1heEFkamAsYCovIDUwMDAwIHcgc3NgXSxbYGFgLGBwaW4gMCBhZGogbWF4QWRqYF0sW2BzaGQyYCxgKi8gaGQyIHZmIDEwMDAwMGBdLFtgeDFgLGAqLyBzcyBhIDEwMDAwMGBdLFtgeDJgLGArLSByIDAgeDFgXSxbYGR5MWAsYHNpbiBzaGQyIDM2MDAwMDBgXSxbYHkxYCxgKy0gdmMgMCBkeTFgXSxbYHkyYCxgKy0gdmMgZHkxIDBgXSxbYHExYCxgKi8gbWF4QWRqIC0xIDJgXSxbYHEyYCxgKy0gYSBxMSAwYF0sW2BxM2AsYD86IHEyIDQgMmBdLFtgcTRgLGA/OiBxMiAzIDJgXSxbYHE1YCxgPzogcTIgcTEgMGBdLFtgcTZgLGArLyBhIHE1IHExYF0sW2BxN2AsYCovIHE2IHE0IC0xYF0sW2BxOGAsYCstIHEzIHE3IDBgXSxbYGlsYCxgKi8gdyBxOCAyNGBdLFtgaXRgLGAqLyBoIHE4IDI0YF0sW2BpcmAsYCstIHIgMCBpbGBdLFtgaWJgLGArLSBiIDAgaXRgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHZjYF0sW2BsYCxgeDFgLGB5MWBdLFtgbGAsYHgyYCxgeTFgXSxbYGxgLGByYCxgdmNgXSxbYGxgLGB4MmAsYHkyYF0sW2BsYCxgeDFgLGB5MmBdLFtgY2BdXX1dfSxob21lcGxhdGU6e2FkajpbW2BhZGpgLGB2YWwgNTAwMDBgXV0sZ2Q6W1tgbWF4QWRqYCxgKi8gMTAwMDAwIHcgc3NgXSxbYGFgLGBwaW4gMCBhZGogbWF4QWRqYF0sW2BkeDFgLGAqLyBzcyBhIDEwMDAwMGBdLFtgeDFgLGArLSByIDAgZHgxYF0sW2BpcmAsYCsvIHgxIHIgMmBdLFtgeDJgLGAqLyB4MSAxIDJgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHRgXSxbYGxgLGB4MWAsYHRgXSxbYGxgLGByYCxgdmNgXSxbYGxgLGB4MWAsYGJgXSxbYGxgLGBsYCxgYmBdLFtgY2BdXX1dfSxob3Jpem9udGFsc2Nyb2xsOnthZGo6W1tgYWRqYCxgdmFsIDEyNTAwYF1dLGdkOltbYGFgLGBwaW4gMCBhZGogMjUwMDBgXSxbYGNoYCxgKi8gc3MgYSAxMDAwMDBgXSxbYGNoMmAsYCovIGNoIDEgMmBdLFtgY2g0YCxgKi8gY2ggMSA0YF0sW2B5M2AsYCstIGNoIGNoMiAwYF0sW2B5NGAsYCstIGNoIGNoIDBgXSxbYHk2YCxgKy0gYiAwIGNoYF0sW2B5N2AsYCstIGIgMCBjaDJgXSxbYHk1YCxgKy0geTYgMCBjaDJgXSxbYHgzYCxgKy0gciAwIGNoYF0sW2B4NGAsYCstIHIgMCBjaDJgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgcmAsYGNoMmBdLFtgYWAsYGNoMmAsYGNoMmAsYDBgLGBjZDRgXSxbYGxgLGB4NGAsYGNoMmBdLFtgYWAsYGNoNGAsYGNoNGAsYDBgLGBjZDJgXSxbYGxgLGB4M2AsYGNoYF0sW2BsYCxgY2gyYCxgY2hgXSxbYGFgLGBjaDJgLGBjaDJgLGAzY2Q0YCxgLTU0MDAwMDBgXSxbYGxgLGBsYCxgeTdgXSxbYGFgLGBjaDJgLGBjaDJgLGBjZDJgLGAtMTA4MDAwMDBgXSxbYGxgLGBjaGAsYHk2YF0sW2BsYCxgeDRgLGB5NmBdLFtgYWAsYGNoMmAsYGNoMmAsYGNkNGAsYC01NDAwMDAwYF0sW2BjYF0sW2BtYCxgY2gyYCxgeTRgXSxbYGFgLGBjaDJgLGBjaDJgLGBjZDRgLGAtNTQwMDAwMGBdLFtgYWAsYGNoNGAsYGNoNGAsYDBgLGAtMTA4MDAwMDBgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YGRhcmtlbkxlc3NgLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBjaDJgLGB5NGBdLFtgYWAsYGNoMmAsYGNoMmAsYGNkNGAsYC01NDAwMDAwYF0sW2BhYCxgY2g0YCxgY2g0YCxgMGAsYC0xMDgwMDAwMGBdLFtgY2BdLFtgbWAsYHg0YCxgY2hgXSxbYGFgLGBjaDJgLGBjaDJgLGBjZDRgLGAtMTYyMDAwMDBgXSxbYGFgLGBjaDRgLGBjaDRgLGBjZDJgLGAtMTA4MDAwMDBgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBsYCxgeTNgXSxbYGFgLGBjaDJgLGBjaDJgLGBjZDJgLGBjZDRgXSxbYGxgLGB4M2AsYGNoYF0sW2BsYCxgeDNgLGBjaDJgXSxbYGFgLGBjaDJgLGBjaDJgLGBjZDJgLGBjZDJgXSxbYGxgLGByYCxgeTVgXSxbYGFgLGBjaDJgLGBjaDJgLGAwYCxgY2Q0YF0sW2BsYCxgY2hgLGB5NmBdLFtgbGAsYGNoYCxgeTdgXSxbYGFgLGBjaDJgLGBjaDJgLGAwYCxgY2QyYF0sW2BjYF0sW2BtYCxgeDNgLGBjaGBdLFtgbGAsYHg0YCxgY2hgXSxbYGFgLGBjaDJgLGBjaDJgLGBjZDRgLGAtNTQwMDAwMGBdLFtgbWAsYHg0YCxgY2hgXSxbYGxgLGB4NGAsYGNoMmBdLFtgYWAsYGNoNGAsYGNoNGAsYDBgLGBjZDJgXSxbYG1gLGBjaDJgLGB5NGBdLFtgbGAsYGNoMmAsYHkzYF0sW2BhYCxgY2g0YCxgY2g0YCxgY2QyYCxgY2QyYF0sW2BhYCxgY2gyYCxgY2gyYCxgMGAsYGNkMmBdLFtgbWAsYGNoYCxgeTNgXSxbYGxgLGBjaGAsYHk2YF1dfV19LGlycmVndWxhcnNlYWwxOnthZGo6W10sZ2Q6W1tgeDVgLGAqLyB3IDQ2MjcgMjE2MDBgXSxbYHgxMmAsYCovIHcgODQ4NSAyMTYwMGBdLFtgeDIxYCxgKi8gdyAxNjcwMiAyMTYwMGBdLFtgeDI0YCxgKi8gdyAxNDUyMiAyMTYwMGBdLFtgeTNgLGAqLyBoIDYzMjAgMjE2MDBgXSxbYHk2YCxgKi8gaCA4NjE1IDIxNjAwYF0sW2B5OWAsYCovIGggMTM5MzcgMjE2MDBgXSxbYHkxOGAsYCovIGggMTMyOTAgMjE2MDBgXV0scGF0aHM6W3t3OjIxNjAwLGg6MjE2MDAsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGAxMDgwMGAsYDU4MDBgXSxbYGxgLGAxNDUyMmAsYDBgXSxbYGxgLGAxNDE1NWAsYDUzMjVgXSxbYGxgLGAxODM4MGAsYDQ0NTdgXSxbYGxgLGAxNjcwMmAsYDczMTVgXSxbYGxgLGAyMTA5N2AsYDgxMzdgXSxbYGxgLGAxNzYwN2AsYDEwNDc1YF0sW2BsYCxgMjE2MDBgLGAxMzI5MGBdLFtgbGAsYDE2ODM3YCxgMTI5NDJgXSxbYGxgLGAxODE0NWAsYDE4MDk1YF0sW2BsYCxgMTQwMjBgLGAxNDQ1N2BdLFtgbGAsYDEzMjQ3YCxgMTk3MzdgXSxbYGxgLGAxMDUzMmAsYDE0OTM1YF0sW2BsYCxgODQ4NWAsYDIxNjAwYF0sW2BsYCxgNzcxNWAsYDE1NjI3YF0sW2BsYCxgNDc2MmAsYDE3NjE3YF0sW2BsYCxgNTY2N2AsYDEzOTM3YF0sW2BsYCxgMTM1YCxgMTQ1ODdgXSxbYGxgLGAzNzIyYCxgMTE3NzVgXSxbYGxgLGAwYCxgODYxNWBdLFtgbGAsYDQ2MjdgLGA3NjE3YF0sW2BsYCxgMzcwYCxgMjI5NWBdLFtgbGAsYDczMTJgLGA2MzIwYF0sW2BsYCxgODM1MmAsYDIyOTVgXSxbYGNgXV19XX0saXJyZWd1bGFyc2VhbDI6e2FkajpbXSxnZDpbW2B4MmAsYCovIHcgOTcyMiAyMTYwMGBdLFtgeDVgLGAqLyB3IDUzNzIgMjE2MDBgXSxbYHgxNmAsYCovIHcgMTE2MTIgMjE2MDBgXSxbYHgxOWAsYCovIHcgMTQ2NDAgMjE2MDBgXSxbYHkyYCxgKi8gaCAxODg3IDIxNjAwYF0sW2B5M2AsYCovIGggNjM4MiAyMTYwMGBdLFtgeThgLGAqLyBoIDEyODc3IDIxNjAwYF0sW2B5MTRgLGAqLyBoIDE5NzEyIDIxNjAwYF0sW2B5MTZgLGAqLyBoIDE4ODQyIDIxNjAwYF0sW2B5MTdgLGAqLyBoIDE1OTM1IDIxNjAwYF0sW2B5MjRgLGAqLyBoIDY2NDUgMjE2MDBgXV0scGF0aHM6W3t3OjIxNjAwLGg6MjE2MDAsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGAxMTQ2MmAsYDQzNDJgXSxbYGxgLGAxNDc5MGAsYDBgXSxbYGxgLGAxNDUyNWAsYDU3NzdgXSxbYGxgLGAxODAwN2AsYDMxNzJgXSxbYGxgLGAxNjM4MGAsYDY1MzJgXSxbYGxgLGAyMTYwMGAsYDY2NDVgXSxbYGxgLGAxNjk4NWAsYDk0MDJgXSxbYGxgLGAxODI3MGAsYDExMjkwYF0sW2BsYCxgMTYzODBgLGAxMjMxMGBdLFtgbGAsYDE4ODc3YCxgMTU2MzJgXSxbYGxgLGAxNDY0MGAsYDE0MzUwYF0sW2BsYCxgMTQ5NDJgLGAxNzM3MGBdLFtgbGAsYDEyMTgwYCxgMTU5MzVgXSxbYGxgLGAxMTYxMmAsYDE4ODQyYF0sW2BsYCxgOTg3MmAsYDE3MzcwYF0sW2BsYCxgODcwMGAsYDE5NzEyYF0sW2BsYCxgNzUyN2AsYDE4MTI1YF0sW2BsYCxgNDkxN2AsYDIxNjAwYF0sW2BsYCxgNDgwNWAsYDE4MjQwYF0sW2BsYCxgMTI4NWAsYDE3ODI1YF0sW2BsYCxgMzMzMGAsYDE1MzcwYF0sW2BsYCxgMGAsYDEyODc3YF0sW2BsYCxgMzkzNWAsYDExNTkyYF0sW2BsYCxgMTE3MmAsYDgyNzBgXSxbYGxgLGA1MzcyYCxgNzgxN2BdLFtgbGAsYDQ1MDJgLGAzNjI1YF0sW2BsYCxgODU1MGAsYDYzODJgXSxbYGxgLGA5NzIyYCxgMTg4N2BdLFtgY2BdXX1dfSxsZWZ0YXJyb3c6e2FkajpbW2BhZGoxYCxgdmFsIDUwMDAwYF0sW2BhZGoyYCxgdmFsIDUwMDAwYF1dLGdkOltbYG1heEFkajJgLGAqLyAxMDAwMDAgdyBzc2BdLFtgYTFgLGBwaW4gMCBhZGoxIDEwMDAwMGBdLFtgYTJgLGBwaW4gMCBhZGoyIG1heEFkajJgXSxbYGR4MmAsYCovIHNzIGEyIDEwMDAwMGBdLFtgeDJgLGArLSBsIGR4MiAwYF0sW2BkeTFgLGAqLyBoIGExIDIwMDAwMGBdLFtgeTFgLGArLSB2YyAwIGR5MWBdLFtgeTJgLGArLSB2YyBkeTEgMGBdLFtgZHgxYCxgKi8geTEgZHgyIGhkMmBdLFtgeDFgLGArLSB4MiAgMCBkeDFgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHZjYF0sW2BsYCxgeDJgLGB0YF0sW2BsYCxgeDJgLGB5MWBdLFtgbGAsYHJgLGB5MWBdLFtgbGAsYHJgLGB5MmBdLFtgbGAsYHgyYCxgeTJgXSxbYGxgLGB4MmAsYGJgXSxbYGNgXV19XX0sbGVmdGFycm93Y2FsbG91dDp7YWRqOltbYGFkajFgLGB2YWwgMjUwMDBgXSxbYGFkajJgLGB2YWwgMjUwMDBgXSxbYGFkajNgLGB2YWwgMjUwMDBgXSxbYGFkajRgLGB2YWwgNjQ5NzdgXV0sZ2Q6W1tgbWF4QWRqMmAsYCovIDUwMDAwIGggc3NgXSxbYGEyYCxgcGluIDAgYWRqMiBtYXhBZGoyYF0sW2BtYXhBZGoxYCxgKi8gYTIgMiAxYF0sW2BhMWAsYHBpbiAwIGFkajEgbWF4QWRqMWBdLFtgbWF4QWRqM2AsYCovIDEwMDAwMCB3IHNzYF0sW2BhM2AsYHBpbiAwIGFkajMgbWF4QWRqM2BdLFtgcTJgLGAqLyBhMyBzcyB3YF0sW2BtYXhBZGo0YCxgKy0gMTAwMDAwIDAgcTJgXSxbYGE0YCxgcGluIDAgYWRqNCBtYXhBZGo0YF0sW2BkeTFgLGAqLyBzcyBhMiAxMDAwMDBgXSxbYGR5MmAsYCovIHNzIGExIDIwMDAwMGBdLFtgeTFgLGArLSB2YyAwIGR5MWBdLFtgeTJgLGArLSB2YyAwIGR5MmBdLFtgeTNgLGArLSB2YyBkeTIgMGBdLFtgeTRgLGArLSB2YyBkeTEgMGBdLFtgeDFgLGAqLyBzcyBhMyAxMDAwMDBgXSxbYGR4MmAsYCovIHcgYTQgMTAwMDAwYF0sW2B4MmAsYCstIHIgMCBkeDJgXSxbYHgzYCxgKy8geDIgciAyYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB2Y2BdLFtgbGAsYHgxYCxgeTFgXSxbYGxgLGB4MWAsYHkyYF0sW2BsYCxgeDJgLGB5MmBdLFtgbGAsYHgyYCxgdGBdLFtgbGAsYHJgLGB0YF0sW2BsYCxgcmAsYGJgXSxbYGxgLGB4MmAsYGJgXSxbYGxgLGB4MmAsYHkzYF0sW2BsYCxgeDFgLGB5M2BdLFtgbGAsYHgxYCxgeTRgXSxbYGNgXV19XX0sbGVmdGJyYWNlOnthZGo6W1tgYWRqMWAsYHZhbCA4MzMzYF0sW2BhZGoyYCxgdmFsIDUwMDAwYF1dLGdkOltbYGEyYCxgcGluIDAgYWRqMiAxMDAwMDBgXSxbYHExYCxgKy0gMTAwMDAwIDAgYTJgXSxbYHEyYCxgbWluIHExIGEyYF0sW2BxM2AsYCovIHEyIDEgMmBdLFtgbWF4QWRqMWAsYCovIHEzIGggc3NgXSxbYGExYCxgcGluIDAgYWRqMSBtYXhBZGoxYF0sW2B5MWAsYCovIHNzIGExIDEwMDAwMGBdLFtgeTNgLGAqLyBoIGEyIDEwMDAwMGBdLFtgeTRgLGArLSB5MyB5MSAwYF0sW2BkeDFgLGBjb3Mgd2QyIDI3MDAwMDBgXSxbYGR5MWAsYHNpbiB5MSAyNzAwMDAwYF0sW2BpbGAsYCstIHIgMCBkeDFgXSxbYGl0YCxgKy0geTEgMCBkeTFgXSxbYGliYCxgKy0gYiBkeTEgeTFgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgcmAsYGJgXSxbYGFgLGB3ZDJgLGB5MWAsYGNkNGAsYGNkNGBdLFtgbGAsYGhjYCxgeTRgXSxbYGFgLGB3ZDJgLGB5MWAsYDBgLGAtNTQwMDAwMGBdLFtgYWAsYHdkMmAsYHkxYCxgY2Q0YCxgLTU0MDAwMDBgXSxbYGxgLGBoY2AsYHkxYF0sW2BhYCxgd2QyYCxgeTFgLGBjZDJgLGBjZDRgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGByYCxgYmBdLFtgYWAsYHdkMmAsYHkxYCxgY2Q0YCxgY2Q0YF0sW2BsYCxgaGNgLGB5NGBdLFtgYWAsYHdkMmAsYHkxYCxgMGAsYC01NDAwMDAwYF0sW2BhYCxgd2QyYCxgeTFgLGBjZDRgLGAtNTQwMDAwMGBdLFtgbGAsYGhjYCxgeTFgXSxbYGFgLGB3ZDJgLGB5MWAsYGNkMmAsYGNkNGBdXX1dfSxsZWZ0YnJhY2tldDp7YWRqOltbYGFkamAsYHZhbCA4MzMzYF1dLGdkOltbYG1heEFkamAsYCovIDUwMDAwIGggc3NgXSxbYGFgLGBwaW4gMCBhZGogbWF4QWRqYF0sW2B5MWAsYCovIHNzIGEgMTAwMDAwYF0sW2B5MmAsYCstIGIgMCB5MWBdLFtgZHgxYCxgY29zIHcgMjcwMDAwMGBdLFtgZHkxYCxgc2luIHkxIDI3MDAwMDBgXSxbYGlsYCxgKy0gciAwIGR4MWBdLFtgaXRgLGArLSB5MSAwIGR5MWBdLFtgaWJgLGArLSBiIGR5MSB5MWBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGByYCxgYmBdLFtgYWAsYHdgLGB5MWAsYGNkNGAsYGNkNGBdLFtgbGAsYGxgLGB5MWBdLFtgYWAsYHdgLGB5MWAsYGNkMmAsYGNkNGBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYHJgLGBiYF0sW2BhYCxgd2AsYHkxYCxgY2Q0YCxgY2Q0YF0sW2BsYCxgbGAsYHkxYF0sW2BhYCxgd2AsYHkxYCxgY2QyYCxgY2Q0YF1dfV19LGxlZnRjaXJjdWxhcmFycm93OnthZGo6W1tgYWRqMWAsYHZhbCAxMjUwMGBdLFtgYWRqMmAsYHZhbCAtMTE0MjMxOWBdLFtgYWRqM2AsYHZhbCAxMTQyMzE5YF0sW2BhZGo0YCxgdmFsIDEwODAwMDAwYF0sW2BhZGo1YCxgdmFsIDEyNTAwYF1dLGdkOltbYGE1YCxgcGluIDAgYWRqNSAyNTAwMGBdLFtgbWF4QWRqMWAsYCovIGE1IDIgMWBdLFtgYTFgLGBwaW4gMCBhZGoxIG1heEFkajFgXSxbYGVuQW5nYCxgcGluIDEgYWRqMyAyMTU5OTk5OWBdLFtgc3RBbmdgLGBwaW4gMCBhZGo0IDIxNTk5OTk5YF0sW2B0aGAsYCovIHNzIGExIDEwMDAwMGBdLFtgdGhoYCxgKi8gc3MgYTUgMTAwMDAwYF0sW2B0aDJgLGAqLyB0aCAxIDJgXSxbYHJ3MWAsYCstIHdkMiB0aDIgdGhoYF0sW2ByaDFgLGArLSBoZDIgdGgyIHRoaGBdLFtgcncyYCxgKy0gcncxIDAgdGhgXSxbYHJoMmAsYCstIHJoMSAwIHRoYF0sW2BydzNgLGArLSBydzIgdGgyIDBgXSxbYHJoM2AsYCstIHJoMiB0aDIgMGBdLFtgd3RIYCxgc2luIHJ3MyBlbkFuZ2BdLFtgaHRIYCxgY29zIHJoMyBlbkFuZ2BdLFtgZHhIYCxgY2F0MiBydzMgaHRIIHd0SGBdLFtgZHlIYCxgc2F0MiByaDMgaHRIIHd0SGBdLFtgeEhgLGArLSBoYyBkeEggMGBdLFtgeUhgLGArLSB2YyBkeUggMGBdLFtgcklgLGBtaW4gcncyIHJoMmBdLFtgdTFgLGAqLyBkeEggZHhIIDFgXSxbYHUyYCxgKi8gZHlIIGR5SCAxYF0sW2B1M2AsYCovIHJJIHJJIDFgXSxbYHU0YCxgKy0gdTEgMCB1M2BdLFtgdTVgLGArLSB1MiAwIHUzYF0sW2B1NmAsYCovIHU0IHU1IHUxYF0sW2B1N2AsYCovIHU2IDEgdTJgXSxbYHU4YCxgKy0gMSAwIHU3YF0sW2B1OWAsYHNxcnQgdThgXSxbYHUxMGAsYCovIHU0IDEgZHhIYF0sW2B1MTFgLGAqLyB1MTAgMSBkeUhgXSxbYHUxMmAsYCsvIDEgdTkgdTExYF0sW2B1MTNgLGBhdDIgMSB1MTJgXSxbYHUxNGAsYCstIHUxMyAyMTYwMDAwMCAwYF0sW2B1MTVgLGA/OiB1MTMgdTEzIHUxNGBdLFtgdTE2YCxgKy0gdTE1IDAgZW5BbmdgXSxbYHUxN2AsYCstIHUxNiAyMTYwMDAwMCAwYF0sW2B1MThgLGA/OiB1MTYgdTE2IHUxN2BdLFtgdTE5YCxgKy0gdTE4IDAgY2QyYF0sW2B1MjBgLGArLSB1MTggMCAyMTYwMDAwMGBdLFtgdTIxYCxgPzogdTE5IHUyMCB1MThgXSxbYHUyMmAsYGFicyB1MjFgXSxbYG1pbkFuZ2AsYCovIHUyMiAtMSAxYF0sW2B1MjNgLGBhYnMgYWRqMmBdLFtgYTJgLGAqLyB1MjMgLTEgMWBdLFtgYUFuZ2AsYHBpbiBtaW5BbmcgYTIgMGBdLFtgcHRBbmdgLGArLSBlbkFuZyBhQW5nIDBgXSxbYHd0QWAsYHNpbiBydzMgcHRBbmdgXSxbYGh0QWAsYGNvcyByaDMgcHRBbmdgXSxbYGR4QWAsYGNhdDIgcnczIGh0QSB3dEFgXSxbYGR5QWAsYHNhdDIgcmgzIGh0QSB3dEFgXSxbYHhBYCxgKy0gaGMgZHhBIDBgXSxbYHlBYCxgKy0gdmMgZHlBIDBgXSxbYHd0RWAsYHNpbiBydzEgc3RBbmdgXSxbYGh0RWAsYGNvcyByaDEgc3RBbmdgXSxbYGR4RWAsYGNhdDIgcncxIGh0RSB3dEVgXSxbYGR5RWAsYHNhdDIgcmgxIGh0RSB3dEVgXSxbYHhFYCxgKy0gaGMgZHhFIDBgXSxbYHlFYCxgKy0gdmMgZHlFIDBgXSxbYHd0RGAsYHNpbiBydzIgc3RBbmdgXSxbYGh0RGAsYGNvcyByaDIgc3RBbmdgXSxbYGR4RGAsYGNhdDIgcncyIGh0RCB3dERgXSxbYGR5RGAsYHNhdDIgcmgyIGh0RCB3dERgXSxbYHhEYCxgKy0gaGMgZHhEIDBgXSxbYHlEYCxgKy0gdmMgZHlEIDBgXSxbYGR4R2AsYGNvcyB0aGggcHRBbmdgXSxbYGR5R2AsYHNpbiB0aGggcHRBbmdgXSxbYHhHYCxgKy0geEggZHhHIDBgXSxbYHlHYCxgKy0geUggZHlHIDBgXSxbYGR4QmAsYGNvcyB0aGggcHRBbmdgXSxbYGR5QmAsYHNpbiB0aGggcHRBbmdgXSxbYHhCYCxgKy0geEggMCBkeEIgMGBdLFtgeUJgLGArLSB5SCAwIGR5QiAwYF0sW2BzeDFgLGArLSB4QiAwIGhjYF0sW2BzeTFgLGArLSB5QiAwIHZjYF0sW2BzeDJgLGArLSB4RyAwIGhjYF0sW2BzeTJgLGArLSB5RyAwIHZjYF0sW2ByT2AsYG1pbiBydzEgcmgxYF0sW2B4MU9gLGAqLyBzeDEgck8gcncxYF0sW2B5MU9gLGAqLyBzeTEgck8gcmgxYF0sW2B4Mk9gLGAqLyBzeDIgck8gcncxYF0sW2B5Mk9gLGAqLyBzeTIgck8gcmgxYF0sW2BkeE9gLGArLSB4Mk8gMCB4MU9gXSxbYGR5T2AsYCstIHkyTyAwIHkxT2BdLFtgZE9gLGBtb2QgZHhPIGR5TyAwYF0sW2BxMWAsYCovIHgxTyB5Mk8gMWBdLFtgcTJgLGAqLyB4Mk8geTFPIDFgXSxbYERPYCxgKy0gcTEgMCBxMmBdLFtgcTNgLGAqLyByTyByTyAxYF0sW2BxNGAsYCovIGRPIGRPIDFgXSxbYHE1YCxgKi8gcTMgcTQgMWBdLFtgcTZgLGAqLyBETyBETyAxYF0sW2BxN2AsYCstIHE1IDAgcTZgXSxbYHE4YCxgbWF4IHE3IDBgXSxbYHNkZWxPYCxgc3FydCBxOGBdLFtgbmR5T2AsYCovIGR5TyAtMSAxYF0sW2BzZHlPYCxgPzogbmR5TyAtMSAxYF0sW2BxOWAsYCovIHNkeU8gZHhPIDFgXSxbYHExMGAsYCovIHE5IHNkZWxPIDFgXSxbYHExMWAsYCovIERPIGR5TyAxYF0sW2BkeEYxYCxgKy8gcTExIHExMCBxNGBdLFtgcTEyYCxgKy0gcTExIDAgcTEwYF0sW2BkeEYyYCxgKi8gcTEyIDEgcTRgXSxbYGFkeU9gLGBhYnMgZHlPYF0sW2BxMTNgLGAqLyBhZHlPIHNkZWxPIDFgXSxbYHExNGAsYCovIERPIGR4TyAtMWBdLFtgZHlGMWAsYCsvIHExNCBxMTMgcTRgXSxbYHExNWAsYCstIHExNCAwIHExM2BdLFtgZHlGMmAsYCovIHExNSAxIHE0YF0sW2BxMTZgLGArLSB4Mk8gMCBkeEYxYF0sW2BxMTdgLGArLSB4Mk8gMCBkeEYyYF0sW2BxMThgLGArLSB5Mk8gMCBkeUYxYF0sW2BxMTlgLGArLSB5Mk8gMCBkeUYyYF0sW2BxMjBgLGBtb2QgcTE2IHExOCAwYF0sW2BxMjFgLGBtb2QgcTE3IHExOSAwYF0sW2BxMjJgLGArLSBxMjEgMCBxMjBgXSxbYGR4RmAsYD86IHEyMiBkeEYxIGR4RjJgXSxbYGR5RmAsYD86IHEyMiBkeUYxIGR5RjJgXSxbYHNkeEZgLGAqLyBkeEYgcncxIHJPYF0sW2BzZHlGYCxgKi8gZHlGIHJoMSByT2BdLFtgeEZgLGArLSBoYyBzZHhGIDBgXSxbYHlGYCxgKy0gdmMgc2R5RiAwYF0sW2B4MUlgLGAqLyBzeDEgckkgcncyYF0sW2B5MUlgLGAqLyBzeTEgckkgcmgyYF0sW2B4MklgLGAqLyBzeDIgckkgcncyYF0sW2B5MklgLGAqLyBzeTIgckkgcmgyYF0sW2BkeElgLGArLSB4MkkgMCB4MUlgXSxbYGR5SWAsYCstIHkySSAwIHkxSWBdLFtgZElgLGBtb2QgZHhJIGR5SSAwYF0sW2B2MWAsYCovIHgxSSB5MkkgMWBdLFtgdjJgLGAqLyB4MkkgeTFJIDFgXSxbYERJYCxgKy0gdjEgMCB2MmBdLFtgdjNgLGAqLyBySSBySSAxYF0sW2B2NGAsYCovIGRJIGRJIDFgXSxbYHY1YCxgKi8gdjMgdjQgMWBdLFtgdjZgLGAqLyBESSBESSAxYF0sW2B2N2AsYCstIHY1IDAgdjZgXSxbYHY4YCxgbWF4IHY3IDBgXSxbYHNkZWxJYCxgc3FydCB2OGBdLFtgdjlgLGAqLyBzZHlPIGR4SSAxYF0sW2B2MTBgLGAqLyB2OSBzZGVsSSAxYF0sW2B2MTFgLGAqLyBESSBkeUkgMWBdLFtgZHhDMWAsYCsvIHYxMSB2MTAgdjRgXSxbYHYxMmAsYCstIHYxMSAwIHYxMGBdLFtgZHhDMmAsYCovIHYxMiAxIHY0YF0sW2BhZHlJYCxgYWJzIGR5SWBdLFtgdjEzYCxgKi8gYWR5SSBzZGVsSSAxYF0sW2B2MTRgLGAqLyBESSBkeEkgLTFgXSxbYGR5QzFgLGArLyB2MTQgdjEzIHY0YF0sW2B2MTVgLGArLSB2MTQgMCB2MTNgXSxbYGR5QzJgLGAqLyB2MTUgMSB2NGBdLFtgdjE2YCxgKy0geDFJIDAgZHhDMWBdLFtgdjE3YCxgKy0geDFJIDAgZHhDMmBdLFtgdjE4YCxgKy0geTFJIDAgZHlDMWBdLFtgdjE5YCxgKy0geTFJIDAgZHlDMmBdLFtgdjIwYCxgbW9kIHYxNiB2MTggMGBdLFtgdjIxYCxgbW9kIHYxNyB2MTkgMGBdLFtgdjIyYCxgKy0gdjIxIDAgdjIwYF0sW2BkeENgLGA/OiB2MjIgZHhDMSBkeEMyYF0sW2BkeUNgLGA/OiB2MjIgZHlDMSBkeUMyYF0sW2BzZHhDYCxgKi8gZHhDIHJ3MiBySWBdLFtgc2R5Q2AsYCovIGR5QyByaDIgcklgXSxbYHhDYCxgKy0gaGMgc2R4QyAwYF0sW2B5Q2AsYCstIHZjIHNkeUMgMGBdLFtgaXN0MGAsYGF0MiBzZHhDIHNkeUNgXSxbYGlzdDFgLGArLSBpc3QwIDIxNjAwMDAwIDBgXSxbYGlzdEFuZzBgLGA/OiBpc3QwIGlzdDAgaXN0MWBdLFtgaXN3MWAsYCstIHN0QW5nIDAgaXN0QW5nMGBdLFtgaXN3MmAsYCstIGlzdzEgMjE2MDAwMDAgMGBdLFtgaXN3QW5nMGAsYD86IGlzdzEgaXN3MSBpc3cyYF0sW2Bpc3RBbmdgLGArLSBpc3RBbmcwIGlzd0FuZzAgMGBdLFtgaXN3QW5nYCxgKy0gMCAwIGlzd0FuZzBgXSxbYHAxYCxgKy0geEYgMCB4Q2BdLFtgcDJgLGArLSB5RiAwIHlDYF0sW2BwM2AsYG1vZCBwMSBwMiAwYF0sW2BwNGAsYCovIHAzIDEgMmBdLFtgcDVgLGArLSBwNCAwIHRoaGBdLFtgeEdwYCxgPzogcDUgeEYgeEdgXSxbYHlHcGAsYD86IHA1IHlGIHlHYF0sW2B4QnBgLGA/OiBwNSB4QyB4QmBdLFtgeUJwYCxgPzogcDUgeUMgeUJgXSxbYGVuMGAsYGF0MiBzZHhGIHNkeUZgXSxbYGVuMWAsYCstIGVuMCAyMTYwMDAwMCAwYF0sW2BlbjJgLGA/OiBlbjAgZW4wIGVuMWBdLFtgc3cwYCxgKy0gZW4yIDAgc3RBbmdgXSxbYHN3MWAsYCstIHN3MCAwIDIxNjAwMDAwYF0sW2Bzd0FuZ2AsYD86IHN3MCBzdzEgc3cwYF0sW2BzdEFuZzBgLGArLSBzdEFuZyBzd0FuZyAwYF0sW2Bzd0FuZzBgLGArLSAwIDAgc3dBbmdgXSxbYHd0SWAsYHNpbiBydzMgc3RBbmdgXSxbYGh0SWAsYGNvcyByaDMgc3RBbmdgXSxbYGR4SWAsYGNhdDIgcnczIGh0SSB3dElgXSxbYGR5SWAsYHNhdDIgcmgzIGh0SSB3dElgXSxbYHhJYCxgKy0gaGMgZHhJIDBgXSxbYHlJYCxgKy0gdmMgZHlJIDBgXSxbYGFJYCxgKy0gc3RBbmcgY2Q0IDBgXSxbYGFBYCxgKy0gcHRBbmcgMCBjZDRgXSxbYGFCYCxgKy0gcHRBbmcgY2QyIDBgXSxbYGlkeGAsYGNvcyBydzEgMjcwMDAwMGBdLFtgaWR5YCxgc2luIHJoMSAyNzAwMDAwYF0sW2BpbGAsYCstIGhjIDAgaWR4YF0sW2BpcmAsYCstIGhjIGlkeCAwYF0sW2BpdGAsYCstIHZjIDAgaWR5YF0sW2BpYmAsYCstIHZjIGlkeSAwYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYHhFYCxgeUVgXSxbYGxgLGB4RGAsYHlEYF0sW2BhYCxgcncyYCxgcmgyYCxgaXN0QW5nYCxgaXN3QW5nYF0sW2BsYCxgeEJwYCxgeUJwYF0sW2BsYCxgeEFgLGB5QWBdLFtgbGAsYHhHcGAsYHlHcGBdLFtgbGAsYHhGYCxgeUZgXSxbYGFgLGBydzFgLGByaDFgLGBzdEFuZzBgLGBzd0FuZzBgXSxbYGNgXV19XX0sbGVmdHJpZ2h0YXJyb3c6e2FkajpbW2BhZGoxYCxgdmFsIDUwMDAwYF0sW2BhZGoyYCxgdmFsIDUwMDAwYF1dLGdkOltbYG1heEFkajJgLGAqLyA1MDAwMCB3IHNzYF0sW2BhMWAsYHBpbiAwIGFkajEgMTAwMDAwYF0sW2BhMmAsYHBpbiAwIGFkajIgbWF4QWRqMmBdLFtgeDJgLGAqLyBzcyBhMiAxMDAwMDBgXSxbYHgzYCxgKy0gciAwIHgyYF0sW2BkeWAsYCovIGggYTEgMjAwMDAwYF0sW2B5MWAsYCstIHZjIDAgZHlgXSxbYHkyYCxgKy0gdmMgZHkgMGBdLFtgZHgxYCxgKi8geTEgeDIgaGQyYF0sW2B4MWAsYCstIHgyIDAgZHgxYF0sW2B4NGAsYCstIHgzIGR4MSAwYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB2Y2BdLFtgbGAsYHgyYCxgdGBdLFtgbGAsYHgyYCxgeTFgXSxbYGxgLGB4M2AsYHkxYF0sW2BsYCxgeDNgLGB0YF0sW2BsYCxgcmAsYHZjYF0sW2BsYCxgeDNgLGBiYF0sW2BsYCxgeDNgLGB5MmBdLFtgbGAsYHgyYCxgeTJgXSxbYGxgLGB4MmAsYGJgXSxbYGNgXV19XX0sbGVmdHJpZ2h0YXJyb3djYWxsb3V0OnthZGo6W1tgYWRqMWAsYHZhbCAyNTAwMGBdLFtgYWRqMmAsYHZhbCAyNTAwMGBdLFtgYWRqM2AsYHZhbCAyNTAwMGBdLFtgYWRqNGAsYHZhbCA0ODEyM2BdXSxnZDpbW2BtYXhBZGoyYCxgKi8gNTAwMDAgaCBzc2BdLFtgYTJgLGBwaW4gMCBhZGoyIG1heEFkajJgXSxbYG1heEFkajFgLGAqLyBhMiAyIDFgXSxbYGExYCxgcGluIDAgYWRqMSBtYXhBZGoxYF0sW2BtYXhBZGozYCxgKi8gNTAwMDAgdyBzc2BdLFtgYTNgLGBwaW4gMCBhZGozIG1heEFkajNgXSxbYHEyYCxgKi8gYTMgc3Mgd2QyYF0sW2BtYXhBZGo0YCxgKy0gMTAwMDAwIDAgcTJgXSxbYGE0YCxgcGluIDAgYWRqNCBtYXhBZGo0YF0sW2BkeTFgLGAqLyBzcyBhMiAxMDAwMDBgXSxbYGR5MmAsYCovIHNzIGExIDIwMDAwMGBdLFtgeTFgLGArLSB2YyAwIGR5MWBdLFtgeTJgLGArLSB2YyAwIGR5MmBdLFtgeTNgLGArLSB2YyBkeTIgMGBdLFtgeTRgLGArLSB2YyBkeTEgMGBdLFtgeDFgLGAqLyBzcyBhMyAxMDAwMDBgXSxbYHg0YCxgKy0gciAwIHgxYF0sW2BkeDJgLGAqLyB3IGE0IDIwMDAwMGBdLFtgeDJgLGArLSBoYyAwIGR4MmBdLFtgeDNgLGArLSBoYyBkeDIgMGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGBsYCxgdmNgXSxbYGxgLGB4MWAsYHkxYF0sW2BsYCxgeDFgLGB5MmBdLFtgbGAsYHgyYCxgeTJgXSxbYGxgLGB4MmAsYHRgXSxbYGxgLGB4M2AsYHRgXSxbYGxgLGB4M2AsYHkyYF0sW2BsYCxgeDRgLGB5MmBdLFtgbGAsYHg0YCxgeTFgXSxbYGxgLGByYCxgdmNgXSxbYGxgLGB4NGAsYHk0YF0sW2BsYCxgeDRgLGB5M2BdLFtgbGAsYHgzYCxgeTNgXSxbYGxgLGB4M2AsYGJgXSxbYGxgLGB4MmAsYGJgXSxbYGxgLGB4MmAsYHkzYF0sW2BsYCxgeDFgLGB5M2BdLFtgbGAsYHgxYCxgeTRgXSxbYGNgXV19XX0sbGVmdHJpZ2h0Y2lyY3VsYXJhcnJvdzp7YWRqOltbYGFkajFgLGB2YWwgMTI1MDBgXSxbYGFkajJgLGB2YWwgMTE0MjMxOWBdLFtgYWRqM2AsYHZhbCAyMDQ1NzY4MWBdLFtgYWRqNGAsYHZhbCAxMTk0MjMxOWBdLFtgYWRqNWAsYHZhbCAxMjUwMGBdXSxnZDpbW2BhNWAsYHBpbiAwIGFkajUgMjUwMDBgXSxbYG1heEFkajFgLGAqLyBhNSAyIDFgXSxbYGExYCxgcGluIDAgYWRqMSBtYXhBZGoxYF0sW2BlbkFuZ2AsYHBpbiAxIGFkajMgMjE1OTk5OTlgXSxbYHN0QW5nYCxgcGluIDAgYWRqNCAyMTU5OTk5OWBdLFtgdGhgLGAqLyBzcyBhMSAxMDAwMDBgXSxbYHRoaGAsYCovIHNzIGE1IDEwMDAwMGBdLFtgdGgyYCxgKi8gdGggMSAyYF0sW2BydzFgLGArLSB3ZDIgdGgyIHRoaGBdLFtgcmgxYCxgKy0gaGQyIHRoMiB0aGhgXSxbYHJ3MmAsYCstIHJ3MSAwIHRoYF0sW2ByaDJgLGArLSByaDEgMCB0aGBdLFtgcnczYCxgKy0gcncyIHRoMiAwYF0sW2ByaDNgLGArLSByaDIgdGgyIDBgXSxbYHd0SGAsYHNpbiBydzMgZW5BbmdgXSxbYGh0SGAsYGNvcyByaDMgZW5BbmdgXSxbYGR4SGAsYGNhdDIgcnczIGh0SCB3dEhgXSxbYGR5SGAsYHNhdDIgcmgzIGh0SCB3dEhgXSxbYHhIYCxgKy0gaGMgZHhIIDBgXSxbYHlIYCxgKy0gdmMgZHlIIDBgXSxbYHJJYCxgbWluIHJ3MiByaDJgXSxbYHUxYCxgKi8gZHhIIGR4SCAxYF0sW2B1MmAsYCovIGR5SCBkeUggMWBdLFtgdTNgLGAqLyBySSBySSAxYF0sW2B1NGAsYCstIHUxIDAgdTNgXSxbYHU1YCxgKy0gdTIgMCB1M2BdLFtgdTZgLGAqLyB1NCB1NSB1MWBdLFtgdTdgLGAqLyB1NiAxIHUyYF0sW2B1OGAsYCstIDEgMCB1N2BdLFtgdTlgLGBzcXJ0IHU4YF0sW2B1MTBgLGAqLyB1NCAxIGR4SGBdLFtgdTExYCxgKi8gdTEwIDEgZHlIYF0sW2B1MTJgLGArLyAxIHU5IHUxMWBdLFtgdTEzYCxgYXQyIDEgdTEyYF0sW2B1MTRgLGArLSB1MTMgMjE2MDAwMDAgMGBdLFtgdTE1YCxgPzogdTEzIHUxMyB1MTRgXSxbYHUxNmAsYCstIHUxNSAwIGVuQW5nYF0sW2B1MTdgLGArLSB1MTYgMjE2MDAwMDAgMGBdLFtgdTE4YCxgPzogdTE2IHUxNiB1MTdgXSxbYHUxOWAsYCstIHUxOCAwIGNkMmBdLFtgdTIwYCxgKy0gdTE4IDAgMjE2MDAwMDBgXSxbYHUyMWAsYD86IHUxOSB1MjAgdTE4YF0sW2BtYXhBbmdgLGBhYnMgdTIxYF0sW2BhQW5nYCxgcGluIDAgYWRqMiBtYXhBbmdgXSxbYHB0QW5nYCxgKy0gZW5BbmcgYUFuZyAwYF0sW2B3dEFgLGBzaW4gcnczIHB0QW5nYF0sW2BodEFgLGBjb3MgcmgzIHB0QW5nYF0sW2BkeEFgLGBjYXQyIHJ3MyBodEEgd3RBYF0sW2BkeUFgLGBzYXQyIHJoMyBodEEgd3RBYF0sW2B4QWAsYCstIGhjIGR4QSAwYF0sW2B5QWAsYCstIHZjIGR5QSAwYF0sW2BkeEdgLGBjb3MgdGhoIHB0QW5nYF0sW2BkeUdgLGBzaW4gdGhoIHB0QW5nYF0sW2B4R2AsYCstIHhIIGR4RyAwYF0sW2B5R2AsYCstIHlIIGR5RyAwYF0sW2BkeEJgLGBjb3MgdGhoIHB0QW5nYF0sW2BkeUJgLGBzaW4gdGhoIHB0QW5nYF0sW2B4QmAsYCstIHhIIDAgZHhCIDBgXSxbYHlCYCxgKy0geUggMCBkeUIgMGBdLFtgc3gxYCxgKy0geEIgMCBoY2BdLFtgc3kxYCxgKy0geUIgMCB2Y2BdLFtgc3gyYCxgKy0geEcgMCBoY2BdLFtgc3kyYCxgKy0geUcgMCB2Y2BdLFtgck9gLGBtaW4gcncxIHJoMWBdLFtgeDFPYCxgKi8gc3gxIHJPIHJ3MWBdLFtgeTFPYCxgKi8gc3kxIHJPIHJoMWBdLFtgeDJPYCxgKi8gc3gyIHJPIHJ3MWBdLFtgeTJPYCxgKi8gc3kyIHJPIHJoMWBdLFtgZHhPYCxgKy0geDJPIDAgeDFPYF0sW2BkeU9gLGArLSB5Mk8gMCB5MU9gXSxbYGRPYCxgbW9kIGR4TyBkeU8gMGBdLFtgcTFgLGAqLyB4MU8geTJPIDFgXSxbYHEyYCxgKi8geDJPIHkxTyAxYF0sW2BET2AsYCstIHExIDAgcTJgXSxbYHEzYCxgKi8gck8gck8gMWBdLFtgcTRgLGAqLyBkTyBkTyAxYF0sW2BxNWAsYCovIHEzIHE0IDFgXSxbYHE2YCxgKi8gRE8gRE8gMWBdLFtgcTdgLGArLSBxNSAwIHE2YF0sW2BxOGAsYG1heCBxNyAwYF0sW2BzZGVsT2AsYHNxcnQgcThgXSxbYG5keU9gLGAqLyBkeU8gLTEgMWBdLFtgc2R5T2AsYD86IG5keU8gLTEgMWBdLFtgcTlgLGAqLyBzZHlPIGR4TyAxYF0sW2BxMTBgLGAqLyBxOSBzZGVsTyAxYF0sW2BxMTFgLGAqLyBETyBkeU8gMWBdLFtgZHhGMWAsYCsvIHExMSBxMTAgcTRgXSxbYHExMmAsYCstIHExMSAwIHExMGBdLFtgZHhGMmAsYCovIHExMiAxIHE0YF0sW2BhZHlPYCxgYWJzIGR5T2BdLFtgcTEzYCxgKi8gYWR5TyBzZGVsTyAxYF0sW2BxMTRgLGAqLyBETyBkeE8gLTFgXSxbYGR5RjFgLGArLyBxMTQgcTEzIHE0YF0sW2BxMTVgLGArLSBxMTQgMCBxMTNgXSxbYGR5RjJgLGAqLyBxMTUgMSBxNGBdLFtgcTE2YCxgKy0geDJPIDAgZHhGMWBdLFtgcTE3YCxgKy0geDJPIDAgZHhGMmBdLFtgcTE4YCxgKy0geTJPIDAgZHlGMWBdLFtgcTE5YCxgKy0geTJPIDAgZHlGMmBdLFtgcTIwYCxgbW9kIHExNiBxMTggMGBdLFtgcTIxYCxgbW9kIHExNyBxMTkgMGBdLFtgcTIyYCxgKy0gcTIxIDAgcTIwYF0sW2BkeEZgLGA/OiBxMjIgZHhGMSBkeEYyYF0sW2BkeUZgLGA/OiBxMjIgZHlGMSBkeUYyYF0sW2BzZHhGYCxgKi8gZHhGIHJ3MSByT2BdLFtgc2R5RmAsYCovIGR5RiByaDEgck9gXSxbYHhGYCxgKy0gaGMgc2R4RiAwYF0sW2B5RmAsYCstIHZjIHNkeUYgMGBdLFtgeDFJYCxgKi8gc3gxIHJJIHJ3MmBdLFtgeTFJYCxgKi8gc3kxIHJJIHJoMmBdLFtgeDJJYCxgKi8gc3gyIHJJIHJ3MmBdLFtgeTJJYCxgKi8gc3kyIHJJIHJoMmBdLFtgZHhJYCxgKy0geDJJIDAgeDFJYF0sW2BkeUlgLGArLSB5MkkgMCB5MUlgXSxbYGRJYCxgbW9kIGR4SSBkeUkgMGBdLFtgdjFgLGAqLyB4MUkgeTJJIDFgXSxbYHYyYCxgKi8geDJJIHkxSSAxYF0sW2BESWAsYCstIHYxIDAgdjJgXSxbYHYzYCxgKi8gckkgckkgMWBdLFtgdjRgLGAqLyBkSSBkSSAxYF0sW2B2NWAsYCovIHYzIHY0IDFgXSxbYHY2YCxgKi8gREkgREkgMWBdLFtgdjdgLGArLSB2NSAwIHY2YF0sW2B2OGAsYG1heCB2NyAwYF0sW2BzZGVsSWAsYHNxcnQgdjhgXSxbYHY5YCxgKi8gc2R5TyBkeEkgMWBdLFtgdjEwYCxgKi8gdjkgc2RlbEkgMWBdLFtgdjExYCxgKi8gREkgZHlJIDFgXSxbYGR4QzFgLGArLyB2MTEgdjEwIHY0YF0sW2B2MTJgLGArLSB2MTEgMCB2MTBgXSxbYGR4QzJgLGAqLyB2MTIgMSB2NGBdLFtgYWR5SWAsYGFicyBkeUlgXSxbYHYxM2AsYCovIGFkeUkgc2RlbEkgMWBdLFtgdjE0YCxgKi8gREkgZHhJIC0xYF0sW2BkeUMxYCxgKy8gdjE0IHYxMyB2NGBdLFtgdjE1YCxgKy0gdjE0IDAgdjEzYF0sW2BkeUMyYCxgKi8gdjE1IDEgdjRgXSxbYHYxNmAsYCstIHgxSSAwIGR4QzFgXSxbYHYxN2AsYCstIHgxSSAwIGR4QzJgXSxbYHYxOGAsYCstIHkxSSAwIGR5QzFgXSxbYHYxOWAsYCstIHkxSSAwIGR5QzJgXSxbYHYyMGAsYG1vZCB2MTYgdjE4IDBgXSxbYHYyMWAsYG1vZCB2MTcgdjE5IDBgXSxbYHYyMmAsYCstIHYyMSAwIHYyMGBdLFtgZHhDYCxgPzogdjIyIGR4QzEgZHhDMmBdLFtgZHlDYCxgPzogdjIyIGR5QzEgZHlDMmBdLFtgc2R4Q2AsYCovIGR4QyBydzIgcklgXSxbYHNkeUNgLGAqLyBkeUMgcmgyIHJJYF0sW2B4Q2AsYCstIGhjIHNkeEMgMGBdLFtgeUNgLGArLSB2YyBzZHlDIDBgXSxbYHd0SWAsYHNpbiBydzMgc3RBbmdgXSxbYGh0SWAsYGNvcyByaDMgc3RBbmdgXSxbYGR4SWAsYGNhdDIgcnczIGh0SSB3dElgXSxbYGR5SWAsYHNhdDIgcmgzIGh0SSB3dElgXSxbYHhJYCxgKy0gaGMgZHhJIDBgXSxbYHlJYCxgKy0gdmMgZHlJIDBgXSxbYGxwdEFuZ2AsYCstIHN0QW5nIDAgYUFuZ2BdLFtgd3RMYCxgc2luIHJ3MyBscHRBbmdgXSxbYGh0TGAsYGNvcyByaDMgbHB0QW5nYF0sW2BkeExgLGBjYXQyIHJ3MyBodEwgd3RMYF0sW2BkeUxgLGBzYXQyIHJoMyBodEwgd3RMYF0sW2B4TGAsYCstIGhjIGR4TCAwYF0sW2B5TGAsYCstIHZjIGR5TCAwYF0sW2BkeEtgLGBjb3MgdGhoIGxwdEFuZ2BdLFtgZHlLYCxgc2luIHRoaCBscHRBbmdgXSxbYHhLYCxgKy0geEkgZHhLIDBgXSxbYHlLYCxgKy0geUkgZHlLIDBgXSxbYGR4SmAsYGNvcyB0aGggbHB0QW5nYF0sW2BkeUpgLGBzaW4gdGhoIGxwdEFuZ2BdLFtgeEpgLGArLSB4SSAwIGR4SiAwYF0sW2B5SmAsYCstIHlJIDAgZHlKIDBgXSxbYHAxYCxgKy0geEYgMCB4Q2BdLFtgcDJgLGArLSB5RiAwIHlDYF0sW2BwM2AsYG1vZCBwMSBwMiAwYF0sW2BwNGAsYCovIHAzIDEgMmBdLFtgcDVgLGArLSBwNCAwIHRoaGBdLFtgeEdwYCxgPzogcDUgeEYgeEdgXSxbYHlHcGAsYD86IHA1IHlGIHlHYF0sW2B4QnBgLGA/OiBwNSB4QyB4QmBdLFtgeUJwYCxgPzogcDUgeUMgeUJgXSxbYGVuMGAsYGF0MiBzZHhGIHNkeUZgXSxbYGVuMWAsYCstIGVuMCAyMTYwMDAwMCAwYF0sW2BlbjJgLGA/OiBlbjAgZW4wIGVuMWBdLFtgb2QwYCxgKy0gZW4yIDAgZW5BbmdgXSxbYG9kMWAsYCstIG9kMCAyMTYwMDAwMCAwYF0sW2BvZDJgLGA/OiBvZDAgb2QwIG9kMWBdLFtgc3QwYCxgKy0gc3RBbmcgMCBvZDJgXSxbYHN0MWAsYCstIHN0MCAyMTYwMDAwMCAwYF0sW2BzdDJgLGA/OiBzdDAgc3QwIHN0MWBdLFtgc3cwYCxgKy0gZW4yIDAgc3QyYF0sW2BzdzFgLGArLSBzdzAgMjE2MDAwMDAgMGBdLFtgc3dBbmdgLGA/OiBzdzAgc3cwIHN3MWBdLFtgaXN0MGAsYGF0MiBzZHhDIHNkeUNgXSxbYGlzdDFgLGArLSBpc3QwIDIxNjAwMDAwIDBgXSxbYGlzdEFuZ2AsYD86IGlzdDAgaXN0MCBpc3QxYF0sW2BpZDBgLGArLSBpc3RBbmcgMCBlbkFuZ2BdLFtgaWQxYCxgKy0gaWQwIDAgMjE2MDAwMDBgXSxbYGlkMmAsYD86IGlkMCBpZDEgaWQwYF0sW2BpZW4wYCxgKy0gc3RBbmcgMCBpZDJgXSxbYGllbjFgLGArLSBpZW4wIDAgMjE2MDAwMDBgXSxbYGllbjJgLGA/OiBpZW4xIGllbjEgaWVuMGBdLFtgaXN3MWAsYCstIGllbjIgMCBpc3RBbmdgXSxbYGlzdzJgLGArLSBpc3cxIDAgMjE2MDAwMDBgXSxbYGlzd0FuZ2AsYD86IGlzdzEgaXN3MiBpc3cxYF0sW2B3dEVgLGBzaW4gcncxIHN0MmBdLFtgaHRFYCxgY29zIHJoMSBzdDJgXSxbYGR4RWAsYGNhdDIgcncxIGh0RSB3dEVgXSxbYGR5RWAsYHNhdDIgcmgxIGh0RSB3dEVgXSxbYHhFYCxgKy0gaGMgZHhFIDBgXSxbYHlFYCxgKy0gdmMgZHlFIDBgXSxbYHd0RGAsYHNpbiBydzIgaWVuMmBdLFtgaHREYCxgY29zIHJoMiBpZW4yYF0sW2BkeERgLGBjYXQyIHJ3MiBodEQgd3REYF0sW2BkeURgLGBzYXQyIHJoMiBodEQgd3REYF0sW2B4RGAsYCstIGhjIGR4RCAwYF0sW2B5RGAsYCstIHZjIGR5RCAwYF0sW2B4S3BgLGA/OiBwNSB4RSB4S2BdLFtgeUtwYCxgPzogcDUgeUUgeUtgXSxbYHhKcGAsYD86IHA1IHhEIHhKYF0sW2B5SnBgLGA/OiBwNSB5RCB5SmBdLFtgYUxgLGArLSBscHRBbmcgMCBjZDRgXSxbYGFBYCxgKy0gcHRBbmcgY2Q0IDBgXSxbYGFCYCxgKy0gcHRBbmcgY2QyIDBgXSxbYGFKYCxgKy0gbHB0QW5nIGNkMiAwYF0sW2BpZHhgLGBjb3MgcncxIDI3MDAwMDBgXSxbYGlkeWAsYHNpbiByaDEgMjcwMDAwMGBdLFtgaWxgLGArLSBoYyAwIGlkeGBdLFtgaXJgLGArLSBoYyBpZHggMGBdLFtgaXRgLGArLSB2YyAwIGlkeWBdLFtgaWJgLGArLSB2YyBpZHkgMGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGB4TGAsYHlMYF0sW2BsYCxgeEtwYCxgeUtwYF0sW2BsYCxgeEVgLGB5RWBdLFtgYWAsYHJ3MWAsYHJoMWAsYHN0MmAsYHN3QW5nYF0sW2BsYCxgeEdwYCxgeUdwYF0sW2BsYCxgeEFgLGB5QWBdLFtgbGAsYHhCcGAsYHlCcGBdLFtgbGAsYHhDYCxgeUNgXSxbYGFgLGBydzJgLGByaDJgLGBpc3RBbmdgLGBpc3dBbmdgXSxbYGxgLGB4SnBgLGB5SnBgXSxbYGNgXV19XX0sbGVmdHJpZ2h0cmliYm9uOnthZGo6W1tgYWRqMWAsYHZhbCA1MDAwMGBdLFtgYWRqMmAsYHZhbCA1MDAwMGBdLFtgYWRqM2AsYHZhbCAxNjY2N2BdXSxnZDpbW2BhM2AsYHBpbiAwIGFkajMgMzMzMzNgXSxbYG1heEFkajFgLGArLSAxMDAwMDAgMCBhM2BdLFtgYTFgLGBwaW4gMCBhZGoxIG1heEFkajFgXSxbYHcxYCxgKy0gd2QyIDAgd2QzMmBdLFtgbWF4QWRqMmAsYCovIDEwMDAwMCB3MSBzc2BdLFtgYTJgLGBwaW4gMCBhZGoyIG1heEFkajJgXSxbYHgxYCxgKi8gc3MgYTIgMTAwMDAwYF0sW2B4NGAsYCstIHIgMCB4MWBdLFtgZHkxYCxgKi8gaCBhMSAyMDAwMDBgXSxbYGR5MmAsYCovIGggYTMgLTIwMDAwMGBdLFtgbHkxYCxgKy0gdmMgZHkyIGR5MWBdLFtgcnk0YCxgKy0gdmMgZHkxIGR5MmBdLFtgbHkyYCxgKy0gbHkxIGR5MSAwYF0sW2ByeTNgLGArLSBiIDAgbHkyYF0sW2BseTRgLGAqLyBseTIgMiAxYF0sW2ByeTFgLGArLSBiIDAgbHk0YF0sW2BseTNgLGArLSBseTQgMCBseTFgXSxbYHJ5MmAsYCstIGIgMCBseTNgXSxbYGhSYCxgKi8gYTMgc3MgNDAwMDAwYF0sW2B4MmAsYCstIGhjIDAgd2QzMmBdLFtgeDNgLGArLSBoYyB3ZDMyIDBgXSxbYHkxYCxgKy0gbHkxIGhSIDBgXSxbYHkyYCxgKy0gcnkyIDAgaFJgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgbGAsYGx5MmBdLFtgbGAsYHgxYCxgdGBdLFtgbGAsYHgxYCxgbHkxYF0sW2BsYCxgaGNgLGBseTFgXSxbYGFgLGB3ZDMyYCxgaFJgLGAzY2Q0YCxgY2QyYF0sW2BhYCxgd2QzMmAsYGhSYCxgM2NkNGAsYC0xMDgwMDAwMGBdLFtgbGAsYHg0YCxgcnkyYF0sW2BsYCxgeDRgLGByeTFgXSxbYGxgLGByYCxgcnkzYF0sW2BsYCxgeDRgLGBiYF0sW2BsYCxgeDRgLGByeTRgXSxbYGxgLGBoY2AsYHJ5NGBdLFtgYWAsYHdkMzJgLGBoUmAsYGNkNGAsYGNkNGBdLFtgbGAsYHgyYCxgbHkzYF0sW2BsYCxgeDFgLGBseTNgXSxbYGxgLGB4MWAsYGx5NGBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgZGFya2VuTGVzc2Asc3Ryb2tlOiExLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYHgzYCxgeTFgXSxbYGFgLGB3ZDMyYCxgaFJgLGAwYCxgY2Q0YF0sW2BhYCxgd2QzMmAsYGhSYCxgM2NkNGAsYC0xMDgwMDAwMGBdLFtgbGAsYHgzYCxgcnkyYF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBub25lYCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgbGAsYGx5MmBdLFtgbGAsYHgxYCxgdGBdLFtgbGAsYHgxYCxgbHkxYF0sW2BsYCxgaGNgLGBseTFgXSxbYGFgLGB3ZDMyYCxgaFJgLGAzY2Q0YCxgY2QyYF0sW2BhYCxgd2QzMmAsYGhSYCxgM2NkNGAsYC0xMDgwMDAwMGBdLFtgbGAsYHg0YCxgcnkyYF0sW2BsYCxgeDRgLGByeTFgXSxbYGxgLGByYCxgcnkzYF0sW2BsYCxgeDRgLGBiYF0sW2BsYCxgeDRgLGByeTRgXSxbYGxgLGBoY2AsYHJ5NGBdLFtgYWAsYHdkMzJgLGBoUmAsYGNkNGAsYGNkNGBdLFtgbGAsYHgyYCxgbHkzYF0sW2BsYCxgeDFgLGBseTNgXSxbYGxgLGB4MWAsYGx5NGBdLFtgY2BdLFtgbWAsYHgzYCxgeTFgXSxbYGxgLGB4M2AsYHJ5MmBdLFtgbWAsYHgyYCxgeTJgXSxbYGxgLGB4MmAsYGx5M2BdXX1dfSxsZWZ0cmlnaHR1cGFycm93OnthZGo6W1tgYWRqMWAsYHZhbCAyNTAwMGBdLFtgYWRqMmAsYHZhbCAyNTAwMGBdLFtgYWRqM2AsYHZhbCAyNTAwMGBdXSxnZDpbW2BhMmAsYHBpbiAwIGFkajIgNTAwMDBgXSxbYG1heEFkajFgLGAqLyBhMiAyIDFgXSxbYGExYCxgcGluIDAgYWRqMSBtYXhBZGoxYF0sW2BxMWAsYCstIDEwMDAwMCAwIG1heEFkajFgXSxbYG1heEFkajNgLGAqLyBxMSAxIDJgXSxbYGEzYCxgcGluIDAgYWRqMyBtYXhBZGozYF0sW2B4MWAsYCovIHNzIGEzIDEwMDAwMGBdLFtgZHgyYCxgKi8gc3MgYTIgMTAwMDAwYF0sW2B4MmAsYCstIGhjIDAgZHgyYF0sW2B4NWAsYCstIGhjIGR4MiAwYF0sW2BkeDNgLGAqLyBzcyBhMSAyMDAwMDBgXSxbYHgzYCxgKy0gaGMgMCBkeDNgXSxbYHg0YCxgKy0gaGMgZHgzIDBgXSxbYHg2YCxgKy0gciAwIHgxYF0sW2BkeTJgLGAqLyBzcyBhMiA1MDAwMGBdLFtgeTJgLGArLSBiIDAgZHkyYF0sW2B5NGAsYCstIGIgMCBkeDJgXSxbYHkzYCxgKy0geTQgMCBkeDNgXSxbYHk1YCxgKy0geTQgZHgzIDBgXSxbYGlsYCxgKi8gZHgzIHgxIGR4MmBdLFtgaXJgLGArLSByIDAgaWxgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHk0YF0sW2BsYCxgeDFgLGB5MmBdLFtgbGAsYHgxYCxgeTNgXSxbYGxgLGB4M2AsYHkzYF0sW2BsYCxgeDNgLGB4MWBdLFtgbGAsYHgyYCxgeDFgXSxbYGxgLGBoY2AsYHRgXSxbYGxgLGB4NWAsYHgxYF0sW2BsYCxgeDRgLGB4MWBdLFtgbGAsYHg0YCxgeTNgXSxbYGxgLGB4NmAsYHkzYF0sW2BsYCxgeDZgLGB5MmBdLFtgbGAsYHJgLGB5NGBdLFtgbGAsYHg2YCxgYmBdLFtgbGAsYHg2YCxgeTVgXSxbYGxgLGB4MWAsYHk1YF0sW2BsYCxgeDFgLGBiYF0sW2BjYF1dfV19LGxlZnR1cGFycm93OnthZGo6W1tgYWRqMWAsYHZhbCAyNTAwMGBdLFtgYWRqMmAsYHZhbCAyNTAwMGBdLFtgYWRqM2AsYHZhbCAyNTAwMGBdXSxnZDpbW2BhMmAsYHBpbiAwIGFkajIgNTAwMDBgXSxbYG1heEFkajFgLGAqLyBhMiAyIDFgXSxbYGExYCxgcGluIDAgYWRqMSBtYXhBZGoxYF0sW2BtYXhBZGozYCxgKy0gMTAwMDAwIDAgbWF4QWRqMWBdLFtgYTNgLGBwaW4gMCBhZGozIG1heEFkajNgXSxbYHgxYCxgKi8gc3MgYTMgMTAwMDAwYF0sW2BkeDJgLGAqLyBzcyBhMiA1MDAwMGBdLFtgeDJgLGArLSByIDAgZHgyYF0sW2B5MmAsYCstIGIgMCBkeDJgXSxbYGR4NGAsYCovIHNzIGEyIDEwMDAwMGBdLFtgeDRgLGArLSByIDAgZHg0YF0sW2B5NGAsYCstIGIgMCBkeDRgXSxbYGR4M2AsYCovIHNzIGExIDIwMDAwMGBdLFtgeDNgLGArLSB4NCAwIGR4M2BdLFtgeDVgLGArLSB4NCBkeDMgMGBdLFtgeTNgLGArLSB5NCAwIGR4M2BdLFtgeTVgLGArLSB5NCBkeDMgMGBdLFtgaWxgLGAqLyBkeDMgeDEgZHg0YF0sW2BjeDFgLGArLyB4MSB4NSAyYF0sW2BjeTFgLGArLyB4MSB5NSAyYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB5NGBdLFtgbGAsYHgxYCxgeTJgXSxbYGxgLGB4MWAsYHkzYF0sW2BsYCxgeDNgLGB5M2BdLFtgbGAsYHgzYCxgeDFgXSxbYGxgLGB4MmAsYHgxYF0sW2BsYCxgeDRgLGB0YF0sW2BsYCxgcmAsYHgxYF0sW2BsYCxgeDVgLGB4MWBdLFtgbGAsYHg1YCxgeTVgXSxbYGxgLGB4MWAsYHk1YF0sW2BsYCxgeDFgLGBiYF0sW2BjYF1dfV19LGxpZ2h0bmluZ2JvbHQ6e2FkajpbXSxnZDpbW2B4MWAsYCovIHcgNTAyMiAyMTYwMGBdLFtgeDNgLGAqLyB3IDg0NzIgMjE2MDBgXSxbYHg0YCxgKi8gdyA4NzU3IDIxNjAwYF0sW2B4NWAsYCovIHcgMTAwMTIgMjE2MDBgXSxbYHg4YCxgKi8gdyAxMjg2MCAyMTYwMGBdLFtgeDlgLGAqLyB3IDEzOTE3IDIxNjAwYF0sW2B4MTFgLGAqLyB3IDE2NTc3IDIxNjAwYF0sW2B5MWAsYCovIGggMzg5MCAyMTYwMGBdLFtgeTJgLGAqLyBoIDYwODAgMjE2MDBgXSxbYHk0YCxgKi8gaCA3NDM3IDIxNjAwYF0sW2B5NmAsYCovIGggOTcwNSAyMTYwMGBdLFtgeTdgLGAqLyBoIDEyMDA3IDIxNjAwYF0sW2B5MTBgLGAqLyBoIDE0Mjc3IDIxNjAwYF0sW2B5MTFgLGAqLyBoIDE0OTE1IDIxNjAwYF1dLHBhdGhzOlt7dzoyMTYwMCxoOjIxNjAwLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgODQ3MmAsYDBgXSxbYGxgLGAxMjg2MGAsYDYwODBgXSxbYGxgLGAxMTA1MGAsYDY3OTdgXSxbYGxgLGAxNjU3N2AsYDEyMDA3YF0sW2BsYCxgMTQ3NjdgLGAxMjg3N2BdLFtgbGAsYDIxNjAwYCxgMjE2MDBgXSxbYGxgLGAxMDAxMmAsYDE0OTE1YF0sW2BsYCxgMTIyMjJgLGAxMzk4N2BdLFtgbGAsYDUwMjJgLGA5NzA1YF0sW2BsYCxgNzYwMmAsYDgzODJgXSxbYGxgLGAwYCxgMzg5MGBdLFtgY2BdXX1dfSxsaW5lOnthZGo6W10sZ2Q6W10scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHRgXSxbYGxgLGByYCxgYmBdXX1dfSxsaW5laW52OnthZGo6W10sZ2Q6W10scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYGJgXSxbYGxgLGByYCxgdGBdXX1dfSxtYXRoZGl2aWRlOnthZGo6W1tgYWRqMWAsYHZhbCAyMzUyMGBdLFtgYWRqMmAsYHZhbCA1ODgwYF0sW2BhZGozYCxgdmFsIDExNzYwYF1dLGdkOltbYGExYCxgcGluIDEwMDAgYWRqMSAzNjc0NWBdLFtgbWExYCxgKy0gMCAwIGExYF0sW2BtYTNoYCxgKy8gNzM0OTAgbWExIDRgXSxbYG1hM3dgLGAqLyAzNjc0NSB3IGhgXSxbYG1heEFkajNgLGBtaW4gbWEzaCBtYTN3YF0sW2BhM2AsYHBpbiAxMDAwIGFkajMgbWF4QWRqM2BdLFtgbTRhM2AsYCovIC00IGEzIDFgXSxbYG1heEFkajJgLGArLSA3MzQ5MCBtNGEzIGExYF0sW2BhMmAsYHBpbiAwIGFkajIgbWF4QWRqMmBdLFtgZHkxYCxgKi8gaCBhMSAyMDAwMDBgXSxbYHlnYCxgKi8gaCBhMiAxMDAwMDBgXSxbYHJhZGAsYCovIGggYTMgMTAwMDAwYF0sW2BkeDFgLGAqLyB3IDczNDkwIDIwMDAwMGBdLFtgeTNgLGArLSB2YyAwIGR5MWBdLFtgeTRgLGArLSB2YyBkeTEgMGBdLFtgYWAsYCstIHlnIHJhZCAwYF0sW2B5MmAsYCstIHkzIDAgYWBdLFtgeTFgLGArLSB5MiAwIHJhZGBdLFtgeTVgLGArLSBiIDAgeTFgXSxbYHgxYCxgKy0gaGMgMCBkeDFgXSxbYHgzYCxgKy0gaGMgZHgxIDBgXSxbYHgyYCxgKy0gaGMgMCByYWRgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgaGNgLGB5MWBdLFtgYWAsYHJhZGAsYHJhZGAsYDNjZDRgLGAyMTYwMDAwMGBdLFtgY2BdLFtgbWAsYGhjYCxgeTVgXSxbYGFgLGByYWRgLGByYWRgLGBjZDRgLGAyMTYwMDAwMGBdLFtgY2BdLFtgbWAsYHgxYCxgeTNgXSxbYGxgLGB4M2AsYHkzYF0sW2BsYCxgeDNgLGB5NGBdLFtgbGAsYHgxYCxgeTRgXSxbYGNgXV19XX0sbWF0aGVxdWFsOnthZGo6W1tgYWRqMWAsYHZhbCAyMzUyMGBdLFtgYWRqMmAsYHZhbCAxMTc2MGBdXSxnZDpbW2BhMWAsYHBpbiAwIGFkajEgMzY3NDVgXSxbYDJhMWAsYCovIGExIDIgMWBdLFtgbUFkajJgLGArLSAxMDAwMDAgMCAyYTFgXSxbYGEyYCxgcGluIDAgYWRqMiBtQWRqMmBdLFtgZHkxYCxgKi8gaCBhMSAxMDAwMDBgXSxbYGR5MmAsYCovIGggYTIgMjAwMDAwYF0sW2BkeDFgLGAqLyB3IDczNDkwIDIwMDAwMGBdLFtgeTJgLGArLSB2YyAwIGR5MmBdLFtgeTNgLGArLSB2YyBkeTIgMGBdLFtgeTFgLGArLSB5MiAwIGR5MWBdLFtgeTRgLGArLSB5MyBkeTEgMGBdLFtgeDFgLGArLSBoYyAwIGR4MWBdLFtgeDJgLGArLSBoYyBkeDEgMGBdLFtgeUMxYCxgKy8geTEgeTIgMmBdLFtgeUMyYCxgKy8geTMgeTQgMmBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGB4MWAsYHkxYF0sW2BsYCxgeDJgLGB5MWBdLFtgbGAsYHgyYCxgeTJgXSxbYGxgLGB4MWAsYHkyYF0sW2BjYF0sW2BtYCxgeDFgLGB5M2BdLFtgbGAsYHgyYCxgeTNgXSxbYGxgLGB4MmAsYHk0YF0sW2BsYCxgeDFgLGB5NGBdLFtgY2BdXX1dfSxtYXRobWludXM6e2FkajpbW2BhZGoxYCxgdmFsIDIzNTIwYF1dLGdkOltbYGExYCxgcGluIDAgYWRqMSAxMDAwMDBgXSxbYGR5MWAsYCovIGggYTEgMjAwMDAwYF0sW2BkeDFgLGAqLyB3IDczNDkwIDIwMDAwMGBdLFtgeTFgLGArLSB2YyAwIGR5MWBdLFtgeTJgLGArLSB2YyBkeTEgMGBdLFtgeDFgLGArLSBoYyAwIGR4MWBdLFtgeDJgLGArLSBoYyBkeDEgMGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGB4MWAsYHkxYF0sW2BsYCxgeDJgLGB5MWBdLFtgbGAsYHgyYCxgeTJgXSxbYGxgLGB4MWAsYHkyYF0sW2BjYF1dfV19LG1hdGhtdWx0aXBseTp7YWRqOltbYGFkajFgLGB2YWwgMjM1MjBgXV0sZ2Q6W1tgYTFgLGBwaW4gMCBhZGoxIDUxOTY1YF0sW2B0aGAsYCovIHNzIGExIDEwMDAwMGBdLFtgYWAsYGF0MiB3IGhgXSxbYHNhYCxgc2luIDEgYWBdLFtgY2FgLGBjb3MgMSBhYF0sW2B0YWAsYHRhbiAxIGFgXSxbYGRsYCxgbW9kIHcgaCAwYF0sW2Byd2AsYCovIGRsIDUxOTY1IDEwMDAwMGBdLFtgbE1gLGArLSBkbCAwIHJ3YF0sW2B4TWAsYCovIGNhIGxNIDJgXSxbYHlNYCxgKi8gc2EgbE0gMmBdLFtgZHhBTWAsYCovIHNhIHRoIDJgXSxbYGR5QU1gLGAqLyBjYSB0aCAyYF0sW2B4QWAsYCstIHhNIDAgZHhBTWBdLFtgeUFgLGArLSB5TSBkeUFNIDBgXSxbYHhCYCxgKy0geE0gZHhBTSAwYF0sW2B5QmAsYCstIHlNIDAgZHlBTWBdLFtgeEJDYCxgKy0gaGMgMCB4QmBdLFtgeUJDYCxgKi8geEJDIHRhIDFgXSxbYHlDYCxgKy0geUJDIHlCIDBgXSxbYHhEYCxgKy0gciAwIHhCYF0sW2B4RWAsYCstIHIgMCB4QWBdLFtgeUZFYCxgKy0gdmMgMCB5QWBdLFtgeEZFYCxgKi8geUZFIDEgdGFgXSxbYHhGYCxgKy0geEUgMCB4RkVgXSxbYHhMYCxgKy0geEEgeEZFIDBgXSxbYHlHYCxgKy0gYiAwIHlBYF0sW2B5SGAsYCstIGIgMCB5QmBdLFtgeUlgLGArLSBiIDAgeUNgXSxbYHhDMmAsYCstIHIgMCB4TWBdLFtgeUMzYCxgKy0gYiAwIHlNYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYHhBYCxgeUFgXSxbYGxgLGB4QmAsYHlCYF0sW2BsYCxgaGNgLGB5Q2BdLFtgbGAsYHhEYCxgeUJgXSxbYGxgLGB4RWAsYHlBYF0sW2BsYCxgeEZgLGB2Y2BdLFtgbGAsYHhFYCxgeUdgXSxbYGxgLGB4RGAsYHlIYF0sW2BsYCxgaGNgLGB5SWBdLFtgbGAsYHhCYCxgeUhgXSxbYGxgLGB4QWAsYHlHYF0sW2BsYCxgeExgLGB2Y2BdLFtgY2BdXX1dfSxtYXRobm90ZXF1YWw6e2FkajpbW2BhZGoxYCxgdmFsIDIzNTIwYF0sW2BhZGoyYCxgdmFsIDY2MDAwMDBgXSxbYGFkajNgLGB2YWwgMTE3NjBgXV0sZ2Q6W1tgYTFgLGBwaW4gMCBhZGoxIDUwMDAwYF0sW2BjckFuZ2AsYHBpbiA0MjAwMDAwIGFkajIgNjYwMDAwMGBdLFtgMmExYCxgKi8gYTEgMiAxYF0sW2BtYXhBZGozYCxgKy0gMTAwMDAwIDAgMmExYF0sW2BhM2AsYHBpbiAwIGFkajMgbWF4QWRqM2BdLFtgZHkxYCxgKi8gaCBhMSAxMDAwMDBgXSxbYGR5MmAsYCovIGggYTMgMjAwMDAwYF0sW2BkeDFgLGAqLyB3IDczNDkwIDIwMDAwMGBdLFtgeDFgLGArLSBoYyAwIGR4MWBdLFtgeDhgLGArLSBoYyBkeDEgMGBdLFtgeTJgLGArLSB2YyAwIGR5MmBdLFtgeTNgLGArLSB2YyBkeTIgMGBdLFtgeTFgLGArLSB5MiAwIGR5MWBdLFtgeTRgLGArLSB5MyBkeTEgMGBdLFtgY2FkajJgLGArLSBjckFuZyAwIGNkNGBdLFtgeGFkajJgLGB0YW4gaGQyIGNhZGoyYF0sW2BsZW5gLGBtb2QgeGFkajIgaGQyIDBgXSxbYGJod2AsYCovIGxlbiBkeTEgaGQyYF0sW2BiaHcyYCxgKi8gYmh3IDEgMmBdLFtgeDdgLGArLSBoYyB4YWRqMiBiaHcyYF0sW2BkeDY3YCxgKi8geGFkajIgeTEgaGQyYF0sW2B4NmAsYCstIHg3IDAgZHg2N2BdLFtgZHg1N2AsYCovIHhhZGoyIHkyIGhkMmBdLFtgeDVgLGArLSB4NyAwIGR4NTdgXSxbYGR4NDdgLGAqLyB4YWRqMiB5MyBoZDJgXSxbYHg0YCxgKy0geDcgMCBkeDQ3YF0sW2BkeDM3YCxgKi8geGFkajIgeTQgaGQyYF0sW2B4M2AsYCstIHg3IDAgZHgzN2BdLFtgZHgyN2AsYCovIHhhZGoyIDIgMWBdLFtgeDJgLGArLSB4NyAwIGR4MjdgXSxbYHJ4N2AsYCstIHg3IGJodyAwYF0sW2ByeDZgLGArLSB4NiBiaHcgMGBdLFtgcng1YCxgKy0geDUgYmh3IDBgXSxbYHJ4NGAsYCstIHg0IGJodyAwYF0sW2ByeDNgLGArLSB4MyBiaHcgMGBdLFtgcngyYCxgKy0geDIgYmh3IDBgXSxbYGR4N2AsYCovIGR5MSBoZDIgbGVuYF0sW2ByeHRgLGArLSB4NyBkeDcgMGBdLFtgbHh0YCxgKy0gcng3IDAgZHg3YF0sW2ByeGAsYD86IGNhZGoyIHJ4dCByeDdgXSxbYGx4YCxgPzogY2FkajIgeDcgbHh0YF0sW2BkeTNgLGAqLyBkeTEgeGFkajIgbGVuYF0sW2BkeTRgLGArLSAwIDAgZHkzYF0sW2ByeWAsYD86IGNhZGoyIGR5MyB0YF0sW2BseWAsYD86IGNhZGoyIHQgZHk0YF0sW2BkbHhgLGArLSB3IDAgcnhgXSxbYGRyeGAsYCstIHcgMCBseGBdLFtgZGx5YCxgKy0gaCAwIHJ5YF0sW2BkcnlgLGArLSBoIDAgbHlgXSxbYHhDMWAsYCsvIHJ4IGx4IDJgXSxbYHhDMmAsYCsvIGRyeCBkbHggMmBdLFtgeUMxYCxgKy8gcnkgbHkgMmBdLFtgeUMyYCxgKy8geTEgeTIgMmBdLFtgeUMzYCxgKy8geTMgeTQgMmBdLFtgeUM0YCxgKy8gZHJ5IGRseSAyYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYHgxYCxgeTFgXSxbYGxgLGB4NmAsYHkxYF0sW2BsYCxgbHhgLGBseWBdLFtgbGAsYHJ4YCxgcnlgXSxbYGxgLGByeDZgLGB5MWBdLFtgbGAsYHg4YCxgeTFgXSxbYGxgLGB4OGAsYHkyYF0sW2BsYCxgcng1YCxgeTJgXSxbYGxgLGByeDRgLGB5M2BdLFtgbGAsYHg4YCxgeTNgXSxbYGxgLGB4OGAsYHk0YF0sW2BsYCxgcngzYCxgeTRgXSxbYGxgLGBkcnhgLGBkcnlgXSxbYGxgLGBkbHhgLGBkbHlgXSxbYGxgLGB4M2AsYHk0YF0sW2BsYCxgeDFgLGB5NGBdLFtgbGAsYHgxYCxgeTNgXSxbYGxgLGB4NGAsYHkzYF0sW2BsYCxgeDVgLGB5MmBdLFtgbGAsYHgxYCxgeTJgXSxbYGNgXV19XX0sbWF0aHBsdXM6e2FkajpbW2BhZGoxYCxgdmFsIDIzNTIwYF1dLGdkOltbYGExYCxgcGluIDAgYWRqMSA3MzQ5MGBdLFtgZHgxYCxgKi8gdyA3MzQ5MCAyMDAwMDBgXSxbYGR5MWAsYCovIGggNzM0OTAgMjAwMDAwYF0sW2BkeDJgLGAqLyBzcyBhMSAyMDAwMDBgXSxbYHgxYCxgKy0gaGMgMCBkeDFgXSxbYHgyYCxgKy0gaGMgMCBkeDJgXSxbYHgzYCxgKy0gaGMgZHgyIDBgXSxbYHg0YCxgKy0gaGMgZHgxIDBgXSxbYHkxYCxgKy0gdmMgMCBkeTFgXSxbYHkyYCxgKy0gdmMgMCBkeDJgXSxbYHkzYCxgKy0gdmMgZHgyIDBgXSxbYHk0YCxgKy0gdmMgZHkxIDBgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgeDFgLGB5MmBdLFtgbGAsYHgyYCxgeTJgXSxbYGxgLGB4MmAsYHkxYF0sW2BsYCxgeDNgLGB5MWBdLFtgbGAsYHgzYCxgeTJgXSxbYGxgLGB4NGAsYHkyYF0sW2BsYCxgeDRgLGB5M2BdLFtgbGAsYHgzYCxgeTNgXSxbYGxgLGB4M2AsYHk0YF0sW2BsYCxgeDJgLGB5NGBdLFtgbGAsYHgyYCxgeTNgXSxbYGxgLGB4MWAsYHkzYF0sW2BjYF1dfV19LG1vb246e2FkajpbW2BhZGpgLGB2YWwgNTAwMDBgXV0sZ2Q6W1tgYWAsYHBpbiAwIGFkaiA4NzUwMGBdLFtgZzBgLGAqLyBzcyBhIDEwMDAwMGBdLFtgZzB3YCxgKi8gZzAgdyBzc2BdLFtgZzFgLGArLSBzcyAwIGcwYF0sW2BnMmAsYCovIGcwIGcwIGcxYF0sW2BnM2AsYCovIHNzIHNzIGcxYF0sW2BnNGAsYCovIGczIDIgMWBdLFtgZzVgLGArLSBnNCAwIGcyYF0sW2BnNmAsYCstIGc1IDAgZzBgXSxbYGc2d2AsYCovIGc2IHcgc3NgXSxbYGc3YCxgKi8gZzUgMSAyYF0sW2BnOGAsYCstIGc3IDAgZzBgXSxbYGR5MWAsYCovIGc4IGhkMiBzc2BdLFtgZzEwaGAsYCstIHZjIDAgZHkxYF0sW2BnMTFoYCxgKy0gdmMgZHkxIDBgXSxbYGcxMmAsYCovIGcwIDk1OTggMzI3NjhgXSxbYGcxMndgLGAqLyBnMTIgdyBzc2BdLFtgZzEzYCxgKy0gc3MgMCBnMTJgXSxbYHExYCxgKi8gc3Mgc3MgMWBdLFtgcTJgLGAqLyBnMTMgZzEzIDFgXSxbYHEzYCxgKy0gcTEgMCBxMmBdLFtgcTRgLGBzcXJ0IHEzYF0sW2BkeTRgLGAqLyBxNCBoZDIgc3NgXSxbYGcxNWhgLGArLSB2YyAwIGR5NGBdLFtgZzE2aGAsYCstIHZjIGR5NCAwYF0sW2BnMTd3YCxgKy0gZzZ3IDAgZzB3YF0sW2BnMTh3YCxgKi8gZzE3dyAxIDJgXSxbYGR4MnBgLGArLSBnMHcgZzE4dyB3YF0sW2BkeDJgLGAqLyBkeDJwIC0xIDFgXSxbYGR5MmAsYCovIGhkMiAtMSAxYF0sW2BzdEFuZzFgLGBhdDIgZHgyIGR5MmBdLFtgZW5BbmdwMWAsYGF0MiBkeDIgaGQyYF0sW2BlbkFuZzFgLGArLSBlbkFuZ3AxIDAgMjE2MDAwMDBgXSxbYHN3QW5nMWAsYCstIGVuQW5nMSAwIHN0QW5nMWBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGByYCxgYmBdLFtgYWAsYHdgLGBoZDJgLGBjZDRgLGBjZDJgXSxbYGFgLGBnMTh3YCxgZHkxYCxgc3RBbmcxYCxgc3dBbmcxYF0sW2BjYF1dfV19LG5vbmlzb3NjZWxlc3RyYXBlem9pZDp7YWRqOltbYGFkajFgLGB2YWwgMjUwMDBgXSxbYGFkajJgLGB2YWwgMjUwMDBgXV0sZ2Q6W1tgbWF4QWRqYCxgKi8gNTAwMDAgdyBzc2BdLFtgYTFgLGBwaW4gMCBhZGoxIG1heEFkamBdLFtgYTJgLGBwaW4gMCBhZGoyIG1heEFkamBdLFtgeDFgLGAqLyBzcyBhMSAyMDAwMDBgXSxbYHgyYCxgKi8gc3MgYTEgMTAwMDAwYF0sW2BkeDNgLGAqLyBzcyBhMiAxMDAwMDBgXSxbYHgzYCxgKy0gciAwIGR4M2BdLFtgeDRgLGArLyByIHgzIDJgXSxbYGlsYCxgKi8gd2QzIGExIG1heEFkamBdLFtgYWRqbWAsYG1heCBhMSBhMmBdLFtgaXRgLGAqLyBoZDMgYWRqbSBtYXhBZGpgXSxbYGlydGAsYCovIHdkMyBhMiBtYXhBZGpgXSxbYGlyYCxgKy0gciAwIGlydGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGBsYCxgYmBdLFtgbGAsYHgyYCxgdGBdLFtgbGAsYHgzYCxgdGBdLFtgbGAsYHJgLGBiYF0sW2BjYF1dfV19LG5vc21va2luZzp7YWRqOltbYGFkamAsYHZhbCAxODc1MGBdXSxnZDpbW2BhYCxgcGluIDAgYWRqIDUwMDAwYF0sW2BkcmAsYCovIHNzIGEgMTAwMDAwYF0sW2Bpd2QyYCxgKy0gd2QyIDAgZHJgXSxbYGloZDJgLGArLSBoZDIgMCBkcmBdLFtgYW5nYCxgYXQyIHcgaGBdLFtgY3RgLGBjb3MgaWhkMiBhbmdgXSxbYHN0YCxgc2luIGl3ZDIgYW5nYF0sW2BtYCxgbW9kIGN0IHN0IDBgXSxbYG5gLGAqLyBpd2QyIGloZDIgbWBdLFtgZHJkMmAsYCovIGRyIDEgMmBdLFtgZGFuZ2AsYGF0MiBuIGRyZDJgXSxbYGRhbmcyYCxgKi8gZGFuZyAyIDFgXSxbYHN3QW5nYCxgKy0gLTEwODAwMDAwIGRhbmcyIDBgXSxbYHQzYCxgYXQyIHcgaGBdLFtgc3RBbmcxYCxgKy0gdDMgMCBkYW5nYF0sW2BzdEFuZzJgLGArLSBzdEFuZzEgMCBjZDJgXSxbYGN0MWAsYGNvcyBpaGQyIHN0QW5nMWBdLFtgc3QxYCxgc2luIGl3ZDIgc3RBbmcxYF0sW2BtMWAsYG1vZCBjdDEgc3QxIDBgXSxbYG4xYCxgKi8gaXdkMiBpaGQyIG0xYF0sW2BkeDFgLGBjb3MgbjEgc3RBbmcxYF0sW2BkeTFgLGBzaW4gbjEgc3RBbmcxYF0sW2B4MWAsYCstIGhjIGR4MSAwYF0sW2B5MWAsYCstIHZjIGR5MSAwYF0sW2B4MmAsYCstIGhjIDAgZHgxYF0sW2B5MmAsYCstIHZjIDAgZHkxYF0sW2BpZHhgLGBjb3Mgd2QyIDI3MDAwMDBgXSxbYGlkeWAsYHNpbiBoZDIgMjcwMDAwMGBdLFtgaWxgLGArLSBoYyAwIGlkeGBdLFtgaXJgLGArLSBoYyBpZHggMGBdLFtgaXRgLGArLSB2YyAwIGlkeWBdLFtgaWJgLGArLSB2YyBpZHkgMGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGBsYCxgdmNgXSxbYGFgLGB3ZDJgLGBoZDJgLGBjZDJgLGBjZDRgXSxbYGFgLGB3ZDJgLGBoZDJgLGAzY2Q0YCxgY2Q0YF0sW2BhYCxgd2QyYCxgaGQyYCxgMGAsYGNkNGBdLFtgYWAsYHdkMmAsYGhkMmAsYGNkNGAsYGNkNGBdLFtgY2BdLFtgbWAsYHgxYCxgeTFgXSxbYGFgLGBpd2QyYCxgaWhkMmAsYHN0QW5nMWAsYHN3QW5nYF0sW2BjYF0sW2BtYCxgeDJgLGB5MmBdLFtgYWAsYGl3ZDJgLGBpaGQyYCxgc3RBbmcyYCxgc3dBbmdgXSxbYGNgXV19XX0sbm90Y2hlZHJpZ2h0YXJyb3c6e2FkajpbW2BhZGoxYCxgdmFsIDUwMDAwYF0sW2BhZGoyYCxgdmFsIDUwMDAwYF1dLGdkOltbYG1heEFkajJgLGAqLyAxMDAwMDAgdyBzc2BdLFtgYTFgLGBwaW4gMCBhZGoxIDEwMDAwMGBdLFtgYTJgLGBwaW4gMCBhZGoyIG1heEFkajJgXSxbYGR4MmAsYCovIHNzIGEyIDEwMDAwMGBdLFtgeDJgLGArLSByIDAgZHgyYF0sW2BkeTFgLGAqLyBoIGExIDIwMDAwMGBdLFtgeTFgLGArLSB2YyAwIGR5MWBdLFtgeTJgLGArLSB2YyBkeTEgMGBdLFtgeDFgLGAqLyBkeTEgZHgyIGhkMmBdLFtgeDNgLGArLSByIDAgeDFgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHkxYF0sW2BsYCxgeDJgLGB5MWBdLFtgbGAsYHgyYCxgdGBdLFtgbGAsYHJgLGB2Y2BdLFtgbGAsYHgyYCxgYmBdLFtgbGAsYHgyYCxgeTJgXSxbYGxgLGBsYCxgeTJgXSxbYGxgLGB4MWAsYHZjYF0sW2BjYF1dfV19LG9jdGFnb246e2FkajpbW2BhZGpgLGB2YWwgMjkyODlgXV0sZ2Q6W1tgYWAsYHBpbiAwIGFkaiA1MDAwMGBdLFtgeDFgLGAqLyBzcyBhIDEwMDAwMGBdLFtgeDJgLGArLSByIDAgeDFgXSxbYHkyYCxgKy0gYiAwIHgxYF0sW2BpbGAsYCovIHgxIDEgMmBdLFtgaXJgLGArLSByIDAgaWxgXSxbYGliYCxgKy0gYiAwIGlsYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB4MWBdLFtgbGAsYHgxYCxgdGBdLFtgbGAsYHgyYCxgdGBdLFtgbGAsYHJgLGB4MWBdLFtgbGAsYHJgLGB5MmBdLFtgbGAsYHgyYCxgYmBdLFtgbGAsYHgxYCxgYmBdLFtgbGAsYGxgLGB5MmBdLFtgY2BdXX1dfSxwYXJhbGxlbG9ncmFtOnthZGo6W1tgYWRqYCxgdmFsIDI1MDAwYF1dLGdkOltbYG1heEFkamAsYCovIDEwMDAwMCB3IHNzYF0sW2BhYCxgcGluIDAgYWRqIG1heEFkamBdLFtgeDFgLGAqLyBzcyBhIDIwMDAwMGBdLFtgeDJgLGAqLyBzcyBhIDEwMDAwMGBdLFtgeDZgLGArLSByIDAgeDFgXSxbYHg1YCxgKy0gciAwIHgyYF0sW2B4M2AsYCovIHg1IDEgMmBdLFtgeDRgLGArLSByIDAgeDNgXSxbYGlsYCxgKi8gd2QyIGEgbWF4QWRqYF0sW2BxMWAsYCovIDUgYSBtYXhBZGpgXSxbYHEyYCxgKy8gMSBxMSAxMmBdLFtgaWxgLGAqLyBxMiB3IDFgXSxbYGl0YCxgKi8gcTIgaCAxYF0sW2BpcmAsYCstIHIgMCBpbGBdLFtgaWJgLGArLSBiIDAgaXRgXSxbYHEzYCxgKi8gaCBoYyB4MmBdLFtgeTFgLGBwaW4gMCBxMyBoYF0sW2B5MmAsYCstIGIgMCB5MWBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGBsYCxgYmBdLFtgbGAsYHgyYCxgdGBdLFtgbGAsYHJgLGB0YF0sW2BsYCxgeDVgLGBiYF0sW2BjYF1dfV19LHBlbnRhZ29uOnthZGo6W1tgaGZgLGB2YWwgMTA1MTQ2YF0sW2B2ZmAsYHZhbCAxMTA1NTdgXV0sZ2Q6W1tgc3dkMmAsYCovIHdkMiBoZiAxMDAwMDBgXSxbYHNoZDJgLGAqLyBoZDIgdmYgMTAwMDAwYF0sW2BzdmNgLGAqLyB2YyAgdmYgMTAwMDAwYF0sW2BkeDFgLGBjb3Mgc3dkMiAxMDgwMDAwYF0sW2BkeDJgLGBjb3Mgc3dkMiAxODM2MDAwMGBdLFtgZHkxYCxgc2luIHNoZDIgMTA4MDAwMGBdLFtgZHkyYCxgc2luIHNoZDIgMTgzNjAwMDBgXSxbYHgxYCxgKy0gaGMgMCBkeDFgXSxbYHgyYCxgKy0gaGMgMCBkeDJgXSxbYHgzYCxgKy0gaGMgZHgyIDBgXSxbYHg0YCxgKy0gaGMgZHgxIDBgXSxbYHkxYCxgKy0gc3ZjIDAgZHkxYF0sW2B5MmAsYCstIHN2YyAwIGR5MmBdLFtgaXRgLGAqLyB5MSBkeDIgZHgxYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYHgxYCxgeTFgXSxbYGxgLGBoY2AsYHRgXSxbYGxgLGB4NGAsYHkxYF0sW2BsYCxgeDNgLGB5MmBdLFtgbGAsYHgyYCxgeTJgXSxbYGNgXV19XX0scGllOnthZGo6W1tgYWRqMWAsYHZhbCAwYF0sW2BhZGoyYCxgdmFsIDE2MjAwMDAwYF1dLGdkOltbYHN0QW5nYCxgcGluIDAgYWRqMSAyMTU5OTk5OWBdLFtgZW5BbmdgLGBwaW4gMCBhZGoyIDIxNTk5OTk5YF0sW2BzdzFgLGArLSBlbkFuZyAwIHN0QW5nYF0sW2BzdzJgLGArLSBzdzEgMjE2MDAwMDAgMGBdLFtgc3dBbmdgLGA/OiBzdzEgc3cxIHN3MmBdLFtgd3QxYCxgc2luIHdkMiBzdEFuZ2BdLFtgaHQxYCxgY29zIGhkMiBzdEFuZ2BdLFtgZHgxYCxgY2F0MiB3ZDIgaHQxIHd0MWBdLFtgZHkxYCxgc2F0MiBoZDIgaHQxIHd0MWBdLFtgeDFgLGArLSBoYyBkeDEgMGBdLFtgeTFgLGArLSB2YyBkeTEgMGBdLFtgd3QyYCxgc2luIHdkMiBlbkFuZ2BdLFtgaHQyYCxgY29zIGhkMiBlbkFuZ2BdLFtgZHgyYCxgY2F0MiB3ZDIgaHQyIHd0MmBdLFtgZHkyYCxgc2F0MiBoZDIgaHQyIHd0MmBdLFtgeDJgLGArLSBoYyBkeDIgMGBdLFtgeTJgLGArLSB2YyBkeTIgMGBdLFtgaWR4YCxgY29zIHdkMiAyNzAwMDAwYF0sW2BpZHlgLGBzaW4gaGQyIDI3MDAwMDBgXSxbYGlsYCxgKy0gaGMgMCBpZHhgXSxbYGlyYCxgKy0gaGMgaWR4IDBgXSxbYGl0YCxgKy0gdmMgMCBpZHlgXSxbYGliYCxgKy0gdmMgaWR5IDBgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgeDFgLGB5MWBdLFtgYWAsYHdkMmAsYGhkMmAsYHN0QW5nYCxgc3dBbmdgXSxbYGxgLGBoY2AsYHZjYF0sW2BjYF1dfV19LHBpZXdlZGdlOnthZGo6W10sZ2Q6W1tgZzFgLGBjb3MgdyAxMzUwMDAwMGBdLFtgZzJgLGBzaW4gaCAxMzUwMDAwMGBdLFtgeDFgLGArLSByIGcxIDBgXSxbYHkxYCxgKy0gYiBnMiAwYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGBiYF0sW2BhYCxgd2AsYGhgLGBjZDJgLGBjZDRgXSxbYGxgLGByYCxgYmBdLFtgY2BdXX1dfSxwbGFxdWU6e2FkajpbW2BhZGpgLGB2YWwgMTY2NjdgXV0sZ2Q6W1tgYWAsYHBpbiAwIGFkaiA1MDAwMGBdLFtgeDFgLGAqLyBzcyBhIDEwMDAwMGBdLFtgeDJgLGArLSByIDAgeDFgXSxbYHkyYCxgKy0gYiAwIHgxYF0sW2BpbGAsYCovIHgxIDcwNzExIDEwMDAwMGBdLFtgaXJgLGArLSByIDAgaWxgXSxbYGliYCxgKy0gYiAwIGlsYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB4MWBdLFtgYWAsYHgxYCxgeDFgLGBjZDRgLGAtNTQwMDAwMGBdLFtgbGAsYHgyYCxgdGBdLFtgYWAsYHgxYCxgeDFgLGBjZDJgLGAtNTQwMDAwMGBdLFtgbGAsYHJgLGB5MmBdLFtgYWAsYHgxYCxgeDFgLGAzY2Q0YCxgLTU0MDAwMDBgXSxbYGxgLGB4MWAsYGJgXSxbYGFgLGB4MWAsYHgxYCxgMGAsYC01NDAwMDAwYF0sW2BjYF1dfV19LHBsYXF1ZXRhYnM6e2FkajpbXSxnZDpbW2BtZGAsYG1vZCB3IGggMGBdLFtgZHhgLGAqLyAxIG1kIDIwYF0sW2B5MWAsYCstIDAgYiBkeGBdLFtgeDFgLGArLSAwIHIgZHhgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHRgXSxbYGxgLGBkeGAsYHRgXSxbYGFgLGBkeGAsYGR4YCxgMGAsYGNkNGBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGBsYCxgeTFgXSxbYGFgLGBkeGAsYGR4YCxgM2NkNGAsYGNkNGBdLFtgbGAsYGxgLGBiYF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYHJgLGB0YF0sW2BsYCxgcmAsYGR4YF0sW2BhYCxgZHhgLGBkeGAsYGNkNGAsYGNkNGBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGB4MWAsYGJgXSxbYGFgLGBkeGAsYGR4YCxgY2QyYCxgY2Q0YF0sW2BsYCxgcmAsYGJgXSxbYGNgXV19XX0scGx1czp7YWRqOltbYGFkamAsYHZhbCAyNTAwMGBdXSxnZDpbW2BhYCxgcGluIDAgYWRqIDUwMDAwYF0sW2B4MWAsYCovIHNzIGEgMTAwMDAwYF0sW2B4MmAsYCstIHIgMCB4MWBdLFtgeTJgLGArLSBiIDAgeDFgXSxbYGRgLGArLSB3IDAgaGBdLFtgaWxgLGA/OiBkIGwgeDFgXSxbYGlyYCxgPzogZCByIHgyYF0sW2BpdGAsYD86IGQgeDEgdGBdLFtgaWJgLGA/OiBkIHkyIGJgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHgxYF0sW2BsYCxgeDFgLGB4MWBdLFtgbGAsYHgxYCxgdGBdLFtgbGAsYHgyYCxgdGBdLFtgbGAsYHgyYCxgeDFgXSxbYGxgLGByYCxgeDFgXSxbYGxgLGByYCxgeTJgXSxbYGxgLGB4MmAsYHkyYF0sW2BsYCxgeDJgLGBiYF0sW2BsYCxgeDFgLGBiYF0sW2BsYCxgeDFgLGB5MmBdLFtgbGAsYGxgLGB5MmBdLFtgY2BdXX1dfSxxdWFkYXJyb3c6e2FkajpbW2BhZGoxYCxgdmFsIDIyNTAwYF0sW2BhZGoyYCxgdmFsIDIyNTAwYF0sW2BhZGozYCxgdmFsIDIyNTAwYF1dLGdkOltbYGEyYCxgcGluIDAgYWRqMiA1MDAwMGBdLFtgbWF4QWRqMWAsYCovIGEyIDIgMWBdLFtgYTFgLGBwaW4gMCBhZGoxIG1heEFkajFgXSxbYHExYCxgKy0gMTAwMDAwIDAgbWF4QWRqMWBdLFtgbWF4QWRqM2AsYCovIHExIDEgMmBdLFtgYTNgLGBwaW4gMCBhZGozIG1heEFkajNgXSxbYHgxYCxgKi8gc3MgYTMgMTAwMDAwYF0sW2BkeDJgLGAqLyBzcyBhMiAxMDAwMDBgXSxbYHgyYCxgKy0gaGMgMCBkeDJgXSxbYHg1YCxgKy0gaGMgZHgyIDBgXSxbYGR4M2AsYCovIHNzIGExIDIwMDAwMGBdLFtgeDNgLGArLSBoYyAwIGR4M2BdLFtgeDRgLGArLSBoYyBkeDMgMGBdLFtgeDZgLGArLSByIDAgeDFgXSxbYHkyYCxgKy0gdmMgMCBkeDJgXSxbYHk1YCxgKy0gdmMgZHgyIDBgXSxbYHkzYCxgKy0gdmMgMCBkeDNgXSxbYHk0YCxgKy0gdmMgZHgzIDBgXSxbYHk2YCxgKy0gYiAwIHgxYF0sW2BpbGAsYCovIGR4MyB4MSBkeDJgXSxbYGlyYCxgKy0gciAwIGlsYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB2Y2BdLFtgbGAsYHgxYCxgeTJgXSxbYGxgLGB4MWAsYHkzYF0sW2BsYCxgeDNgLGB5M2BdLFtgbGAsYHgzYCxgeDFgXSxbYGxgLGB4MmAsYHgxYF0sW2BsYCxgaGNgLGB0YF0sW2BsYCxgeDVgLGB4MWBdLFtgbGAsYHg0YCxgeDFgXSxbYGxgLGB4NGAsYHkzYF0sW2BsYCxgeDZgLGB5M2BdLFtgbGAsYHg2YCxgeTJgXSxbYGxgLGByYCxgdmNgXSxbYGxgLGB4NmAsYHk1YF0sW2BsYCxgeDZgLGB5NGBdLFtgbGAsYHg0YCxgeTRgXSxbYGxgLGB4NGAsYHk2YF0sW2BsYCxgeDVgLGB5NmBdLFtgbGAsYGhjYCxgYmBdLFtgbGAsYHgyYCxgeTZgXSxbYGxgLGB4M2AsYHk2YF0sW2BsYCxgeDNgLGB5NGBdLFtgbGAsYHgxYCxgeTRgXSxbYGxgLGB4MWAsYHk1YF0sW2BjYF1dfV19LHF1YWRhcnJvd2NhbGxvdXQ6e2FkajpbW2BhZGoxYCxgdmFsIDE4NTE1YF0sW2BhZGoyYCxgdmFsIDE4NTE1YF0sW2BhZGozYCxgdmFsIDE4NTE1YF0sW2BhZGo0YCxgdmFsIDQ4MTIzYF1dLGdkOltbYGEyYCxgcGluIDAgYWRqMiA1MDAwMGBdLFtgbWF4QWRqMWAsYCovIGEyIDIgMWBdLFtgYTFgLGBwaW4gMCBhZGoxIG1heEFkajFgXSxbYG1heEFkajNgLGArLSA1MDAwMCAwIGEyYF0sW2BhM2AsYHBpbiAwIGFkajMgbWF4QWRqM2BdLFtgcTJgLGAqLyBhMyAyIDFgXSxbYG1heEFkajRgLGArLSAxMDAwMDAgMCBxMmBdLFtgYTRgLGBwaW4gYTEgYWRqNCBtYXhBZGo0YF0sW2BkeDJgLGAqLyBzcyBhMiAxMDAwMDBgXSxbYGR4M2AsYCovIHNzIGExIDIwMDAwMGBdLFtgYWhgLGAqLyBzcyBhMyAxMDAwMDBgXSxbYGR4MWAsYCovIHcgYTQgMjAwMDAwYF0sW2BkeTFgLGAqLyBoIGE0IDIwMDAwMGBdLFtgeDhgLGArLSByIDAgYWhgXSxbYHgyYCxgKy0gaGMgMCBkeDFgXSxbYHg3YCxgKy0gaGMgZHgxIDBgXSxbYHgzYCxgKy0gaGMgMCBkeDJgXSxbYHg2YCxgKy0gaGMgZHgyIDBgXSxbYHg0YCxgKy0gaGMgMCBkeDNgXSxbYHg1YCxgKy0gaGMgZHgzIDBgXSxbYHk4YCxgKy0gYiAwIGFoYF0sW2B5MmAsYCstIHZjIDAgZHkxYF0sW2B5N2AsYCstIHZjIGR5MSAwYF0sW2B5M2AsYCstIHZjIDAgZHgyYF0sW2B5NmAsYCstIHZjIGR4MiAwYF0sW2B5NGAsYCstIHZjIDAgZHgzYF0sW2B5NWAsYCstIHZjIGR4MyAwYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB2Y2BdLFtgbGAsYGFoYCxgeTNgXSxbYGxgLGBhaGAsYHk0YF0sW2BsYCxgeDJgLGB5NGBdLFtgbGAsYHgyYCxgeTJgXSxbYGxgLGB4NGAsYHkyYF0sW2BsYCxgeDRgLGBhaGBdLFtgbGAsYHgzYCxgYWhgXSxbYGxgLGBoY2AsYHRgXSxbYGxgLGB4NmAsYGFoYF0sW2BsYCxgeDVgLGBhaGBdLFtgbGAsYHg1YCxgeTJgXSxbYGxgLGB4N2AsYHkyYF0sW2BsYCxgeDdgLGB5NGBdLFtgbGAsYHg4YCxgeTRgXSxbYGxgLGB4OGAsYHkzYF0sW2BsYCxgcmAsYHZjYF0sW2BsYCxgeDhgLGB5NmBdLFtgbGAsYHg4YCxgeTVgXSxbYGxgLGB4N2AsYHk1YF0sW2BsYCxgeDdgLGB5N2BdLFtgbGAsYHg1YCxgeTdgXSxbYGxgLGB4NWAsYHk4YF0sW2BsYCxgeDZgLGB5OGBdLFtgbGAsYGhjYCxgYmBdLFtgbGAsYHgzYCxgeThgXSxbYGxgLGB4NGAsYHk4YF0sW2BsYCxgeDRgLGB5N2BdLFtgbGAsYHgyYCxgeTdgXSxbYGxgLGB4MmAsYHk1YF0sW2BsYCxgYWhgLGB5NWBdLFtgbGAsYGFoYCxgeTZgXSxbYGNgXV19XX0scmliYm9uOnthZGo6W1tgYWRqMWAsYHZhbCAxNjY2N2BdLFtgYWRqMmAsYHZhbCA1MDAwMGBdXSxnZDpbW2BhMWAsYHBpbiAwIGFkajEgMzMzMzNgXSxbYGEyYCxgcGluIDI1MDAwIGFkajIgNzUwMDBgXSxbYHgxMGAsYCstIHIgMCB3ZDhgXSxbYGR4MmAsYCovIHcgYTIgMjAwMDAwYF0sW2B4MmAsYCstIGhjIDAgZHgyYF0sW2B4OWAsYCstIGhjIGR4MiAwYF0sW2B4M2AsYCstIHgyIHdkMzIgMGBdLFtgeDhgLGArLSB4OSAwIHdkMzJgXSxbYHg1YCxgKy0geDIgd2Q4IDBgXSxbYHg2YCxgKy0geDkgMCB3ZDhgXSxbYHg0YCxgKy0geDUgMCB3ZDMyYF0sW2B4N2AsYCstIHg2IHdkMzIgMGBdLFtgeTFgLGAqLyBoIGExIDIwMDAwMGBdLFtgeTJgLGAqLyBoIGExIDEwMDAwMGBdLFtgeTRgLGArLSBiIDAgeTJgXSxbYHkzYCxgKi8geTQgMSAyYF0sW2BoUmAsYCovIGggYTEgNDAwMDAwYF0sW2B5NWAsYCstIGIgMCBoUmBdLFtgeTZgLGArLSB5MiAwIGhSYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiExLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYGxgLGB0YF0sW2BsYCxgeDRgLGB0YF0sW2BhYCxgd2QzMmAsYGhSYCxgM2NkNGAsYGNkMmBdLFtgbGAsYHgzYCxgeTFgXSxbYGFgLGB3ZDMyYCxgaFJgLGAzY2Q0YCxgLTEwODAwMDAwYF0sW2BsYCxgeDhgLGB5MmBdLFtgYWAsYHdkMzJgLGBoUmAsYGNkNGAsYC0xMDgwMDAwMGBdLFtgbGAsYHg3YCxgeTFgXSxbYGFgLGB3ZDMyYCxgaFJgLGBjZDRgLGBjZDJgXSxbYGxgLGByYCxgdGBdLFtgbGAsYHgxMGAsYHkzYF0sW2BsYCxgcmAsYHk0YF0sW2BsYCxgeDlgLGB5NGBdLFtgbGAsYHg5YCxgeTVgXSxbYGFgLGB3ZDMyYCxgaFJgLGAwYCxgY2Q0YF0sW2BsYCxgeDNgLGBiYF0sW2BhYCxgd2QzMmAsYGhSYCxgY2Q0YCxgY2Q0YF0sW2BsYCxgeDJgLGB5NGBdLFtgbGAsYGxgLGB5NGBdLFtgbGAsYHdkOGAsYHkzYF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOmBkYXJrZW5MZXNzYCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgeDVgLGBoUmBdLFtgYWAsYHdkMzJgLGBoUmAsYDBgLGBjZDRgXSxbYGxgLGB4M2AsYHkxYF0sW2BhYCxgd2QzMmAsYGhSYCxgM2NkNGAsYC0xMDgwMDAwMGBdLFtgbGAsYHg1YCxgeTJgXSxbYGNgXSxbYG1gLGB4NmAsYGhSYF0sW2BhYCxgd2QzMmAsYGhSYCxgY2QyYCxgLTU0MDAwMDBgXSxbYGxgLGB4OGAsYHkxYF0sW2BhYCxgd2QzMmAsYGhSYCxgM2NkNGAsYGNkMmBdLFtgbGAsYHg2YCxgeTJgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBsYCxgdGBdLFtgbGAsYHg0YCxgdGBdLFtgYWAsYHdkMzJgLGBoUmAsYDNjZDRgLGBjZDJgXSxbYGxgLGB4M2AsYHkxYF0sW2BhYCxgd2QzMmAsYGhSYCxgM2NkNGAsYC0xMDgwMDAwMGBdLFtgbGAsYHg4YCxgeTJgXSxbYGFgLGB3ZDMyYCxgaFJgLGBjZDRgLGAtMTA4MDAwMDBgXSxbYGxgLGB4N2AsYHkxYF0sW2BhYCxgd2QzMmAsYGhSYCxgY2Q0YCxgY2QyYF0sW2BsYCxgcmAsYHRgXSxbYGxgLGB4MTBgLGB5M2BdLFtgbGAsYHJgLGB5NGBdLFtgbGAsYHg5YCxgeTRgXSxbYGxgLGB4OWAsYHk1YF0sW2BhYCxgd2QzMmAsYGhSYCxgMGAsYGNkNGBdLFtgbGAsYHgzYCxgYmBdLFtgYWAsYHdkMzJgLGBoUmAsYGNkNGAsYGNkNGBdLFtgbGAsYHgyYCxgeTRgXSxbYGxgLGBsYCxgeTRgXSxbYGxgLGB3ZDhgLGB5M2BdLFtgY2BdLFtgbWAsYHg1YCxgaFJgXSxbYGxgLGB4NWAsYHkyYF0sW2BtYCxgeDZgLGB5MmBdLFtgbGAsYHg2YCxgaFJgXSxbYG1gLGB4MmAsYHk0YF0sW2BsYCxgeDJgLGB5NmBdLFtgbWAsYHg5YCxgeTZgXSxbYGxgLGB4OWAsYHk0YF1dfV19LHJpYmJvbjI6e2FkajpbW2BhZGoxYCxgdmFsIDE2NjY3YF0sW2BhZGoyYCxgdmFsIDUwMDAwYF1dLGdkOltbYGExYCxgcGluIDAgYWRqMSAzMzMzM2BdLFtgYTJgLGBwaW4gMjUwMDAgYWRqMiA3NTAwMGBdLFtgeDEwYCxgKy0gciAwIHdkOGBdLFtgZHgyYCxgKi8gdyBhMiAyMDAwMDBgXSxbYHgyYCxgKy0gaGMgMCBkeDJgXSxbYHg5YCxgKy0gaGMgZHgyIDBgXSxbYHgzYCxgKy0geDIgd2QzMiAwYF0sW2B4OGAsYCstIHg5IDAgd2QzMmBdLFtgeDVgLGArLSB4MiB3ZDggMGBdLFtgeDZgLGArLSB4OSAwIHdkOGBdLFtgeDRgLGArLSB4NSAwIHdkMzJgXSxbYHg3YCxgKy0geDYgd2QzMiAwYF0sW2BkeTFgLGAqLyBoIGExIDIwMDAwMGBdLFtgeTFgLGArLSBiIDAgZHkxYF0sW2BkeTJgLGAqLyBoIGExIDEwMDAwMGBdLFtgeTJgLGArLSBiIDAgZHkyYF0sW2B5NGAsYCstIHQgZHkyIDBgXSxbYHkzYCxgKy8geTQgYiAyYF0sW2BoUmAsYCovIGggYTEgNDAwMDAwYF0sW2B5NmAsYCstIGIgMCBoUmBdLFtgeTdgLGArLSB5MSAwIGhSYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiExLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYGxgLGBiYF0sW2BsYCxgeDRgLGBiYF0sW2BhYCxgd2QzMmAsYGhSYCxgY2Q0YCxgLTEwODAwMDAwYF0sW2BsYCxgeDNgLGB5MWBdLFtgYWAsYHdkMzJgLGBoUmAsYGNkNGAsYGNkMmBdLFtgbGAsYHg4YCxgeTJgXSxbYGFgLGB3ZDMyYCxgaFJgLGAzY2Q0YCxgY2QyYF0sW2BsYCxgeDdgLGB5MWBdLFtgYWAsYHdkMzJgLGBoUmAsYDNjZDRgLGAtMTA4MDAwMDBgXSxbYGxgLGByYCxgYmBdLFtgbGAsYHgxMGAsYHkzYF0sW2BsYCxgcmAsYHk0YF0sW2BsYCxgeDlgLGB5NGBdLFtgbGAsYHg5YCxgaFJgXSxbYGFgLGB3ZDMyYCxgaFJgLGAwYCxgLTU0MDAwMDBgXSxbYGxgLGB4M2AsYHRgXSxbYGFgLGB3ZDMyYCxgaFJgLGAzY2Q0YCxgLTU0MDAwMDBgXSxbYGxgLGB4MmAsYHk0YF0sW2BsYCxgbGAsYHk0YF0sW2BsYCxgd2Q4YCxgeTNgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YGRhcmtlbkxlc3NgLHN0cm9rZTohMSxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGB4NWAsYHk2YF0sW2BhYCxgd2QzMmAsYGhSYCxgMGAsYC01NDAwMDAwYF0sW2BsYCxgeDNgLGB5MWBdLFtgYWAsYHdkMzJgLGBoUmAsYGNkNGAsYGNkMmBdLFtgbGAsYHg1YCxgeTJgXSxbYGNgXSxbYG1gLGB4NmAsYHk2YF0sW2BhYCxgd2QzMmAsYGhSYCxgY2QyYCxgY2Q0YF0sW2BsYCxgeDhgLGB5MWBdLFtgYWAsYHdkMzJgLGBoUmAsYGNkNGAsYC0xMDgwMDAwMGBdLFtgbGAsYHg2YCxgeTJgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBsYCxgYmBdLFtgbGAsYHdkOGAsYHkzYF0sW2BsYCxgbGAsYHk0YF0sW2BsYCxgeDJgLGB5NGBdLFtgbGAsYHgyYCxgaFJgXSxbYGFgLGB3ZDMyYCxgaFJgLGBjZDJgLGBjZDRgXSxbYGxgLGB4OGAsYHRgXSxbYGFgLGB3ZDMyYCxgaFJgLGAzY2Q0YCxgY2Q0YF0sW2BsYCxgeDlgLGB5NGBdLFtgbGAsYHg5YCxgeTRgXSxbYGxgLGByYCxgeTRgXSxbYGxgLGB4MTBgLGB5M2BdLFtgbGAsYHJgLGBiYF0sW2BsYCxgeDdgLGBiYF0sW2BhYCxgd2QzMmAsYGhSYCxgY2Q0YCxgY2QyYF0sW2BsYCxgeDhgLGB5MWBdLFtgYWAsYHdkMzJgLGBoUmAsYGNkNGAsYC0xMDgwMDAwMGBdLFtgbGAsYHgzYCxgeTJgXSxbYGFgLGB3ZDMyYCxgaFJgLGAzY2Q0YCxgLTEwODAwMDAwYF0sW2BsYCxgeDRgLGB5MWBdLFtgYWAsYHdkMzJgLGBoUmAsYDNjZDRgLGBjZDJgXSxbYGNgXSxbYG1gLGB4NWAsYHkyYF0sW2BsYCxgeDVgLGB5NmBdLFtgbWAsYHg2YCxgeTZgXSxbYGxgLGB4NmAsYHkyYF0sW2BtYCxgeDJgLGB5N2BdLFtgbGAsYHgyYCxgeTRgXSxbYG1gLGB4OWAsYHk0YF0sW2BsYCxgeDlgLGB5N2BdXX1dfSxyaWdodGFycm93OnthZGo6W1tgYWRqMWAsYHZhbCA1MDAwMGBdLFtgYWRqMmAsYHZhbCA1MDAwMGBdXSxnZDpbW2BtYXhBZGoyYCxgKi8gMTAwMDAwIHcgc3NgXSxbYGExYCxgcGluIDAgYWRqMSAxMDAwMDBgXSxbYGEyYCxgcGluIDAgYWRqMiBtYXhBZGoyYF0sW2BkeDFgLGAqLyBzcyBhMiAxMDAwMDBgXSxbYHgxYCxgKy0gciAwIGR4MWBdLFtgZHkxYCxgKi8gaCBhMSAyMDAwMDBgXSxbYHkxYCxgKy0gdmMgMCBkeTFgXSxbYHkyYCxgKy0gdmMgZHkxIDBgXSxbYGR4MmAsYCovIHkxIGR4MSBoZDJgXSxbYHgyYCxgKy0geDEgZHgyIDBgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHkxYF0sW2BsYCxgeDFgLGB5MWBdLFtgbGAsYHgxYCxgdGBdLFtgbGAsYHJgLGB2Y2BdLFtgbGAsYHgxYCxgYmBdLFtgbGAsYHgxYCxgeTJgXSxbYGxgLGBsYCxgeTJgXSxbYGNgXV19XX0scmlnaHRhcnJvd2NhbGxvdXQ6e2FkajpbW2BhZGoxYCxgdmFsIDI1MDAwYF0sW2BhZGoyYCxgdmFsIDI1MDAwYF0sW2BhZGozYCxgdmFsIDI1MDAwYF0sW2BhZGo0YCxgdmFsIDY0OTc3YF1dLGdkOltbYG1heEFkajJgLGAqLyA1MDAwMCBoIHNzYF0sW2BhMmAsYHBpbiAwIGFkajIgbWF4QWRqMmBdLFtgbWF4QWRqMWAsYCovIGEyIDIgMWBdLFtgYTFgLGBwaW4gMCBhZGoxIG1heEFkajFgXSxbYG1heEFkajNgLGAqLyAxMDAwMDAgdyBzc2BdLFtgYTNgLGBwaW4gMCBhZGozIG1heEFkajNgXSxbYHEyYCxgKi8gYTMgc3Mgd2BdLFtgbWF4QWRqNGAsYCstIDEwMDAwMCAwIHEyYF0sW2BhNGAsYHBpbiAwIGFkajQgbWF4QWRqNGBdLFtgZHkxYCxgKi8gc3MgYTIgMTAwMDAwYF0sW2BkeTJgLGAqLyBzcyBhMSAyMDAwMDBgXSxbYHkxYCxgKy0gdmMgMCBkeTFgXSxbYHkyYCxgKy0gdmMgMCBkeTJgXSxbYHkzYCxgKy0gdmMgZHkyIDBgXSxbYHk0YCxgKy0gdmMgZHkxIDBgXSxbYGR4M2AsYCovIHNzIGEzIDEwMDAwMGBdLFtgeDNgLGArLSByIDAgZHgzYF0sW2B4MmAsYCovIHcgYTQgMTAwMDAwYF0sW2B4MWAsYCovIHgyIDEgMmBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGBsYCxgdGBdLFtgbGAsYHgyYCxgdGBdLFtgbGAsYHgyYCxgeTJgXSxbYGxgLGB4M2AsYHkyYF0sW2BsYCxgeDNgLGB5MWBdLFtgbGAsYHJgLGB2Y2BdLFtgbGAsYHgzYCxgeTRgXSxbYGxgLGB4M2AsYHkzYF0sW2BsYCxgeDJgLGB5M2BdLFtgbGAsYHgyYCxgYmBdLFtgbGAsYGxgLGBiYF0sW2BjYF1dfV19LHJpZ2h0YnJhY2U6e2FkajpbW2BhZGoxYCxgdmFsIDgzMzNgXSxbYGFkajJgLGB2YWwgNTAwMDBgXV0sZ2Q6W1tgYTJgLGBwaW4gMCBhZGoyIDEwMDAwMGBdLFtgcTFgLGArLSAxMDAwMDAgMCBhMmBdLFtgcTJgLGBtaW4gcTEgYTJgXSxbYHEzYCxgKi8gcTIgMSAyYF0sW2BtYXhBZGoxYCxgKi8gcTMgaCBzc2BdLFtgYTFgLGBwaW4gMCBhZGoxIG1heEFkajFgXSxbYHkxYCxgKi8gc3MgYTEgMTAwMDAwYF0sW2B5M2AsYCovIGggYTIgMTAwMDAwYF0sW2B5MmAsYCstIHkzIDAgeTFgXSxbYHk0YCxgKy0gYiAwIHkxYF0sW2BkeDFgLGBjb3Mgd2QyIDI3MDAwMDBgXSxbYGR5MWAsYHNpbiB5MSAyNzAwMDAwYF0sW2BpcmAsYCstIGwgZHgxIDBgXSxbYGl0YCxgKy0geTEgMCBkeTFgXSxbYGliYCxgKy0gYiBkeTEgeTFgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgbGAsYHRgXSxbYGFgLGB3ZDJgLGB5MWAsYDNjZDRgLGBjZDRgXSxbYGxgLGBoY2AsYHkyYF0sW2BhYCxgd2QyYCxgeTFgLGBjZDJgLGAtNTQwMDAwMGBdLFtgYWAsYHdkMmAsYHkxYCxgM2NkNGAsYC01NDAwMDAwYF0sW2BsYCxgaGNgLGB5NGBdLFtgYWAsYHdkMmAsYHkxYCxgMGAsYGNkNGBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB0YF0sW2BhYCxgd2QyYCxgeTFgLGAzY2Q0YCxgY2Q0YF0sW2BsYCxgaGNgLGB5MmBdLFtgYWAsYHdkMmAsYHkxYCxgY2QyYCxgLTU0MDAwMDBgXSxbYGFgLGB3ZDJgLGB5MWAsYDNjZDRgLGAtNTQwMDAwMGBdLFtgbGAsYGhjYCxgeTRgXSxbYGFgLGB3ZDJgLGB5MWAsYDBgLGBjZDRgXV19XX0scmlnaHRicmFja2V0OnthZGo6W1tgYWRqYCxgdmFsIDgzMzNgXV0sZ2Q6W1tgbWF4QWRqYCxgKi8gNTAwMDAgaCBzc2BdLFtgYWAsYHBpbiAwIGFkaiBtYXhBZGpgXSxbYHkxYCxgKi8gc3MgYSAxMDAwMDBgXSxbYHkyYCxgKy0gYiAwIHkxYF0sW2BkeDFgLGBjb3MgdyAyNzAwMDAwYF0sW2BkeTFgLGBzaW4geTEgMjcwMDAwMGBdLFtgaXJgLGArLSBsIGR4MSAwYF0sW2BpdGAsYCstIHkxIDAgZHkxYF0sW2BpYmAsYCstIGIgZHkxIHkxYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiExLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYGxgLGB0YF0sW2BhYCxgd2AsYHkxYCxgM2NkNGAsYGNkNGBdLFtgbGAsYHJgLGB5MmBdLFtgYWAsYHdgLGB5MWAsYDBgLGBjZDRgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGBsYCxgdGBdLFtgYWAsYHdgLGB5MWAsYDNjZDRgLGBjZDRgXSxbYGxgLGByYCxgeTJgXSxbYGFgLGB3YCxgeTFgLGAwYCxgY2Q0YF1dfV19LHJvdW5kMXJlY3Q6e2FkajpbW2BhZGpgLGB2YWwgMTY2NjdgXV0sZ2Q6W1tgYWAsYHBpbiAwIGFkaiA1MDAwMGBdLFtgZHgxYCxgKi8gc3MgYSAxMDAwMDBgXSxbYHgxYCxgKy0gciAwIGR4MWBdLFtgaWR4YCxgKi8gZHgxIDI5Mjg5IDEwMDAwMGBdLFtgaXJgLGArLSByIDAgaWR4YF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB0YF0sW2BsYCxgeDFgLGB0YF0sW2BhYCxgZHgxYCxgZHgxYCxgM2NkNGAsYGNkNGBdLFtgbGAsYHJgLGBiYF0sW2BsYCxgbGAsYGJgXSxbYGNgXV19XX0scm91bmQyZGlhZ3JlY3Q6e2FkajpbW2BhZGoxYCxgdmFsIDE2NjY3YF0sW2BhZGoyYCxgdmFsIDBgXV0sZ2Q6W1tgYTFgLGBwaW4gMCBhZGoxIDUwMDAwYF0sW2BhMmAsYHBpbiAwIGFkajIgNTAwMDBgXSxbYHgxYCxgKi8gc3MgYTEgMTAwMDAwYF0sW2B5MWAsYCstIGIgMCB4MWBdLFtgYWAsYCovIHNzIGEyIDEwMDAwMGBdLFtgeDJgLGArLSByIDAgYWBdLFtgeTJgLGArLSBiIDAgYWBdLFtgZHgxYCxgKi8geDEgMjkyODkgMTAwMDAwYF0sW2BkeDJgLGAqLyBhIDI5Mjg5IDEwMDAwMGBdLFtgZGAsYCstIGR4MSAwIGR4MmBdLFtgZHhgLGA/OiBkIGR4MSBkeDJgXSxbYGlyYCxgKy0gciAwIGR4YF0sW2BpYmAsYCstIGIgMCBkeGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGB4MWAsYHRgXSxbYGxgLGB4MmAsYHRgXSxbYGFgLGBhYCxgYWAsYDNjZDRgLGBjZDRgXSxbYGxgLGByYCxgeTFgXSxbYGFgLGB4MWAsYHgxYCxgMGAsYGNkNGBdLFtgbGAsYGFgLGBiYF0sW2BhYCxgYWAsYGFgLGBjZDRgLGBjZDRgXSxbYGxgLGBsYCxgeDFgXSxbYGFgLGB4MWAsYHgxYCxgY2QyYCxgY2Q0YF0sW2BjYF1dfV19LHJvdW5kMnNhbWVyZWN0OnthZGo6W1tgYWRqMWAsYHZhbCAxNjY2N2BdLFtgYWRqMmAsYHZhbCAwYF1dLGdkOltbYGExYCxgcGluIDAgYWRqMSA1MDAwMGBdLFtgYTJgLGBwaW4gMCBhZGoyIDUwMDAwYF0sW2B0eDFgLGAqLyBzcyBhMSAxMDAwMDBgXSxbYHR4MmAsYCstIHIgMCB0eDFgXSxbYGJ4MWAsYCovIHNzIGEyIDEwMDAwMGBdLFtgYngyYCxgKy0gciAwIGJ4MWBdLFtgYnkxYCxgKy0gYiAwIGJ4MWBdLFtgZGAsYCstIHR4MSAwIGJ4MWBdLFtgdGR4YCxgKi8gdHgxIDI5Mjg5IDEwMDAwMGBdLFtgYmR4YCxgKi8gYngxIDI5Mjg5IDEwMDAwMGBdLFtgaWxgLGA/OiBkIHRkeCBiZHhgXSxbYGlyYCxgKy0gciAwIGlsYF0sW2BpYmAsYCstIGIgMCBiZHhgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgdHgxYCxgdGBdLFtgbGAsYHR4MmAsYHRgXSxbYGFgLGB0eDFgLGB0eDFgLGAzY2Q0YCxgY2Q0YF0sW2BsYCxgcmAsYGJ5MWBdLFtgYWAsYGJ4MWAsYGJ4MWAsYDBgLGBjZDRgXSxbYGxgLGBieDFgLGBiYF0sW2BhYCxgYngxYCxgYngxYCxgY2Q0YCxgY2Q0YF0sW2BsYCxgbGAsYHR4MWBdLFtgYWAsYHR4MWAsYHR4MWAsYGNkMmAsYGNkNGBdLFtgY2BdXX1dfSxyb3VuZHJlY3Q6e2FkajpbW2BhZGpgLGB2YWwgMTY2NjdgXV0sZ2Q6W1tgYWAsYHBpbiAwIGFkaiA1MDAwMGBdLFtgeDFgLGAqLyBzcyBhIDEwMDAwMGBdLFtgeDJgLGArLSByIDAgeDFgXSxbYHkyYCxgKy0gYiAwIHgxYF0sW2BpbGAsYCovIHgxIDI5Mjg5IDEwMDAwMGBdLFtgaXJgLGArLSByIDAgaWxgXSxbYGliYCxgKy0gYiAwIGlsYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB4MWBdLFtgYWAsYHgxYCxgeDFgLGBjZDJgLGBjZDRgXSxbYGxgLGB4MmAsYHRgXSxbYGFgLGB4MWAsYHgxYCxgM2NkNGAsYGNkNGBdLFtgbGAsYHJgLGB5MmBdLFtgYWAsYHgxYCxgeDFgLGAwYCxgY2Q0YF0sW2BsYCxgeDFgLGBiYF0sW2BhYCxgeDFgLGB4MWAsYGNkNGAsYGNkNGBdLFtgY2BdXX1dfSxydHRyaWFuZ2xlOnthZGo6W10sZ2Q6W1tgaXRgLGAqLyBoIDcgMTJgXSxbYGlyYCxgKi8gdyA3IDEyYF0sW2BpYmAsYCovIGggMTEgMTJgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYGJgXSxbYGxgLGBsYCxgdGBdLFtgbGAsYHJgLGBiYF0sW2BjYF1dfV19LHNtaWxleWZhY2U6e2FkajpbW2BhZGpgLGB2YWwgNDY1M2BdXSxnZDpbW2BhYCxgcGluIC00NjUzIGFkaiA0NjUzYF0sW2B4MWAsYCovIHcgNDk2OSAyMTY5OWBdLFtgeDJgLGAqLyB3IDYyMTUgMjE2MDBgXSxbYHgzYCxgKi8gdyAxMzEzNSAyMTYwMGBdLFtgeDRgLGAqLyB3IDE2NjQwIDIxNjAwYF0sW2B5MWAsYCovIGggNzU3MCAyMTYwMGBdLFtgeTNgLGAqLyBoIDE2NTE1IDIxNjAwYF0sW2BkeTJgLGAqLyBoIGEgMTAwMDAwYF0sW2B5MmAsYCstIHkzIDAgZHkyYF0sW2B5NGAsYCstIHkzIGR5MiAwYF0sW2BkeTNgLGAqLyBoIGEgNTAwMDBgXSxbYHk1YCxgKy0geTQgZHkzIDBgXSxbYGlkeGAsYGNvcyB3ZDIgMjcwMDAwMGBdLFtgaWR5YCxgc2luIGhkMiAyNzAwMDAwYF0sW2BpbGAsYCstIGhjIDAgaWR4YF0sW2BpcmAsYCstIGhjIGlkeCAwYF0sW2BpdGAsYCstIHZjIDAgaWR5YF0sW2BpYmAsYCstIHZjIGlkeSAwYF0sW2B3UmAsYCovIHcgMTEyNSAyMTYwMGBdLFtgaFJgLGAqLyBoIDExMjUgMjE2MDBgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITEsZXh0cnVzaW9uT2s6ITEsY21kczpbW2BtYCxgbGAsYHZjYF0sW2BhYCxgd2QyYCxgaGQyYCxgY2QyYCxgMjE2MDAwMDBgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YGRhcmtlbkxlc3NgLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGB4MmAsYHkxYF0sW2BhYCxgd1JgLGBoUmAsYGNkMmAsYDIxNjAwMDAwYF0sW2BtYCxgeDNgLGB5MWBdLFtgYWAsYHdSYCxgaFJgLGBjZDJgLGAyMTYwMDAwMGBdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYHgxYCxgeTJgXSxbYFFgLGBoY2AsYHk1YCxgeDRgLGB5MmBdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgbm9uZWAsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB2Y2BdLFtgYWAsYHdkMmAsYGhkMmAsYGNkMmAsYDIxNjAwMDAwYF0sW2BjYF1dfV19LHNuaXAxcmVjdDp7YWRqOltbYGFkamAsYHZhbCAxNjY2N2BdXSxnZDpbW2BhYCxgcGluIDAgYWRqIDUwMDAwYF0sW2BkeDFgLGAqLyBzcyBhIDEwMDAwMGBdLFtgeDFgLGArLSByIDAgZHgxYF0sW2BpdGAsYCovIGR4MSAxIDJgXSxbYGlyYCxgKy8geDEgciAyYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB0YF0sW2BsYCxgeDFgLGB0YF0sW2BsYCxgcmAsYGR4MWBdLFtgbGAsYHJgLGBiYF0sW2BsYCxgbGAsYGJgXSxbYGNgXV19XX0sc25pcDJkaWFncmVjdDp7YWRqOltbYGFkajFgLGB2YWwgMGBdLFtgYWRqMmAsYHZhbCAxNjY2N2BdXSxnZDpbW2BhMWAsYHBpbiAwIGFkajEgNTAwMDBgXSxbYGEyYCxgcGluIDAgYWRqMiA1MDAwMGBdLFtgbHgxYCxgKi8gc3MgYTEgMTAwMDAwYF0sW2BseDJgLGArLSByIDAgbHgxYF0sW2BseTFgLGArLSBiIDAgbHgxYF0sW2ByeDFgLGAqLyBzcyBhMiAxMDAwMDBgXSxbYHJ4MmAsYCstIHIgMCByeDFgXSxbYHJ5MWAsYCstIGIgMCByeDFgXSxbYGRgLGArLSBseDEgMCByeDFgXSxbYGR4YCxgPzogZCBseDEgcngxYF0sW2BpbGAsYCovIGR4IDEgMmBdLFtgaXJgLGArLSByIDAgaWxgXSxbYGliYCxgKy0gYiAwIGlsYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGx4MWAsYHRgXSxbYGxgLGByeDJgLGB0YF0sW2BsYCxgcmAsYHJ4MWBdLFtgbGAsYHJgLGBseTFgXSxbYGxgLGBseDJgLGBiYF0sW2BsYCxgcngxYCxgYmBdLFtgbGAsYGxgLGByeTFgXSxbYGxgLGBsYCxgbHgxYF0sW2BjYF1dfV19LHNuaXAyc2FtZXJlY3Q6e2FkajpbW2BhZGoxYCxgdmFsIDE2NjY3YF0sW2BhZGoyYCxgdmFsIDBgXV0sZ2Q6W1tgYTFgLGBwaW4gMCBhZGoxIDUwMDAwYF0sW2BhMmAsYHBpbiAwIGFkajIgNTAwMDBgXSxbYHR4MWAsYCovIHNzIGExIDEwMDAwMGBdLFtgdHgyYCxgKy0gciAwIHR4MWBdLFtgYngxYCxgKi8gc3MgYTIgMTAwMDAwYF0sW2BieDJgLGArLSByIDAgYngxYF0sW2BieTFgLGArLSBiIDAgYngxYF0sW2BkYCxgKy0gdHgxIDAgYngxYF0sW2BkeGAsYD86IGQgdHgxIGJ4MWBdLFtgaWxgLGAqLyBkeCAxIDJgXSxbYGlyYCxgKy0gciAwIGlsYF0sW2BpdGAsYCovIHR4MSAxIDJgXSxbYGliYCxgKy8gYnkxIGIgMmBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGB0eDFgLGB0YF0sW2BsYCxgdHgyYCxgdGBdLFtgbGAsYHJgLGB0eDFgXSxbYGxgLGByYCxgYnkxYF0sW2BsYCxgYngyYCxgYmBdLFtgbGAsYGJ4MWAsYGJgXSxbYGxgLGBsYCxgYnkxYF0sW2BsYCxgbGAsYHR4MWBdLFtgY2BdXX1dfSxzbmlwcm91bmRyZWN0OnthZGo6W1tgYWRqMWAsYHZhbCAxNjY2N2BdLFtgYWRqMmAsYHZhbCAxNjY2N2BdXSxnZDpbW2BhMWAsYHBpbiAwIGFkajEgNTAwMDBgXSxbYGEyYCxgcGluIDAgYWRqMiA1MDAwMGBdLFtgeDFgLGAqLyBzcyBhMSAxMDAwMDBgXSxbYGR4MmAsYCovIHNzIGEyIDEwMDAwMGBdLFtgeDJgLGArLSByIDAgZHgyYF0sW2BpbGAsYCovIHgxIDI5Mjg5IDEwMDAwMGBdLFtgaXJgLGArLyB4MiByIDJgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgeDFgLGB0YF0sW2BsYCxgeDJgLGB0YF0sW2BsYCxgcmAsYGR4MmBdLFtgbGAsYHJgLGBiYF0sW2BsYCxgbGAsYGJgXSxbYGxgLGBsYCxgeDFgXSxbYGFgLGB4MWAsYHgxYCxgY2QyYCxgY2Q0YF0sW2BjYF1dfV19LHNxdWFyZXRhYnM6e2FkajpbXSxnZDpbW2BtZGAsYG1vZCB3IGggMGBdLFtgZHhgLGAqLyAxIG1kIDIwYF0sW2B5MWAsYCstIDAgYiBkeGBdLFtgeDFgLGArLSAwIHIgZHhgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHRgXSxbYGxgLGBkeGAsYHRgXSxbYGxgLGBkeGAsYGR4YF0sW2BsYCxgbGAsYGR4YF0sW2BjYF1dfSx7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB5MWBdLFtgbGAsYGR4YCxgeTFgXSxbYGxgLGBkeGAsYGJgXSxbYGxgLGBsYCxgYmBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGB4MWAsYHRgXSxbYGxgLGByYCxgdGBdLFtgbGAsYHJgLGBkeGBdLFtgbGAsYHgxYCxgZHhgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgeDFgLGB5MWBdLFtgbGAsYHJgLGB5MWBdLFtgbGAsYHJgLGBiYF0sW2BsYCxgeDFgLGBiYF0sW2BjYF1dfV19LHN0YXIxMDp7YWRqOltbYGFkamAsYHZhbCA0MjUzM2BdLFtgaGZgLGB2YWwgMTA1MTQ2YF1dLGdkOltbYGFgLGBwaW4gMCBhZGogNTAwMDBgXSxbYHN3ZDJgLGAqLyB3ZDIgaGYgMTAwMDAwYF0sW2BkeDFgLGAqLyBzd2QyIDk1MTA2IDEwMDAwMGBdLFtgZHgyYCxgKi8gc3dkMiA1ODc3OSAxMDAwMDBgXSxbYHgxYCxgKy0gaGMgMCBkeDFgXSxbYHgyYCxgKy0gaGMgMCBkeDJgXSxbYHgzYCxgKy0gaGMgZHgyIDBgXSxbYHg0YCxgKy0gaGMgZHgxIDBgXSxbYGR5MWAsYCovIGhkMiA4MDkwMiAxMDAwMDBgXSxbYGR5MmAsYCovIGhkMiAzMDkwMiAxMDAwMDBgXSxbYHkxYCxgKy0gdmMgMCBkeTFgXSxbYHkyYCxgKy0gdmMgMCBkeTJgXSxbYHkzYCxgKy0gdmMgZHkyIDBgXSxbYHk0YCxgKy0gdmMgZHkxIDBgXSxbYGl3ZDJgLGAqLyBzd2QyIGEgNTAwMDBgXSxbYGloZDJgLGAqLyBoZDIgYSA1MDAwMGBdLFtgc2R4MWAsYCovIGl3ZDIgODA5MDIgMTAwMDAwYF0sW2BzZHgyYCxgKi8gaXdkMiAzMDkwMiAxMDAwMDBgXSxbYHNkeTFgLGAqLyBpaGQyIDk1MTA2IDEwMDAwMGBdLFtgc2R5MmAsYCovIGloZDIgNTg3NzkgMTAwMDAwYF0sW2BzeDFgLGArLSBoYyAwIGl3ZDJgXSxbYHN4MmAsYCstIGhjIDAgc2R4MWBdLFtgc3gzYCxgKy0gaGMgMCBzZHgyYF0sW2BzeDRgLGArLSBoYyBzZHgyIDBgXSxbYHN4NWAsYCstIGhjIHNkeDEgMGBdLFtgc3g2YCxgKy0gaGMgaXdkMiAwYF0sW2BzeTFgLGArLSB2YyAwIHNkeTFgXSxbYHN5MmAsYCstIHZjIDAgc2R5MmBdLFtgc3kzYCxgKy0gdmMgc2R5MiAwYF0sW2BzeTRgLGArLSB2YyBzZHkxIDBgXSxbYHlBZGpgLGArLSB2YyAwIGloZDJgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgeDFgLGB5MmBdLFtgbGAsYHN4MmAsYHN5MmBdLFtgbGAsYHgyYCxgeTFgXSxbYGxgLGBzeDNgLGBzeTFgXSxbYGxgLGBoY2AsYHRgXSxbYGxgLGBzeDRgLGBzeTFgXSxbYGxgLGB4M2AsYHkxYF0sW2BsYCxgc3g1YCxgc3kyYF0sW2BsYCxgeDRgLGB5MmBdLFtgbGAsYHN4NmAsYHZjYF0sW2BsYCxgeDRgLGB5M2BdLFtgbGAsYHN4NWAsYHN5M2BdLFtgbGAsYHgzYCxgeTRgXSxbYGxgLGBzeDRgLGBzeTRgXSxbYGxgLGBoY2AsYGJgXSxbYGxgLGBzeDNgLGBzeTRgXSxbYGxgLGB4MmAsYHk0YF0sW2BsYCxgc3gyYCxgc3kzYF0sW2BsYCxgeDFgLGB5M2BdLFtgbGAsYHN4MWAsYHZjYF0sW2BjYF1dfV19LHN0YXIxMjp7YWRqOltbYGFkamAsYHZhbCAzNzUwMGBdXSxnZDpbW2BhYCxgcGluIDAgYWRqIDUwMDAwYF0sW2BkeDFgLGBjb3Mgd2QyIDE4MDAwMDBgXSxbYGR5MWAsYHNpbiBoZDIgMzYwMDAwMGBdLFtgeDFgLGArLSBoYyAwIGR4MWBdLFtgeDNgLGAqLyB3IDMgNGBdLFtgeDRgLGArLSBoYyBkeDEgMGBdLFtgeTFgLGArLSB2YyAwIGR5MWBdLFtgeTNgLGAqLyBoIDMgNGBdLFtgeTRgLGArLSB2YyBkeTEgMGBdLFtgaXdkMmAsYCovIHdkMiBhIDUwMDAwYF0sW2BpaGQyYCxgKi8gaGQyIGEgNTAwMDBgXSxbYHNkeDFgLGBjb3MgaXdkMiA5MDAwMDBgXSxbYHNkeDJgLGBjb3MgaXdkMiAyNzAwMDAwYF0sW2BzZHgzYCxgY29zIGl3ZDIgNDUwMDAwMGBdLFtgc2R5MWAsYHNpbiBpaGQyIDQ1MDAwMDBgXSxbYHNkeTJgLGBzaW4gaWhkMiAyNzAwMDAwYF0sW2BzZHkzYCxgc2luIGloZDIgOTAwMDAwYF0sW2BzeDFgLGArLSBoYyAwIHNkeDFgXSxbYHN4MmAsYCstIGhjIDAgc2R4MmBdLFtgc3gzYCxgKy0gaGMgMCBzZHgzYF0sW2BzeDRgLGArLSBoYyBzZHgzIDBgXSxbYHN4NWAsYCstIGhjIHNkeDIgMGBdLFtgc3g2YCxgKy0gaGMgc2R4MSAwYF0sW2BzeTFgLGArLSB2YyAwIHNkeTFgXSxbYHN5MmAsYCstIHZjIDAgc2R5MmBdLFtgc3kzYCxgKy0gdmMgMCBzZHkzYF0sW2BzeTRgLGArLSB2YyBzZHkzIDBgXSxbYHN5NWAsYCstIHZjIHNkeTIgMGBdLFtgc3k2YCxgKy0gdmMgc2R5MSAwYF0sW2B5QWRqYCxgKy0gdmMgMCBpaGQyYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB2Y2BdLFtgbGAsYHN4MWAsYHN5M2BdLFtgbGAsYHgxYCxgaGQ0YF0sW2BsYCxgc3gyYCxgc3kyYF0sW2BsYCxgd2Q0YCxgeTFgXSxbYGxgLGBzeDNgLGBzeTFgXSxbYGxgLGBoY2AsYHRgXSxbYGxgLGBzeDRgLGBzeTFgXSxbYGxgLGB4M2AsYHkxYF0sW2BsYCxgc3g1YCxgc3kyYF0sW2BsYCxgeDRgLGBoZDRgXSxbYGxgLGBzeDZgLGBzeTNgXSxbYGxgLGByYCxgdmNgXSxbYGxgLGBzeDZgLGBzeTRgXSxbYGxgLGB4NGAsYHkzYF0sW2BsYCxgc3g1YCxgc3k1YF0sW2BsYCxgeDNgLGB5NGBdLFtgbGAsYHN4NGAsYHN5NmBdLFtgbGAsYGhjYCxgYmBdLFtgbGAsYHN4M2AsYHN5NmBdLFtgbGAsYHdkNGAsYHk0YF0sW2BsYCxgc3gyYCxgc3k1YF0sW2BsYCxgeDFgLGB5M2BdLFtgbGAsYHN4MWAsYHN5NGBdLFtgY2BdXX1dfSxzdGFyMTY6e2FkajpbW2BhZGpgLGB2YWwgMzc1MDBgXV0sZ2Q6W1tgYWAsYHBpbiAwIGFkaiA1MDAwMGBdLFtgZHgxYCxgKi8gd2QyIDkyMzg4IDEwMDAwMGBdLFtgZHgyYCxgKi8gd2QyIDcwNzExIDEwMDAwMGBdLFtgZHgzYCxgKi8gd2QyIDM4MjY4IDEwMDAwMGBdLFtgZHkxYCxgKi8gaGQyIDkyMzg4IDEwMDAwMGBdLFtgZHkyYCxgKi8gaGQyIDcwNzExIDEwMDAwMGBdLFtgZHkzYCxgKi8gaGQyIDM4MjY4IDEwMDAwMGBdLFtgeDFgLGArLSBoYyAwIGR4MWBdLFtgeDJgLGArLSBoYyAwIGR4MmBdLFtgeDNgLGArLSBoYyAwIGR4M2BdLFtgeDRgLGArLSBoYyBkeDMgMGBdLFtgeDVgLGArLSBoYyBkeDIgMGBdLFtgeDZgLGArLSBoYyBkeDEgMGBdLFtgeTFgLGArLSB2YyAwIGR5MWBdLFtgeTJgLGArLSB2YyAwIGR5MmBdLFtgeTNgLGArLSB2YyAwIGR5M2BdLFtgeTRgLGArLSB2YyBkeTMgMGBdLFtgeTVgLGArLSB2YyBkeTIgMGBdLFtgeTZgLGArLSB2YyBkeTEgMGBdLFtgaXdkMmAsYCovIHdkMiBhIDUwMDAwYF0sW2BpaGQyYCxgKi8gaGQyIGEgNTAwMDBgXSxbYHNkeDFgLGAqLyBpd2QyIDk4MDc5IDEwMDAwMGBdLFtgc2R4MmAsYCovIGl3ZDIgODMxNDcgMTAwMDAwYF0sW2BzZHgzYCxgKi8gaXdkMiA1NTU1NyAxMDAwMDBgXSxbYHNkeDRgLGAqLyBpd2QyIDE5NTA5IDEwMDAwMGBdLFtgc2R5MWAsYCovIGloZDIgOTgwNzkgMTAwMDAwYF0sW2BzZHkyYCxgKi8gaWhkMiA4MzE0NyAxMDAwMDBgXSxbYHNkeTNgLGAqLyBpaGQyIDU1NTU3IDEwMDAwMGBdLFtgc2R5NGAsYCovIGloZDIgMTk1MDkgMTAwMDAwYF0sW2BzeDFgLGArLSBoYyAwIHNkeDFgXSxbYHN4MmAsYCstIGhjIDAgc2R4MmBdLFtgc3gzYCxgKy0gaGMgMCBzZHgzYF0sW2BzeDRgLGArLSBoYyAwIHNkeDRgXSxbYHN4NWAsYCstIGhjIHNkeDQgMGBdLFtgc3g2YCxgKy0gaGMgc2R4MyAwYF0sW2BzeDdgLGArLSBoYyBzZHgyIDBgXSxbYHN4OGAsYCstIGhjIHNkeDEgMGBdLFtgc3kxYCxgKy0gdmMgMCBzZHkxYF0sW2BzeTJgLGArLSB2YyAwIHNkeTJgXSxbYHN5M2AsYCstIHZjIDAgc2R5M2BdLFtgc3k0YCxgKy0gdmMgMCBzZHk0YF0sW2BzeTVgLGArLSB2YyBzZHk0IDBgXSxbYHN5NmAsYCstIHZjIHNkeTMgMGBdLFtgc3k3YCxgKy0gdmMgc2R5MiAwYF0sW2BzeThgLGArLSB2YyBzZHkxIDBgXSxbYGlkeGAsYGNvcyBpd2QyIDI3MDAwMDBgXSxbYGlkeWAsYHNpbiBpaGQyIDI3MDAwMDBgXSxbYGlsYCxgKy0gaGMgMCBpZHhgXSxbYGl0YCxgKy0gdmMgMCBpZHlgXSxbYGlyYCxgKy0gaGMgaWR4IDBgXSxbYGliYCxgKy0gdmMgaWR5IDBgXSxbYHlBZGpgLGArLSB2YyAwIGloZDJgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHZjYF0sW2BsYCxgc3gxYCxgc3k0YF0sW2BsYCxgeDFgLGB5M2BdLFtgbGAsYHN4MmAsYHN5M2BdLFtgbGAsYHgyYCxgeTJgXSxbYGxgLGBzeDNgLGBzeTJgXSxbYGxgLGB4M2AsYHkxYF0sW2BsYCxgc3g0YCxgc3kxYF0sW2BsYCxgaGNgLGB0YF0sW2BsYCxgc3g1YCxgc3kxYF0sW2BsYCxgeDRgLGB5MWBdLFtgbGAsYHN4NmAsYHN5MmBdLFtgbGAsYHg1YCxgeTJgXSxbYGxgLGBzeDdgLGBzeTNgXSxbYGxgLGB4NmAsYHkzYF0sW2BsYCxgc3g4YCxgc3k0YF0sW2BsYCxgcmAsYHZjYF0sW2BsYCxgc3g4YCxgc3k1YF0sW2BsYCxgeDZgLGB5NGBdLFtgbGAsYHN4N2AsYHN5NmBdLFtgbGAsYHg1YCxgeTVgXSxbYGxgLGBzeDZgLGBzeTdgXSxbYGxgLGB4NGAsYHk2YF0sW2BsYCxgc3g1YCxgc3k4YF0sW2BsYCxgaGNgLGBiYF0sW2BsYCxgc3g0YCxgc3k4YF0sW2BsYCxgeDNgLGB5NmBdLFtgbGAsYHN4M2AsYHN5N2BdLFtgbGAsYHgyYCxgeTVgXSxbYGxgLGBzeDJgLGBzeTZgXSxbYGxgLGB4MWAsYHk0YF0sW2BsYCxgc3gxYCxgc3k1YF0sW2BjYF1dfV19LHN0YXIyNDp7YWRqOltbYGFkamAsYHZhbCAzNzUwMGBdXSxnZDpbW2BhYCxgcGluIDAgYWRqIDUwMDAwYF0sW2BkeDFgLGBjb3Mgd2QyIDkwMDAwMGBdLFtgZHgyYCxgY29zIHdkMiAxODAwMDAwYF0sW2BkeDNgLGBjb3Mgd2QyIDI3MDAwMDBgXSxbYGR4NGAsYHZhbCB3ZDRgXSxbYGR4NWAsYGNvcyB3ZDIgNDUwMDAwMGBdLFtgZHkxYCxgc2luIGhkMiA0NTAwMDAwYF0sW2BkeTJgLGBzaW4gaGQyIDM2MDAwMDBgXSxbYGR5M2AsYHNpbiBoZDIgMjcwMDAwMGBdLFtgZHk0YCxgdmFsIGhkNGBdLFtgZHk1YCxgc2luIGhkMiA5MDAwMDBgXSxbYHgxYCxgKy0gaGMgMCBkeDFgXSxbYHgyYCxgKy0gaGMgMCBkeDJgXSxbYHgzYCxgKy0gaGMgMCBkeDNgXSxbYHg0YCxgKy0gaGMgMCBkeDRgXSxbYHg1YCxgKy0gaGMgMCBkeDVgXSxbYHg2YCxgKy0gaGMgZHg1IDBgXSxbYHg3YCxgKy0gaGMgZHg0IDBgXSxbYHg4YCxgKy0gaGMgZHgzIDBgXSxbYHg5YCxgKy0gaGMgZHgyIDBgXSxbYHgxMGAsYCstIGhjIGR4MSAwYF0sW2B5MWAsYCstIHZjIDAgZHkxYF0sW2B5MmAsYCstIHZjIDAgZHkyYF0sW2B5M2AsYCstIHZjIDAgZHkzYF0sW2B5NGAsYCstIHZjIDAgZHk0YF0sW2B5NWAsYCstIHZjIDAgZHk1YF0sW2B5NmAsYCstIHZjIGR5NSAwYF0sW2B5N2AsYCstIHZjIGR5NCAwYF0sW2B5OGAsYCstIHZjIGR5MyAwYF0sW2B5OWAsYCstIHZjIGR5MiAwYF0sW2B5MTBgLGArLSB2YyBkeTEgMGBdLFtgaXdkMmAsYCovIHdkMiBhIDUwMDAwYF0sW2BpaGQyYCxgKi8gaGQyIGEgNTAwMDBgXSxbYHNkeDFgLGAqLyBpd2QyIDk5MTQ0IDEwMDAwMGBdLFtgc2R4MmAsYCovIGl3ZDIgOTIzODggMTAwMDAwYF0sW2BzZHgzYCxgKi8gaXdkMiA3OTMzNSAxMDAwMDBgXSxbYHNkeDRgLGAqLyBpd2QyIDYwODc2IDEwMDAwMGBdLFtgc2R4NWAsYCovIGl3ZDIgMzgyNjggMTAwMDAwYF0sW2BzZHg2YCxgKi8gaXdkMiAxMzA1MyAxMDAwMDBgXSxbYHNkeTFgLGAqLyBpaGQyIDk5MTQ0IDEwMDAwMGBdLFtgc2R5MmAsYCovIGloZDIgOTIzODggMTAwMDAwYF0sW2BzZHkzYCxgKi8gaWhkMiA3OTMzNSAxMDAwMDBgXSxbYHNkeTRgLGAqLyBpaGQyIDYwODc2IDEwMDAwMGBdLFtgc2R5NWAsYCovIGloZDIgMzgyNjggMTAwMDAwYF0sW2BzZHk2YCxgKi8gaWhkMiAxMzA1MyAxMDAwMDBgXSxbYHN4MWAsYCstIGhjIDAgc2R4MWBdLFtgc3gyYCxgKy0gaGMgMCBzZHgyYF0sW2BzeDNgLGArLSBoYyAwIHNkeDNgXSxbYHN4NGAsYCstIGhjIDAgc2R4NGBdLFtgc3g1YCxgKy0gaGMgMCBzZHg1YF0sW2BzeDZgLGArLSBoYyAwIHNkeDZgXSxbYHN4N2AsYCstIGhjIHNkeDYgMGBdLFtgc3g4YCxgKy0gaGMgc2R4NSAwYF0sW2BzeDlgLGArLSBoYyBzZHg0IDBgXSxbYHN4MTBgLGArLSBoYyBzZHgzIDBgXSxbYHN4MTFgLGArLSBoYyBzZHgyIDBgXSxbYHN4MTJgLGArLSBoYyBzZHgxIDBgXSxbYHN5MWAsYCstIHZjIDAgc2R5MWBdLFtgc3kyYCxgKy0gdmMgMCBzZHkyYF0sW2BzeTNgLGArLSB2YyAwIHNkeTNgXSxbYHN5NGAsYCstIHZjIDAgc2R5NGBdLFtgc3k1YCxgKy0gdmMgMCBzZHk1YF0sW2BzeTZgLGArLSB2YyAwIHNkeTZgXSxbYHN5N2AsYCstIHZjIHNkeTYgMGBdLFtgc3k4YCxgKy0gdmMgc2R5NSAwYF0sW2BzeTlgLGArLSB2YyBzZHk0IDBgXSxbYHN5MTBgLGArLSB2YyBzZHkzIDBgXSxbYHN5MTFgLGArLSB2YyBzZHkyIDBgXSxbYHN5MTJgLGArLSB2YyBzZHkxIDBgXSxbYGlkeGAsYGNvcyBpd2QyIDI3MDAwMDBgXSxbYGlkeWAsYHNpbiBpaGQyIDI3MDAwMDBgXSxbYGlsYCxgKy0gaGMgMCBpZHhgXSxbYGl0YCxgKy0gdmMgMCBpZHlgXSxbYGlyYCxgKy0gaGMgaWR4IDBgXSxbYGliYCxgKy0gdmMgaWR5IDBgXSxbYHlBZGpgLGArLSB2YyAwIGloZDJgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHZjYF0sW2BsYCxgc3gxYCxgc3k2YF0sW2BsYCxgeDFgLGB5NWBdLFtgbGAsYHN4MmAsYHN5NWBdLFtgbGAsYHgyYCxgeTRgXSxbYGxgLGBzeDNgLGBzeTRgXSxbYGxgLGB4M2AsYHkzYF0sW2BsYCxgc3g0YCxgc3kzYF0sW2BsYCxgeDRgLGB5MmBdLFtgbGAsYHN4NWAsYHN5MmBdLFtgbGAsYHg1YCxgeTFgXSxbYGxgLGBzeDZgLGBzeTFgXSxbYGxgLGBoY2AsYHRgXSxbYGxgLGBzeDdgLGBzeTFgXSxbYGxgLGB4NmAsYHkxYF0sW2BsYCxgc3g4YCxgc3kyYF0sW2BsYCxgeDdgLGB5MmBdLFtgbGAsYHN4OWAsYHN5M2BdLFtgbGAsYHg4YCxgeTNgXSxbYGxgLGBzeDEwYCxgc3k0YF0sW2BsYCxgeDlgLGB5NGBdLFtgbGAsYHN4MTFgLGBzeTVgXSxbYGxgLGB4MTBgLGB5NWBdLFtgbGAsYHN4MTJgLGBzeTZgXSxbYGxgLGByYCxgdmNgXSxbYGxgLGBzeDEyYCxgc3k3YF0sW2BsYCxgeDEwYCxgeTZgXSxbYGxgLGBzeDExYCxgc3k4YF0sW2BsYCxgeDlgLGB5N2BdLFtgbGAsYHN4MTBgLGBzeTlgXSxbYGxgLGB4OGAsYHk4YF0sW2BsYCxgc3g5YCxgc3kxMGBdLFtgbGAsYHg3YCxgeTlgXSxbYGxgLGBzeDhgLGBzeTExYF0sW2BsYCxgeDZgLGB5MTBgXSxbYGxgLGBzeDdgLGBzeTEyYF0sW2BsYCxgaGNgLGBiYF0sW2BsYCxgc3g2YCxgc3kxMmBdLFtgbGAsYHg1YCxgeTEwYF0sW2BsYCxgc3g1YCxgc3kxMWBdLFtgbGAsYHg0YCxgeTlgXSxbYGxgLGBzeDRgLGBzeTEwYF0sW2BsYCxgeDNgLGB5OGBdLFtgbGAsYHN4M2AsYHN5OWBdLFtgbGAsYHgyYCxgeTdgXSxbYGxgLGBzeDJgLGBzeThgXSxbYGxgLGB4MWAsYHk2YF0sW2BsYCxgc3gxYCxgc3k3YF0sW2BjYF1dfV19LHN0YXIzMjp7YWRqOltbYGFkamAsYHZhbCAzNzUwMGBdXSxnZDpbW2BhYCxgcGluIDAgYWRqIDUwMDAwYF0sW2BkeDFgLGAqLyB3ZDIgOTgwNzkgMTAwMDAwYF0sW2BkeDJgLGAqLyB3ZDIgOTIzODggMTAwMDAwYF0sW2BkeDNgLGAqLyB3ZDIgODMxNDcgMTAwMDAwYF0sW2BkeDRgLGBjb3Mgd2QyIDI3MDAwMDBgXSxbYGR4NWAsYCovIHdkMiA1NTU1NyAxMDAwMDBgXSxbYGR4NmAsYCovIHdkMiAzODI2OCAxMDAwMDBgXSxbYGR4N2AsYCovIHdkMiAxOTUwOSAxMDAwMDBgXSxbYGR5MWAsYCovIGhkMiA5ODA3OSAxMDAwMDBgXSxbYGR5MmAsYCovIGhkMiA5MjM4OCAxMDAwMDBgXSxbYGR5M2AsYCovIGhkMiA4MzE0NyAxMDAwMDBgXSxbYGR5NGAsYHNpbiBoZDIgMjcwMDAwMGBdLFtgZHk1YCxgKi8gaGQyIDU1NTU3IDEwMDAwMGBdLFtgZHk2YCxgKi8gaGQyIDM4MjY4IDEwMDAwMGBdLFtgZHk3YCxgKi8gaGQyIDE5NTA5IDEwMDAwMGBdLFtgeDFgLGArLSBoYyAwIGR4MWBdLFtgeDJgLGArLSBoYyAwIGR4MmBdLFtgeDNgLGArLSBoYyAwIGR4M2BdLFtgeDRgLGArLSBoYyAwIGR4NGBdLFtgeDVgLGArLSBoYyAwIGR4NWBdLFtgeDZgLGArLSBoYyAwIGR4NmBdLFtgeDdgLGArLSBoYyAwIGR4N2BdLFtgeDhgLGArLSBoYyBkeDcgMGBdLFtgeDlgLGArLSBoYyBkeDYgMGBdLFtgeDEwYCxgKy0gaGMgZHg1IDBgXSxbYHgxMWAsYCstIGhjIGR4NCAwYF0sW2B4MTJgLGArLSBoYyBkeDMgMGBdLFtgeDEzYCxgKy0gaGMgZHgyIDBgXSxbYHgxNGAsYCstIGhjIGR4MSAwYF0sW2B5MWAsYCstIHZjIDAgZHkxYF0sW2B5MmAsYCstIHZjIDAgZHkyYF0sW2B5M2AsYCstIHZjIDAgZHkzYF0sW2B5NGAsYCstIHZjIDAgZHk0YF0sW2B5NWAsYCstIHZjIDAgZHk1YF0sW2B5NmAsYCstIHZjIDAgZHk2YF0sW2B5N2AsYCstIHZjIDAgZHk3YF0sW2B5OGAsYCstIHZjIGR5NyAwYF0sW2B5OWAsYCstIHZjIGR5NiAwYF0sW2B5MTBgLGArLSB2YyBkeTUgMGBdLFtgeTExYCxgKy0gdmMgZHk0IDBgXSxbYHkxMmAsYCstIHZjIGR5MyAwYF0sW2B5MTNgLGArLSB2YyBkeTIgMGBdLFtgeTE0YCxgKy0gdmMgZHkxIDBgXSxbYGl3ZDJgLGAqLyB3ZDIgYSA1MDAwMGBdLFtgaWhkMmAsYCovIGhkMiBhIDUwMDAwYF0sW2BzZHgxYCxgKi8gaXdkMiA5OTUxOCAxMDAwMDBgXSxbYHNkeDJgLGAqLyBpd2QyIDk1Njk0IDEwMDAwMGBdLFtgc2R4M2AsYCovIGl3ZDIgODgxOTIgMTAwMDAwYF0sW2BzZHg0YCxgKi8gaXdkMiA3NzMwMSAxMDAwMDBgXSxbYHNkeDVgLGAqLyBpd2QyIDYzNDM5IDEwMDAwMGBdLFtgc2R4NmAsYCovIGl3ZDIgNDcxNDAgMTAwMDAwYF0sW2BzZHg3YCxgKi8gaXdkMiAyOTAyOCAxMDAwMDBgXSxbYHNkeDhgLGAqLyBpd2QyIDk4MDIgMTAwMDAwYF0sW2BzZHkxYCxgKi8gaWhkMiA5OTUxOCAxMDAwMDBgXSxbYHNkeTJgLGAqLyBpaGQyIDk1Njk0IDEwMDAwMGBdLFtgc2R5M2AsYCovIGloZDIgODgxOTIgMTAwMDAwYF0sW2BzZHk0YCxgKi8gaWhkMiA3NzMwMSAxMDAwMDBgXSxbYHNkeTVgLGAqLyBpaGQyIDYzNDM5IDEwMDAwMGBdLFtgc2R5NmAsYCovIGloZDIgNDcxNDAgMTAwMDAwYF0sW2BzZHk3YCxgKi8gaWhkMiAyOTAyOCAxMDAwMDBgXSxbYHNkeThgLGAqLyBpaGQyIDk4MDIgMTAwMDAwYF0sW2BzeDFgLGArLSBoYyAwIHNkeDFgXSxbYHN4MmAsYCstIGhjIDAgc2R4MmBdLFtgc3gzYCxgKy0gaGMgMCBzZHgzYF0sW2BzeDRgLGArLSBoYyAwIHNkeDRgXSxbYHN4NWAsYCstIGhjIDAgc2R4NWBdLFtgc3g2YCxgKy0gaGMgMCBzZHg2YF0sW2BzeDdgLGArLSBoYyAwIHNkeDdgXSxbYHN4OGAsYCstIGhjIDAgc2R4OGBdLFtgc3g5YCxgKy0gaGMgc2R4OCAwYF0sW2BzeDEwYCxgKy0gaGMgc2R4NyAwYF0sW2BzeDExYCxgKy0gaGMgc2R4NiAwYF0sW2BzeDEyYCxgKy0gaGMgc2R4NSAwYF0sW2BzeDEzYCxgKy0gaGMgc2R4NCAwYF0sW2BzeDE0YCxgKy0gaGMgc2R4MyAwYF0sW2BzeDE1YCxgKy0gaGMgc2R4MiAwYF0sW2BzeDE2YCxgKy0gaGMgc2R4MSAwYF0sW2BzeTFgLGArLSB2YyAwIHNkeTFgXSxbYHN5MmAsYCstIHZjIDAgc2R5MmBdLFtgc3kzYCxgKy0gdmMgMCBzZHkzYF0sW2BzeTRgLGArLSB2YyAwIHNkeTRgXSxbYHN5NWAsYCstIHZjIDAgc2R5NWBdLFtgc3k2YCxgKy0gdmMgMCBzZHk2YF0sW2BzeTdgLGArLSB2YyAwIHNkeTdgXSxbYHN5OGAsYCstIHZjIDAgc2R5OGBdLFtgc3k5YCxgKy0gdmMgc2R5OCAwYF0sW2BzeTEwYCxgKy0gdmMgc2R5NyAwYF0sW2BzeTExYCxgKy0gdmMgc2R5NiAwYF0sW2BzeTEyYCxgKy0gdmMgc2R5NSAwYF0sW2BzeTEzYCxgKy0gdmMgc2R5NCAwYF0sW2BzeTE0YCxgKy0gdmMgc2R5MyAwYF0sW2BzeTE1YCxgKy0gdmMgc2R5MiAwYF0sW2BzeTE2YCxgKy0gdmMgc2R5MSAwYF0sW2BpZHhgLGBjb3MgaXdkMiAyNzAwMDAwYF0sW2BpZHlgLGBzaW4gaWhkMiAyNzAwMDAwYF0sW2BpbGAsYCstIGhjIDAgaWR4YF0sW2BpdGAsYCstIHZjIDAgaWR5YF0sW2BpcmAsYCstIGhjIGlkeCAwYF0sW2BpYmAsYCstIHZjIGlkeSAwYF0sW2B5QWRqYCxgKy0gdmMgMCBpaGQyYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB2Y2BdLFtgbGAsYHN4MWAsYHN5OGBdLFtgbGAsYHgxYCxgeTdgXSxbYGxgLGBzeDJgLGBzeTdgXSxbYGxgLGB4MmAsYHk2YF0sW2BsYCxgc3gzYCxgc3k2YF0sW2BsYCxgeDNgLGB5NWBdLFtgbGAsYHN4NGAsYHN5NWBdLFtgbGAsYHg0YCxgeTRgXSxbYGxgLGBzeDVgLGBzeTRgXSxbYGxgLGB4NWAsYHkzYF0sW2BsYCxgc3g2YCxgc3kzYF0sW2BsYCxgeDZgLGB5MmBdLFtgbGAsYHN4N2AsYHN5MmBdLFtgbGAsYHg3YCxgeTFgXSxbYGxgLGBzeDhgLGBzeTFgXSxbYGxgLGBoY2AsYHRgXSxbYGxgLGBzeDlgLGBzeTFgXSxbYGxgLGB4OGAsYHkxYF0sW2BsYCxgc3gxMGAsYHN5MmBdLFtgbGAsYHg5YCxgeTJgXSxbYGxgLGBzeDExYCxgc3kzYF0sW2BsYCxgeDEwYCxgeTNgXSxbYGxgLGBzeDEyYCxgc3k0YF0sW2BsYCxgeDExYCxgeTRgXSxbYGxgLGBzeDEzYCxgc3k1YF0sW2BsYCxgeDEyYCxgeTVgXSxbYGxgLGBzeDE0YCxgc3k2YF0sW2BsYCxgeDEzYCxgeTZgXSxbYGxgLGBzeDE1YCxgc3k3YF0sW2BsYCxgeDE0YCxgeTdgXSxbYGxgLGBzeDE2YCxgc3k4YF0sW2BsYCxgcmAsYHZjYF0sW2BsYCxgc3gxNmAsYHN5OWBdLFtgbGAsYHgxNGAsYHk4YF0sW2BsYCxgc3gxNWAsYHN5MTBgXSxbYGxgLGB4MTNgLGB5OWBdLFtgbGAsYHN4MTRgLGBzeTExYF0sW2BsYCxgeDEyYCxgeTEwYF0sW2BsYCxgc3gxM2AsYHN5MTJgXSxbYGxgLGB4MTFgLGB5MTFgXSxbYGxgLGBzeDEyYCxgc3kxM2BdLFtgbGAsYHgxMGAsYHkxMmBdLFtgbGAsYHN4MTFgLGBzeTE0YF0sW2BsYCxgeDlgLGB5MTNgXSxbYGxgLGBzeDEwYCxgc3kxNWBdLFtgbGAsYHg4YCxgeTE0YF0sW2BsYCxgc3g5YCxgc3kxNmBdLFtgbGAsYGhjYCxgYmBdLFtgbGAsYHN4OGAsYHN5MTZgXSxbYGxgLGB4N2AsYHkxNGBdLFtgbGAsYHN4N2AsYHN5MTVgXSxbYGxgLGB4NmAsYHkxM2BdLFtgbGAsYHN4NmAsYHN5MTRgXSxbYGxgLGB4NWAsYHkxMmBdLFtgbGAsYHN4NWAsYHN5MTNgXSxbYGxgLGB4NGAsYHkxMWBdLFtgbGAsYHN4NGAsYHN5MTJgXSxbYGxgLGB4M2AsYHkxMGBdLFtgbGAsYHN4M2AsYHN5MTFgXSxbYGxgLGB4MmAsYHk5YF0sW2BsYCxgc3gyYCxgc3kxMGBdLFtgbGAsYHgxYCxgeThgXSxbYGxgLGBzeDFgLGBzeTlgXSxbYGNgXV19XX0sc3RhcjQ6e2FkajpbW2BhZGpgLGB2YWwgMTI1MDBgXV0sZ2Q6W1tgYWAsYHBpbiAwIGFkaiA1MDAwMGBdLFtgaXdkMmAsYCovIHdkMiBhIDUwMDAwYF0sW2BpaGQyYCxgKi8gaGQyIGEgNTAwMDBgXSxbYHNkeGAsYGNvcyBpd2QyIDI3MDAwMDBgXSxbYHNkeWAsYHNpbiBpaGQyIDI3MDAwMDBgXSxbYHN4MWAsYCstIGhjIDAgc2R4YF0sW2BzeDJgLGArLSBoYyBzZHggMGBdLFtgc3kxYCxgKy0gdmMgMCBzZHlgXSxbYHN5MmAsYCstIHZjIHNkeSAwYF0sW2B5QWRqYCxgKy0gdmMgMCBpaGQyYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB2Y2BdLFtgbGAsYHN4MWAsYHN5MWBdLFtgbGAsYGhjYCxgdGBdLFtgbGAsYHN4MmAsYHN5MWBdLFtgbGAsYHJgLGB2Y2BdLFtgbGAsYHN4MmAsYHN5MmBdLFtgbGAsYGhjYCxgYmBdLFtgbGAsYHN4MWAsYHN5MmBdLFtgY2BdXX1dfSxzdGFyNTp7YWRqOltbYGFkamAsYHZhbCAxOTA5OGBdLFtgaGZgLGB2YWwgMTA1MTQ2YF0sW2B2ZmAsYHZhbCAxMTA1NTdgXV0sZ2Q6W1tgYWAsYHBpbiAwIGFkaiA1MDAwMGBdLFtgc3dkMmAsYCovIHdkMiBoZiAxMDAwMDBgXSxbYHNoZDJgLGAqLyBoZDIgdmYgMTAwMDAwYF0sW2BzdmNgLGAqLyB2YyAgdmYgMTAwMDAwYF0sW2BkeDFgLGBjb3Mgc3dkMiAxMDgwMDAwYF0sW2BkeDJgLGBjb3Mgc3dkMiAxODM2MDAwMGBdLFtgZHkxYCxgc2luIHNoZDIgMTA4MDAwMGBdLFtgZHkyYCxgc2luIHNoZDIgMTgzNjAwMDBgXSxbYHgxYCxgKy0gaGMgMCBkeDFgXSxbYHgyYCxgKy0gaGMgMCBkeDJgXSxbYHgzYCxgKy0gaGMgZHgyIDBgXSxbYHg0YCxgKy0gaGMgZHgxIDBgXSxbYHkxYCxgKy0gc3ZjIDAgZHkxYF0sW2B5MmAsYCstIHN2YyAwIGR5MmBdLFtgaXdkMmAsYCovIHN3ZDIgYSA1MDAwMGBdLFtgaWhkMmAsYCovIHNoZDIgYSA1MDAwMGBdLFtgc2R4MWAsYGNvcyBpd2QyIDIwNTIwMDAwYF0sW2BzZHgyYCxgY29zIGl3ZDIgMzI0MDAwMGBdLFtgc2R5MWAsYHNpbiBpaGQyIDMyNDAwMDBgXSxbYHNkeTJgLGBzaW4gaWhkMiAyMDUyMDAwMGBdLFtgc3gxYCxgKy0gaGMgMCBzZHgxYF0sW2BzeDJgLGArLSBoYyAwIHNkeDJgXSxbYHN4M2AsYCstIGhjIHNkeDIgMGBdLFtgc3g0YCxgKy0gaGMgc2R4MSAwYF0sW2BzeTFgLGArLSBzdmMgMCBzZHkxYF0sW2BzeTJgLGArLSBzdmMgMCBzZHkyYF0sW2BzeTNgLGArLSBzdmMgaWhkMiAwYF0sW2B5QWRqYCxgKy0gc3ZjIDAgaWhkMmBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGB4MWAsYHkxYF0sW2BsYCxgc3gyYCxgc3kxYF0sW2BsYCxgaGNgLGB0YF0sW2BsYCxgc3gzYCxgc3kxYF0sW2BsYCxgeDRgLGB5MWBdLFtgbGAsYHN4NGAsYHN5MmBdLFtgbGAsYHgzYCxgeTJgXSxbYGxgLGBoY2AsYHN5M2BdLFtgbGAsYHgyYCxgeTJgXSxbYGxgLGBzeDFgLGBzeTJgXSxbYGNgXV19XX0sc3RhcjY6e2FkajpbW2BhZGpgLGB2YWwgMjg4NjhgXSxbYGhmYCxgdmFsIDExNTQ3MGBdXSxnZDpbW2BhYCxgcGluIDAgYWRqIDUwMDAwYF0sW2Bzd2QyYCxgKi8gd2QyIGhmIDEwMDAwMGBdLFtgZHgxYCxgY29zIHN3ZDIgMTgwMDAwMGBdLFtgeDFgLGArLSBoYyAwIGR4MWBdLFtgeDJgLGArLSBoYyBkeDEgMGBdLFtgeTJgLGArLSB2YyBoZDQgMGBdLFtgaXdkMmAsYCovIHN3ZDIgYSA1MDAwMGBdLFtgaWhkMmAsYCovIGhkMiBhIDUwMDAwYF0sW2BzZHgyYCxgKi8gaXdkMiAxIDJgXSxbYHN4MWAsYCstIGhjIDAgaXdkMmBdLFtgc3gyYCxgKy0gaGMgMCBzZHgyYF0sW2BzeDNgLGArLSBoYyBzZHgyIDBgXSxbYHN4NGAsYCstIGhjIGl3ZDIgMGBdLFtgc2R5MWAsYHNpbiBpaGQyIDM2MDAwMDBgXSxbYHN5MWAsYCstIHZjIDAgc2R5MWBdLFtgc3kyYCxgKy0gdmMgc2R5MSAwYF0sW2B5QWRqYCxgKy0gdmMgMCBpaGQyYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYHgxYCxgaGQ0YF0sW2BsYCxgc3gyYCxgc3kxYF0sW2BsYCxgaGNgLGB0YF0sW2BsYCxgc3gzYCxgc3kxYF0sW2BsYCxgeDJgLGBoZDRgXSxbYGxgLGBzeDRgLGB2Y2BdLFtgbGAsYHgyYCxgeTJgXSxbYGxgLGBzeDNgLGBzeTJgXSxbYGxgLGBoY2AsYGJgXSxbYGxgLGBzeDJgLGBzeTJgXSxbYGxgLGB4MWAsYHkyYF0sW2BsYCxgc3gxYCxgdmNgXSxbYGNgXV19XX0sc3Rhcjc6e2FkajpbW2BhZGpgLGB2YWwgMzQ2MDFgXSxbYGhmYCxgdmFsIDEwMjU3MmBdLFtgdmZgLGB2YWwgMTA1MjEwYF1dLGdkOltbYGFgLGBwaW4gMCBhZGogNTAwMDBgXSxbYHN3ZDJgLGAqLyB3ZDIgaGYgMTAwMDAwYF0sW2BzaGQyYCxgKi8gaGQyIHZmIDEwMDAwMGBdLFtgc3ZjYCxgKi8gdmMgIHZmIDEwMDAwMGBdLFtgZHgxYCxgKi8gc3dkMiA5NzQ5MyAxMDAwMDBgXSxbYGR4MmAsYCovIHN3ZDIgNzgxODMgMTAwMDAwYF0sW2BkeDNgLGAqLyBzd2QyIDQzMzg4IDEwMDAwMGBdLFtgZHkxYCxgKi8gc2hkMiA2MjM0OSAxMDAwMDBgXSxbYGR5MmAsYCovIHNoZDIgMjIyNTIgMTAwMDAwYF0sW2BkeTNgLGAqLyBzaGQyIDkwMDk3IDEwMDAwMGBdLFtgeDFgLGArLSBoYyAwIGR4MWBdLFtgeDJgLGArLSBoYyAwIGR4MmBdLFtgeDNgLGArLSBoYyAwIGR4M2BdLFtgeDRgLGArLSBoYyBkeDMgMGBdLFtgeDVgLGArLSBoYyBkeDIgMGBdLFtgeDZgLGArLSBoYyBkeDEgMGBdLFtgeTFgLGArLSBzdmMgMCBkeTFgXSxbYHkyYCxgKy0gc3ZjIGR5MiAwYF0sW2B5M2AsYCstIHN2YyBkeTMgMGBdLFtgaXdkMmAsYCovIHN3ZDIgYSA1MDAwMGBdLFtgaWhkMmAsYCovIHNoZDIgYSA1MDAwMGBdLFtgc2R4MWAsYCovIGl3ZDIgOTc0OTMgMTAwMDAwYF0sW2BzZHgyYCxgKi8gaXdkMiA3ODE4MyAxMDAwMDBgXSxbYHNkeDNgLGAqLyBpd2QyIDQzMzg4IDEwMDAwMGBdLFtgc3gxYCxgKy0gaGMgMCBzZHgxYF0sW2BzeDJgLGArLSBoYyAwIHNkeDJgXSxbYHN4M2AsYCstIGhjIDAgc2R4M2BdLFtgc3g0YCxgKy0gaGMgc2R4MyAwYF0sW2BzeDVgLGArLSBoYyBzZHgyIDBgXSxbYHN4NmAsYCstIGhjIHNkeDEgMGBdLFtgc2R5MWAsYCovIGloZDIgOTAwOTcgMTAwMDAwYF0sW2BzZHkyYCxgKi8gaWhkMiAyMjI1MiAxMDAwMDBgXSxbYHNkeTNgLGAqLyBpaGQyIDYyMzQ5IDEwMDAwMGBdLFtgc3kxYCxgKy0gc3ZjIDAgc2R5MWBdLFtgc3kyYCxgKy0gc3ZjIDAgc2R5MmBdLFtgc3kzYCxgKy0gc3ZjIHNkeTMgMGBdLFtgc3k0YCxgKy0gc3ZjIGloZDIgMGBdLFtgeUFkamAsYCstIHN2YyAwIGloZDJgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgeDFgLGB5MmBdLFtgbGAsYHN4MWAsYHN5MmBdLFtgbGAsYHgyYCxgeTFgXSxbYGxgLGBzeDNgLGBzeTFgXSxbYGxgLGBoY2AsYHRgXSxbYGxgLGBzeDRgLGBzeTFgXSxbYGxgLGB4NWAsYHkxYF0sW2BsYCxgc3g2YCxgc3kyYF0sW2BsYCxgeDZgLGB5MmBdLFtgbGAsYHN4NWAsYHN5M2BdLFtgbGAsYHg0YCxgeTNgXSxbYGxgLGBoY2AsYHN5NGBdLFtgbGAsYHgzYCxgeTNgXSxbYGxgLGBzeDJgLGBzeTNgXSxbYGNgXV19XX0sc3Rhcjg6e2FkajpbW2BhZGpgLGB2YWwgMzc1MDBgXV0sZ2Q6W1tgYWAsYHBpbiAwIGFkaiA1MDAwMGBdLFtgZHgxYCxgY29zIHdkMiAyNzAwMDAwYF0sW2B4MWAsYCstIGhjIDAgZHgxYF0sW2B4MmAsYCstIGhjIGR4MSAwYF0sW2BkeTFgLGBzaW4gaGQyIDI3MDAwMDBgXSxbYHkxYCxgKy0gdmMgMCBkeTFgXSxbYHkyYCxgKy0gdmMgZHkxIDBgXSxbYGl3ZDJgLGAqLyB3ZDIgYSA1MDAwMGBdLFtgaWhkMmAsYCovIGhkMiBhIDUwMDAwYF0sW2BzZHgxYCxgKi8gaXdkMiA5MjM4OCAxMDAwMDBgXSxbYHNkeDJgLGAqLyBpd2QyIDM4MjY4IDEwMDAwMGBdLFtgc2R5MWAsYCovIGloZDIgOTIzODggMTAwMDAwYF0sW2BzZHkyYCxgKi8gaWhkMiAzODI2OCAxMDAwMDBgXSxbYHN4MWAsYCstIGhjIDAgc2R4MWBdLFtgc3gyYCxgKy0gaGMgMCBzZHgyYF0sW2BzeDNgLGArLSBoYyBzZHgyIDBgXSxbYHN4NGAsYCstIGhjIHNkeDEgMGBdLFtgc3kxYCxgKy0gdmMgMCBzZHkxYF0sW2BzeTJgLGArLSB2YyAwIHNkeTJgXSxbYHN5M2AsYCstIHZjIHNkeTIgMGBdLFtgc3k0YCxgKy0gdmMgc2R5MSAwYF0sW2B5QWRqYCxgKy0gdmMgMCBpaGQyYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB2Y2BdLFtgbGAsYHN4MWAsYHN5MmBdLFtgbGAsYHgxYCxgeTFgXSxbYGxgLGBzeDJgLGBzeTFgXSxbYGxgLGBoY2AsYHRgXSxbYGxgLGBzeDNgLGBzeTFgXSxbYGxgLGB4MmAsYHkxYF0sW2BsYCxgc3g0YCxgc3kyYF0sW2BsYCxgcmAsYHZjYF0sW2BsYCxgc3g0YCxgc3kzYF0sW2BsYCxgeDJgLGB5MmBdLFtgbGAsYHN4M2AsYHN5NGBdLFtgbGAsYGhjYCxgYmBdLFtgbGAsYHN4MmAsYHN5NGBdLFtgbGAsYHgxYCxgeTJgXSxbYGxgLGBzeDFgLGBzeTNgXSxbYGNgXV19XX0sc3RyYWlnaHRjb25uZWN0b3IxOnthZGo6W10sZ2Q6W10scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGBsYCxgdGBdLFtgbGAsYHJgLGBiYF1dfV19LHN0cmlwZWRyaWdodGFycm93OnthZGo6W1tgYWRqMWAsYHZhbCA1MDAwMGBdLFtgYWRqMmAsYHZhbCA1MDAwMGBdXSxnZDpbW2BtYXhBZGoyYCxgKi8gODQzNzUgdyBzc2BdLFtgYTFgLGBwaW4gMCBhZGoxIDEwMDAwMGBdLFtgYTJgLGBwaW4gMCBhZGoyIG1heEFkajJgXSxbYHg0YCxgKi8gc3MgNSAzMmBdLFtgZHg1YCxgKi8gc3MgYTIgMTAwMDAwYF0sW2B4NWAsYCstIHIgMCBkeDVgXSxbYGR5MWAsYCovIGggYTEgMjAwMDAwYF0sW2B5MWAsYCstIHZjIDAgZHkxYF0sW2B5MmAsYCstIHZjIGR5MSAwYF0sW2BkeDZgLGAqLyBkeTEgZHg1IGhkMmBdLFtgeDZgLGArLSByIDAgZHg2YF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB5MWBdLFtgbGAsYHNzZDMyYCxgeTFgXSxbYGxgLGBzc2QzMmAsYHkyYF0sW2BsYCxgbGAsYHkyYF0sW2BjYF0sW2BtYCxgc3NkMTZgLGB5MWBdLFtgbGAsYHNzZDhgLGB5MWBdLFtgbGAsYHNzZDhgLGB5MmBdLFtgbGAsYHNzZDE2YCxgeTJgXSxbYGNgXSxbYG1gLGB4NGAsYHkxYF0sW2BsYCxgeDVgLGB5MWBdLFtgbGAsYHg1YCxgdGBdLFtgbGAsYHJgLGB2Y2BdLFtgbGAsYHg1YCxgYmBdLFtgbGAsYHg1YCxgeTJgXSxbYGxgLGB4NGAsYHkyYF0sW2BjYF1dfV19LHN1bjp7YWRqOltbYGFkamAsYHZhbCAyNTAwMGBdXSxnZDpbW2BhYCxgcGluIDEyNTAwIGFkaiA0Njg3NWBdLFtgZzBgLGArLSA1MDAwMCAwIGFgXSxbYGcxYCxgKi8gZzAgMzAyNzQgMzI3NjhgXSxbYGcyYCxgKi8gZzAgMTI1NDAgMzI3NjhgXSxbYGczYCxgKy0gZzEgNTAwMDAgMGBdLFtgZzRgLGArLSBnMiA1MDAwMCAwYF0sW2BnNWAsYCstIDUwMDAwIDAgZzFgXSxbYGc2YCxgKy0gNTAwMDAgMCBnMmBdLFtgZzdgLGAqLyBnMCAyMzE3MCAzMjc2OGBdLFtgZzhgLGArLSA1MDAwMCBnNyAwYF0sW2BnOWAsYCstIDUwMDAwIDAgZzdgXSxbYGcxMGAsYCovIGc1IDMgNGBdLFtgZzExYCxgKi8gZzYgMyA0YF0sW2BnMTJgLGArLSBnMTAgMzY2MiAwYF0sW2BnMTNgLGArLSBnMTEgMzY2MiAwYF0sW2BnMTRgLGArLSBnMTEgMTI1MDAgMGBdLFtgZzE1YCxgKy0gMTAwMDAwIDAgZzEwYF0sW2BnMTZgLGArLSAxMDAwMDAgMCBnMTJgXSxbYGcxN2AsYCstIDEwMDAwMCAwIGcxM2BdLFtgZzE4YCxgKy0gMTAwMDAwIDAgZzE0YF0sW2BveDFgLGAqLyB3IDE4NDM2IDIxNjAwYF0sW2BveTFgLGAqLyBoIDMxNjMgMjE2MDBgXSxbYG94MmAsYCovIHcgMzE2MyAyMTYwMGBdLFtgb3kyYCxgKi8gaCAxODQzNiAyMTYwMGBdLFtgeDhgLGAqLyB3IGc4IDEwMDAwMGBdLFtgeDlgLGAqLyB3IGc5IDEwMDAwMGBdLFtgeDEwYCxgKi8gdyBnMTAgMTAwMDAwYF0sW2B4MTJgLGAqLyB3IGcxMiAxMDAwMDBgXSxbYHgxM2AsYCovIHcgZzEzIDEwMDAwMGBdLFtgeDE0YCxgKi8gdyBnMTQgMTAwMDAwYF0sW2B4MTVgLGAqLyB3IGcxNSAxMDAwMDBgXSxbYHgxNmAsYCovIHcgZzE2IDEwMDAwMGBdLFtgeDE3YCxgKi8gdyBnMTcgMTAwMDAwYF0sW2B4MThgLGAqLyB3IGcxOCAxMDAwMDBgXSxbYHgxOWAsYCovIHcgYSAxMDAwMDBgXSxbYHdSYCxgKi8gdyBnMCAxMDAwMDBgXSxbYGhSYCxgKi8gaCBnMCAxMDAwMDBgXSxbYHk4YCxgKi8gaCBnOCAxMDAwMDBgXSxbYHk5YCxgKi8gaCBnOSAxMDAwMDBgXSxbYHkxMGAsYCovIGggZzEwIDEwMDAwMGBdLFtgeTEyYCxgKi8gaCBnMTIgMTAwMDAwYF0sW2B5MTNgLGAqLyBoIGcxMyAxMDAwMDBgXSxbYHkxNGAsYCovIGggZzE0IDEwMDAwMGBdLFtgeTE1YCxgKi8gaCBnMTUgMTAwMDAwYF0sW2B5MTZgLGAqLyBoIGcxNiAxMDAwMDBgXSxbYHkxN2AsYCovIGggZzE3IDEwMDAwMGBdLFtgeTE4YCxgKi8gaCBnMTggMTAwMDAwYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYHJgLGB2Y2BdLFtgbGAsYHgxNWAsYHkxOGBdLFtgbGAsYHgxNWAsYHkxNGBdLFtgY2BdLFtgbWAsYG94MWAsYG95MWBdLFtgbGAsYHgxNmAsYHkxM2BdLFtgbGAsYHgxN2AsYHkxMmBdLFtgY2BdLFtgbWAsYGhjYCxgdGBdLFtgbGAsYHgxOGAsYHkxMGBdLFtgbGAsYHgxNGAsYHkxMGBdLFtgY2BdLFtgbWAsYG94MmAsYG95MWBdLFtgbGAsYHgxM2AsYHkxMmBdLFtgbGAsYHgxMmAsYHkxM2BdLFtgY2BdLFtgbWAsYGxgLGB2Y2BdLFtgbGAsYHgxMGAsYHkxNGBdLFtgbGAsYHgxMGAsYHkxOGBdLFtgY2BdLFtgbWAsYG94MmAsYG95MmBdLFtgbGAsYHgxMmAsYHkxN2BdLFtgbGAsYHgxM2AsYHkxNmBdLFtgY2BdLFtgbWAsYGhjYCxgYmBdLFtgbGAsYHgxNGAsYHkxNWBdLFtgbGAsYHgxOGAsYHkxNWBdLFtgY2BdLFtgbWAsYG94MWAsYG95MmBdLFtgbGAsYHgxN2AsYHkxNmBdLFtgbGAsYHgxNmAsYHkxN2BdLFtgY2BdLFtgbWAsYHgxOWAsYHZjYF0sW2BhYCxgd1JgLGBoUmAsYGNkMmAsYDIxNjAwMDAwYF0sW2BjYF1dfV19LHN3b29zaGFycm93OnthZGo6W1tgYWRqMWAsYHZhbCAyNTAwMGBdLFtgYWRqMmAsYHZhbCAxNjY2N2BdXSxnZDpbW2BhMWAsYHBpbiAxIGFkajEgNzUwMDBgXSxbYG1heEFkajJgLGAqLyA3MDAwMCB3IHNzYF0sW2BhMmAsYHBpbiAwIGFkajIgbWF4QWRqMmBdLFtgYWQxYCxgKi8gaCBhMSAxMDAwMDBgXSxbYGFkMmAsYCovIHNzIGEyIDEwMDAwMGBdLFtgeEJgLGArLSByIDAgYWQyYF0sW2B5QmAsYCstIHQgc3NkOCAwYF0sW2BhbGZhYCxgKi8gY2Q0IDEgMTRgXSxbYGR4MGAsYHRhbiBzc2Q4IGFsZmFgXSxbYHhDYCxgKy0geEIgMCBkeDBgXSxbYGR4MWAsYHRhbiBhZDEgYWxmYWBdLFtgeUZgLGArLSB5QiBhZDEgMGBdLFtgeEZgLGArLSB4QiBkeDEgMGBdLFtgeEVgLGArLSB4RiBkeDAgMGBdLFtgeUVgLGArLSB5RiBzc2Q4IDBgXSxbYGR5MmAsYCstIHlFIDAgdGBdLFtgZHkyMmAsYCovIGR5MiAxIDJgXSxbYGR5M2AsYCovIGggMSAyMGBdLFtgeURgLGArLSB0IGR5MjIgZHkzYF0sW2BkeTRgLGAqLyBoZDYgMSAxYF0sW2B5UDFgLGArLSBoZDYgZHk0IDBgXSxbYHhQMWAsYHZhbCB3ZDZgXSxbYGR5NWAsYCovIGhkNiAxIDJgXSxbYHlQMmAsYCstIHlGIGR5NSAwYF0sW2B4UDJgLGB2YWwgd2Q0YF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGBiYF0sW2BRYCxgeFAxYCxgeVAxYCxgeEJgLGB5QmBdLFtgbGAsYHhDYCxgdGBdLFtgbGAsYHJgLGB5RGBdLFtgbGAsYHhFYCxgeUVgXSxbYGxgLGB4RmAsYHlGYF0sW2BRYCxgeFAyYCxgeVAyYCxgbGAsYGJgXSxbYGNgXV19XX0sdGVhcmRyb3A6e2FkajpbW2BhZGpgLGB2YWwgMTAwMDAwYF1dLGdkOltbYGFgLGBwaW4gMCBhZGogMjAwMDAwYF0sW2ByMmAsYHNxcnQgMmBdLFtgdHdgLGAqLyB3ZDIgcjIgMWBdLFtgdGhgLGAqLyBoZDIgcjIgMWBdLFtgc3dgLGAqLyB0dyBhIDEwMDAwMGBdLFtgc2hgLGAqLyB0aCBhIDEwMDAwMGBdLFtgZHgxYCxgY29zIHN3IDI3MDAwMDBgXSxbYGR5MWAsYHNpbiBzaCAyNzAwMDAwYF0sW2B4MWAsYCstIGhjIGR4MSAwYF0sW2B5MWAsYCstIHZjIDAgZHkxYF0sW2B4MmAsYCsvIGhjIHgxIDJgXSxbYHkyYCxgKy8gdmMgeTEgMmBdLFtgaWR4YCxgY29zIHdkMiAyNzAwMDAwYF0sW2BpZHlgLGBzaW4gaGQyIDI3MDAwMDBgXSxbYGlsYCxgKy0gaGMgMCBpZHhgXSxbYGlyYCxgKy0gaGMgaWR4IDBgXSxbYGl0YCxgKy0gdmMgMCBpZHlgXSxbYGliYCxgKy0gdmMgaWR5IDBgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHZjYF0sW2BhYCxgd2QyYCxgaGQyYCxgY2QyYCxgY2Q0YF0sW2BRYCxgeDJgLGB0YCxgeDFgLGB5MWBdLFtgUWAsYHJgLGB5MmAsYHJgLGB2Y2BdLFtgYWAsYHdkMmAsYGhkMmAsYDBgLGBjZDRgXSxbYGFgLGB3ZDJgLGBoZDJgLGBjZDRgLGBjZDRgXSxbYGNgXV19XX0sdHJhcGV6b2lkOnthZGo6W1tgYWRqYCxgdmFsIDI1MDAwYF1dLGdkOltbYG1heEFkamAsYCovIDUwMDAwIHcgc3NgXSxbYGFgLGBwaW4gMCBhZGogbWF4QWRqYF0sW2B4MWAsYCovIHNzIGEgMjAwMDAwYF0sW2B4MmAsYCovIHNzIGEgMTAwMDAwYF0sW2B4M2AsYCstIHIgMCB4MmBdLFtgeDRgLGArLSByIDAgeDFgXSxbYGlsYCxgKi8gd2QzIGEgbWF4QWRqYF0sW2BpdGAsYCovIGhkMyBhIG1heEFkamBdLFtgaXJgLGArLSByIDAgaWxgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYGJgXSxbYGxgLGB4MmAsYHRgXSxbYGxgLGB4M2AsYHRgXSxbYGxgLGByYCxgYmBdLFtgY2BdXX1dfSx0cmlhbmdsZTp7YWRqOltbYGFkamAsYHZhbCA1MDAwMGBdXSxnZDpbW2BhYCxgcGluIDAgYWRqIDEwMDAwMGBdLFtgeDFgLGAqLyB3IGEgMjAwMDAwYF0sW2B4MmAsYCovIHcgYSAxMDAwMDBgXSxbYHgzYCxgKy0geDEgd2QyIDBgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYGJgXSxbYGxgLGB4MmAsYHRgXSxbYGxgLGByYCxgYmBdLFtgY2BdXX1dfSx1cGFycm93Y2FsbG91dDp7YWRqOltbYGFkajFgLGB2YWwgMjUwMDBgXSxbYGFkajJgLGB2YWwgMjUwMDBgXSxbYGFkajNgLGB2YWwgMjUwMDBgXSxbYGFkajRgLGB2YWwgNjQ5NzdgXV0sZ2Q6W1tgbWF4QWRqMmAsYCovIDUwMDAwIHcgc3NgXSxbYGEyYCxgcGluIDAgYWRqMiBtYXhBZGoyYF0sW2BtYXhBZGoxYCxgKi8gYTIgMiAxYF0sW2BhMWAsYHBpbiAwIGFkajEgbWF4QWRqMWBdLFtgbWF4QWRqM2AsYCovIDEwMDAwMCBoIHNzYF0sW2BhM2AsYHBpbiAwIGFkajMgbWF4QWRqM2BdLFtgcTJgLGAqLyBhMyBzcyBoYF0sW2BtYXhBZGo0YCxgKy0gMTAwMDAwIDAgcTJgXSxbYGE0YCxgcGluIDAgYWRqNCBtYXhBZGo0YF0sW2BkeDFgLGAqLyBzcyBhMiAxMDAwMDBgXSxbYGR4MmAsYCovIHNzIGExIDIwMDAwMGBdLFtgeDFgLGArLSBoYyAwIGR4MWBdLFtgeDJgLGArLSBoYyAwIGR4MmBdLFtgeDNgLGArLSBoYyBkeDIgMGBdLFtgeDRgLGArLSBoYyBkeDEgMGBdLFtgeTFgLGAqLyBzcyBhMyAxMDAwMDBgXSxbYGR5MmAsYCovIGggYTQgMTAwMDAwYF0sW2B5MmAsYCstIGIgMCBkeTJgXSxbYHkzYCxgKy8geTIgYiAyYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB5MmBdLFtgbGAsYHgyYCxgeTJgXSxbYGxgLGB4MmAsYHkxYF0sW2BsYCxgeDFgLGB5MWBdLFtgbGAsYGhjYCxgdGBdLFtgbGAsYHg0YCxgeTFgXSxbYGxgLGB4M2AsYHkxYF0sW2BsYCxgeDNgLGB5MmBdLFtgbGAsYHJgLGB5MmBdLFtgbGAsYHJgLGBiYF0sW2BsYCxgbGAsYGJgXSxbYGNgXV19XX0sdXBkb3duYXJyb3c6e2FkajpbW2BhZGoxYCxgdmFsIDUwMDAwYF0sW2BhZGoyYCxgdmFsIDUwMDAwYF1dLGdkOltbYG1heEFkajJgLGAqLyA1MDAwMCBoIHNzYF0sW2BhMWAsYHBpbiAwIGFkajEgMTAwMDAwYF0sW2BhMmAsYHBpbiAwIGFkajIgbWF4QWRqMmBdLFtgeTJgLGAqLyBzcyBhMiAxMDAwMDBgXSxbYHkzYCxgKy0gYiAwIHkyYF0sW2BkeDFgLGAqLyB3IGExIDIwMDAwMGBdLFtgeDFgLGArLSBoYyAwIGR4MWBdLFtgeDJgLGArLSBoYyBkeDEgMGBdLFtgZHkxYCxgKi8geDEgeTIgd2QyYF0sW2B5MWAsYCstIHkyIDAgZHkxYF0sW2B5NGAsYCstIHkzIGR5MSAwYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB5MmBdLFtgbGAsYGhjYCxgdGBdLFtgbGAsYHJgLGB5MmBdLFtgbGAsYHgyYCxgeTJgXSxbYGxgLGB4MmAsYHkzYF0sW2BsYCxgcmAsYHkzYF0sW2BsYCxgaGNgLGBiYF0sW2BsYCxgbGAsYHkzYF0sW2BsYCxgeDFgLGB5M2BdLFtgbGAsYHgxYCxgeTJgXSxbYGNgXV19XX0sdXBhcnJvdzp7YWRqOltbYGFkajFgLGB2YWwgNTAwMDBgXSxbYGFkajJgLGB2YWwgNTAwMDBgXV0sZ2Q6W1tgbWF4QWRqMmAsYCovIDEwMDAwMCBoIHNzYF0sW2BhMWAsYHBpbiAwIGFkajEgMTAwMDAwYF0sW2BhMmAsYHBpbiAwIGFkajIgbWF4QWRqMmBdLFtgZHkyYCxgKi8gc3MgYTIgMTAwMDAwYF0sW2B5MmAsYCstIHQgZHkyIDBgXSxbYGR4MWAsYCovIHcgYTEgMjAwMDAwYF0sW2B4MWAsYCstIGhjIDAgZHgxYF0sW2B4MmAsYCstIGhjIGR4MSAwYF0sW2BkeTFgLGAqLyB4MSBkeTIgd2QyYF0sW2B5MWAsYCstIHkyICAwIGR5MWBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGBsYCxgeTJgXSxbYGxgLGBoY2AsYHRgXSxbYGxgLGByYCxgeTJgXSxbYGxgLGB4MmAsYHkyYF0sW2BsYCxgeDJgLGBiYF0sW2BsYCxgeDFgLGBiYF0sW2BsYCxgeDFgLGB5MmBdLFtgY2BdXX1dfSx1cGRvd25hcnJvd2NhbGxvdXQ6e2FkajpbW2BhZGoxYCxgdmFsIDI1MDAwYF0sW2BhZGoyYCxgdmFsIDI1MDAwYF0sW2BhZGozYCxgdmFsIDI1MDAwYF0sW2BhZGo0YCxgdmFsIDQ4MTIzYF1dLGdkOltbYG1heEFkajJgLGAqLyA1MDAwMCB3IHNzYF0sW2BhMmAsYHBpbiAwIGFkajIgbWF4QWRqMmBdLFtgbWF4QWRqMWAsYCovIGEyIDIgMWBdLFtgYTFgLGBwaW4gMCBhZGoxIG1heEFkajFgXSxbYG1heEFkajNgLGAqLyA1MDAwMCBoIHNzYF0sW2BhM2AsYHBpbiAwIGFkajMgbWF4QWRqM2BdLFtgcTJgLGAqLyBhMyBzcyBoZDJgXSxbYG1heEFkajRgLGArLSAxMDAwMDAgMCBxMmBdLFtgYTRgLGBwaW4gMCBhZGo0IG1heEFkajRgXSxbYGR4MWAsYCovIHNzIGEyIDEwMDAwMGBdLFtgZHgyYCxgKi8gc3MgYTEgMjAwMDAwYF0sW2B4MWAsYCstIGhjIDAgZHgxYF0sW2B4MmAsYCstIGhjIDAgZHgyYF0sW2B4M2AsYCstIGhjIGR4MiAwYF0sW2B4NGAsYCstIGhjIGR4MSAwYF0sW2B5MWAsYCovIHNzIGEzIDEwMDAwMGBdLFtgeTRgLGArLSBiIDAgeTFgXSxbYGR5MmAsYCovIGggYTQgMjAwMDAwYF0sW2B5MmAsYCstIHZjIDAgZHkyYF0sW2B5M2AsYCstIHZjIGR5MiAwYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB5MmBdLFtgbGAsYHgyYCxgeTJgXSxbYGxgLGB4MmAsYHkxYF0sW2BsYCxgeDFgLGB5MWBdLFtgbGAsYGhjYCxgdGBdLFtgbGAsYHg0YCxgeTFgXSxbYGxgLGB4M2AsYHkxYF0sW2BsYCxgeDNgLGB5MmBdLFtgbGAsYHJgLGB5MmBdLFtgbGAsYHJgLGB5M2BdLFtgbGAsYHgzYCxgeTNgXSxbYGxgLGB4M2AsYHk0YF0sW2BsYCxgeDRgLGB5NGBdLFtgbGAsYGhjYCxgYmBdLFtgbGAsYHgxYCxgeTRgXSxbYGxgLGB4MmAsYHk0YF0sW2BsYCxgeDJgLGB5M2BdLFtgbGAsYGxgLGB5M2BdLFtgY2BdXX1dfSx1dHVybmFycm93OnthZGo6W1tgYWRqMWAsYHZhbCAyNTAwMGBdLFtgYWRqMmAsYHZhbCAyNTAwMGBdLFtgYWRqM2AsYHZhbCAyNTAwMGBdLFtgYWRqNGAsYHZhbCA0Mzc1MGBdLFtgYWRqNWAsYHZhbCA3NTAwMGBdXSxnZDpbW2BhMmAsYHBpbiAwIGFkajIgMjUwMDBgXSxbYG1heEFkajFgLGAqLyBhMiAyIDFgXSxbYGExYCxgcGluIDAgYWRqMSBtYXhBZGoxYF0sW2BxMmAsYCovIGExIHNzIGhgXSxbYHEzYCxgKy0gMTAwMDAwIDAgcTJgXSxbYG1heEFkajNgLGAqLyBxMyBoIHNzYF0sW2BhM2AsYHBpbiAwIGFkajMgbWF4QWRqM2BdLFtgcTFgLGArLSBhMyBhMSAwYF0sW2BtaW5BZGo1YCxgKi8gcTEgc3MgaGBdLFtgYTVgLGBwaW4gbWluQWRqNSBhZGo1IDEwMDAwMGBdLFtgdGhgLGAqLyBzcyBhMSAxMDAwMDBgXSxbYGF3MmAsYCovIHNzIGEyIDEwMDAwMGBdLFtgdGgyYCxgKi8gdGggMSAyYF0sW2BkaDJgLGArLSBhdzIgMCB0aDJgXSxbYHk1YCxgKi8gaCBhNSAxMDAwMDBgXSxbYGFoYCxgKi8gc3MgYTMgMTAwMDAwYF0sW2B5NGAsYCstIHk1IDAgYWhgXSxbYHg5YCxgKy0gciAwIGRoMmBdLFtgYndgLGAqLyB4OSAxIDJgXSxbYGJzYCxgbWluIGJ3IHk0YF0sW2BtYXhBZGo0YCxgKi8gYnMgMTAwMDAwIHNzYF0sW2BhNGAsYHBpbiAwIGFkajQgbWF4QWRqNGBdLFtgYmRgLGAqLyBzcyBhNCAxMDAwMDBgXSxbYGJkM2AsYCstIGJkIDAgdGhgXSxbYGJkMmAsYG1heCBiZDMgMGBdLFtgeDNgLGArLSB0aCBiZDIgMGBdLFtgeDhgLGArLSByIDAgYXcyYF0sW2B4NmAsYCstIHg4IDAgYXcyYF0sW2B4N2AsYCstIHg2IGRoMiAwYF0sW2B4NGAsYCstIHg5IDAgYmRgXSxbYHg1YCxgKy0geDcgMCBiZDJgXSxbYGN4YCxgKy8gdGggeDcgMmBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGBsYCxgYmBdLFtgbGAsYGxgLGBiZGBdLFtgYWAsYGJkYCxgYmRgLGBjZDJgLGBjZDRgXSxbYGxgLGB4NGAsYHRgXSxbYGFgLGBiZGAsYGJkYCxgM2NkNGAsYGNkNGBdLFtgbGAsYHg5YCxgeTRgXSxbYGxgLGByYCxgeTRgXSxbYGxgLGB4OGAsYHk1YF0sW2BsYCxgeDZgLGB5NGBdLFtgbGAsYHg3YCxgeTRgXSxbYGxgLGB4N2AsYHgzYF0sW2BhYCxgYmQyYCxgYmQyYCxgMGAsYC01NDAwMDAwYF0sW2BsYCxgeDNgLGB0aGBdLFtgYWAsYGJkMmAsYGJkMmAsYDNjZDRgLGAtNTQwMDAwMGBdLFtgbGAsYHRoYCxgYmBdLFtgY2BdXX1dfSx2ZXJ0aWNhbHNjcm9sbDp7YWRqOltbYGFkamAsYHZhbCAxMjUwMGBdXSxnZDpbW2BhYCxgcGluIDAgYWRqIDI1MDAwYF0sW2BjaGAsYCovIHNzIGEgMTAwMDAwYF0sW2BjaDJgLGAqLyBjaCAxIDJgXSxbYGNoNGAsYCovIGNoIDEgNGBdLFtgeDNgLGArLSBjaCBjaDIgMGBdLFtgeDRgLGArLSBjaCBjaCAwYF0sW2B4NmAsYCstIHIgMCBjaGBdLFtgeDdgLGArLSByIDAgY2gyYF0sW2B4NWAsYCstIHg2IDAgY2gyYF0sW2B5M2AsYCstIGIgMCBjaGBdLFtgeTRgLGArLSBiIDAgY2gyYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiExLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYGNoMmAsYGJgXSxbYGFgLGBjaDJgLGBjaDJgLGBjZDRgLGAtNTQwMDAwMGBdLFtgbGAsYGNoMmAsYHk0YF0sW2BhYCxgY2g0YCxgY2g0YCxgY2Q0YCxgLTEwODAwMDAwYF0sW2BsYCxgY2hgLGB5M2BdLFtgbGAsYGNoYCxgY2gyYF0sW2BhYCxgY2gyYCxgY2gyYCxgY2QyYCxgY2Q0YF0sW2BsYCxgeDdgLGB0YF0sW2BhYCxgY2gyYCxgY2gyYCxgM2NkNGAsYGNkMmBdLFtgbGAsYHg2YCxgY2hgXSxbYGxgLGB4NmAsYHk0YF0sW2BhYCxgY2gyYCxgY2gyYCxgMGAsYGNkNGBdLFtgY2BdLFtgbWAsYHg0YCxgY2gyYF0sW2BhYCxgY2gyYCxgY2gyYCxgMGAsYGNkNGBdLFtgYWAsYGNoNGAsYGNoNGAsYGNkNGAsYGNkMmBdLFtgY2BdXX0se3c6bnVsbCxoOm51bGwsZmlsbDpgZGFya2VuTGVzc2Asc3Ryb2tlOiExLGV4dHJ1c2lvbk9rOiExLGNtZHM6W1tgbWAsYHg0YCxgY2gyYF0sW2BhYCxgY2gyYCxgY2gyYCxgMGAsYGNkNGBdLFtgYWAsYGNoNGAsYGNoNGAsYGNkNGAsYGNkMmBdLFtgY2BdLFtgbWAsYGNoYCxgeTRgXSxbYGFgLGBjaDJgLGBjaDJgLGAwYCxgM2NkNGBdLFtgYWAsYGNoNGAsYGNoNGAsYDNjZDRgLGBjZDJgXSxbYGNgXV19LHt3Om51bGwsaDpudWxsLGZpbGw6YG5vbmVgLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBjaGAsYHkzYF0sW2BsYCxgY2hgLGBjaDJgXSxbYGFgLGBjaDJgLGBjaDJgLGBjZDJgLGBjZDRgXSxbYGxgLGB4N2AsYHRgXSxbYGFgLGBjaDJgLGBjaDJgLGAzY2Q0YCxgY2QyYF0sW2BsYCxgeDZgLGBjaGBdLFtgbGAsYHg2YCxgeTRgXSxbYGFgLGBjaDJgLGBjaDJgLGAwYCxgY2Q0YF0sW2BsYCxgY2gyYCxgYmBdLFtgYWAsYGNoMmAsYGNoMmAsYGNkNGAsYGNkMmBdLFtgY2BdLFtgbWAsYHgzYCxgdGBdLFtgYWAsYGNoMmAsYGNoMmAsYDNjZDRgLGBjZDJgXSxbYGFgLGBjaDRgLGBjaDRgLGBjZDRgLGBjZDJgXSxbYGxgLGB4NGAsYGNoMmBdLFtgbWAsYHg2YCxgY2hgXSxbYGxgLGB4M2AsYGNoYF0sW2BtYCxgY2gyYCxgeTNgXSxbYGFgLGBjaDRgLGBjaDRgLGAzY2Q0YCxgY2QyYF0sW2BsYCxgY2hgLGB5NGBdLFtgbWAsYGNoMmAsYGJgXSxbYGFgLGBjaDJgLGBjaDJgLGBjZDRgLGAtNTQwMDAwMGBdLFtgbGAsYGNoYCxgeTNgXV19XX0sd2F2ZTp7YWRqOltbYGFkajFgLGB2YWwgMTI1MDBgXSxbYGFkajJgLGB2YWwgMGBdXSxnZDpbW2BhMWAsYHBpbiAwIGFkajEgMjAwMDBgXSxbYGEyYCxgcGluIC0xMDAwMCBhZGoyIDEwMDAwYF0sW2B5MWAsYCovIGggYTEgMTAwMDAwYF0sW2BkeTJgLGAqLyB5MSAxMCAzYF0sW2B5MmAsYCstIHkxIDAgZHkyYF0sW2B5M2AsYCstIHkxIGR5MiAwYF0sW2B5NGAsYCstIGIgMCB5MWBdLFtgeTVgLGArLSB5NCAwIGR5MmBdLFtgeTZgLGArLSB5NCBkeTIgMGBdLFtgZHgxYCxgKi8gdyBhMiAxMDAwMDBgXSxbYG9mMmAsYCovIHcgYTIgNTAwMDBgXSxbYHgxYCxgYWJzIGR4MWBdLFtgZHgyYCxgPzogb2YyIDAgb2YyYF0sW2B4MmAsYCstIGwgMCBkeDJgXSxbYGR4NWAsYD86IG9mMiBvZjIgMGBdLFtgeDVgLGArLSByIDAgZHg1YF0sW2BkeDNgLGArLyBkeDIgeDUgM2BdLFtgeDNgLGArLSB4MiBkeDMgMGBdLFtgeDRgLGArLyB4MyB4NSAyYF0sW2B4NmAsYCstIGwgZHg1IDBgXSxbYHgxMGAsYCstIHIgZHgyIDBgXSxbYHg3YCxgKy0geDYgZHgzIDBgXSxbYHg4YCxgKy8geDcgeDEwIDJgXSxbYHg5YCxgKy0gciAwIHgxYF0sW2B4QWRqYCxgKy0gaGMgZHgxIDBgXSxbYHhBZGoyYCxgKy0gaGMgMCBkeDFgXSxbYGlsYCxgbWF4IHgyIHg2YF0sW2BpcmAsYG1pbiB4NSB4MTBgXSxbYGl0YCxgKi8gaCBhMSA1MDAwMGBdLFtgaWJgLGArLSBiIDAgaXRgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgeDJgLGB5MWBdLFtgQ2AsYHgzYCxgeTJgLGB4NGAsYHkzYCxgeDVgLGB5MWBdLFtgbGAsYHgxMGAsYHk0YF0sW2BDYCxgeDhgLGB5NmAsYHg3YCxgeTVgLGB4NmAsYHk0YF0sW2BjYF1dfV19LHdlZGdlZWxsaXBzZWNhbGxvdXQ6e2FkajpbW2BhZGoxYCxgdmFsIC0yMDgzM2BdLFtgYWRqMmAsYHZhbCA2MjUwMGBdXSxnZDpbW2BkeFBvc2AsYCovIHcgYWRqMSAxMDAwMDBgXSxbYGR5UG9zYCxgKi8gaCBhZGoyIDEwMDAwMGBdLFtgeFBvc2AsYCstIGhjIGR4UG9zIDBgXSxbYHlQb3NgLGArLSB2YyBkeVBvcyAwYF0sW2BzZHhgLGAqLyBkeFBvcyBoIDFgXSxbYHNkeWAsYCovIGR5UG9zIHcgMWBdLFtgcGFuZ2AsYGF0MiBzZHggc2R5YF0sW2BzdEFuZ2AsYCstIHBhbmcgNjYwMDAwIDBgXSxbYGVuQW5nYCxgKy0gcGFuZyAwIDY2MDAwMGBdLFtgZHgxYCxgY29zIHdkMiBzdEFuZ2BdLFtgZHkxYCxgc2luIGhkMiBzdEFuZ2BdLFtgeDFgLGArLSBoYyBkeDEgMGBdLFtgeTFgLGArLSB2YyBkeTEgMGBdLFtgZHgyYCxgY29zIHdkMiBlbkFuZ2BdLFtgZHkyYCxgc2luIGhkMiBlbkFuZ2BdLFtgeDJgLGArLSBoYyBkeDIgMGBdLFtgeTJgLGArLSB2YyBkeTIgMGBdLFtgc3RBbmcxYCxgYXQyIGR4MSBkeTFgXSxbYGVuQW5nMWAsYGF0MiBkeDIgZHkyYF0sW2Bzd0FuZzFgLGArLSBlbkFuZzEgMCBzdEFuZzFgXSxbYHN3QW5nMmAsYCstIHN3QW5nMSAyMTYwMDAwMCAwYF0sW2Bzd0FuZ2AsYD86IHN3QW5nMSBzd0FuZzEgc3dBbmcyYF0sW2BpZHhgLGBjb3Mgd2QyIDI3MDAwMDBgXSxbYGlkeWAsYHNpbiBoZDIgMjcwMDAwMGBdLFtgaWxgLGArLSBoYyAwIGlkeGBdLFtgaXJgLGArLSBoYyBpZHggMGBdLFtgaXRgLGArLSB2YyAwIGlkeWBdLFtgaWJgLGArLSB2YyBpZHkgMGBdXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMCxjbWRzOltbYG1gLGB4UG9zYCxgeVBvc2BdLFtgbGAsYHgxYCxgeTFgXSxbYGFgLGB3ZDJgLGBoZDJgLGBzdEFuZzFgLGBzd0FuZ2BdLFtgY2BdXX1dfSx3ZWRnZXJlY3RjYWxsb3V0OnthZGo6W1tgYWRqMWAsYHZhbCAtMjA4MzNgXSxbYGFkajJgLGB2YWwgNjI1MDBgXV0sZ2Q6W1tgZHhQb3NgLGAqLyB3IGFkajEgMTAwMDAwYF0sW2BkeVBvc2AsYCovIGggYWRqMiAxMDAwMDBgXSxbYHhQb3NgLGArLSBoYyBkeFBvcyAwYF0sW2B5UG9zYCxgKy0gdmMgZHlQb3MgMGBdLFtgZHhgLGArLSB4UG9zIDAgaGNgXSxbYGR5YCxgKy0geVBvcyAwIHZjYF0sW2BkcWAsYCovIGR4UG9zIGggd2BdLFtgYWR5YCxgYWJzIGR5UG9zYF0sW2BhZHFgLGBhYnMgZHFgXSxbYGR6YCxgKy0gYWR5IDAgYWRxYF0sW2B4ZzFgLGA/OiBkeFBvcyA3IDJgXSxbYHhnMmAsYD86IGR4UG9zIDEwIDVgXSxbYHgxYCxgKi8gdyB4ZzEgMTJgXSxbYHgyYCxgKi8gdyB4ZzIgMTJgXSxbYHlnMWAsYD86IGR5UG9zIDcgMmBdLFtgeWcyYCxgPzogZHlQb3MgMTAgNWBdLFtgeTFgLGAqLyBoIHlnMSAxMmBdLFtgeTJgLGAqLyBoIHlnMiAxMmBdLFtgdDFgLGA/OiBkeFBvcyBsIHhQb3NgXSxbYHhsYCxgPzogZHogbCB0MWBdLFtgdDJgLGA/OiBkeVBvcyB4MSB4UG9zYF0sW2B4dGAsYD86IGR6IHQyIHgxYF0sW2B0M2AsYD86IGR4UG9zIHhQb3MgcmBdLFtgeHJgLGA/OiBkeiByIHQzYF0sW2B0NGAsYD86IGR5UG9zIHhQb3MgeDFgXSxbYHhiYCxgPzogZHogdDQgeDFgXSxbYHQ1YCxgPzogZHhQb3MgeTEgeVBvc2BdLFtgeWxgLGA/OiBkeiB5MSB0NWBdLFtgdDZgLGA/OiBkeVBvcyB0IHlQb3NgXSxbYHl0YCxgPzogZHogdDYgdGBdLFtgdDdgLGA/OiBkeFBvcyB5UG9zIHkxYF0sW2B5cmAsYD86IGR6IHkxIHQ3YF0sW2B0OGAsYD86IGR5UG9zIHlQb3MgYmBdLFtgeWJgLGA/OiBkeiB0OCBiYF1dLHBhdGhzOlt7dzpudWxsLGg6bnVsbCxmaWxsOm51bGwsc3Ryb2tlOiEwLGV4dHJ1c2lvbk9rOiEwLGNtZHM6W1tgbWAsYGxgLGB0YF0sW2BsYCxgeDFgLGB0YF0sW2BsYCxgeHRgLGB5dGBdLFtgbGAsYHgyYCxgdGBdLFtgbGAsYHJgLGB0YF0sW2BsYCxgcmAsYHkxYF0sW2BsYCxgeHJgLGB5cmBdLFtgbGAsYHJgLGB5MmBdLFtgbGAsYHJgLGBiYF0sW2BsYCxgeDJgLGBiYF0sW2BsYCxgeGJgLGB5YmBdLFtgbGAsYHgxYCxgYmBdLFtgbGAsYGxgLGBiYF0sW2BsYCxgbGAsYHkyYF0sW2BsYCxgeGxgLGB5bGBdLFtgbGAsYGxgLGB5MWBdLFtgY2BdXX1dfSx3ZWRnZXJvdW5kcmVjdGNhbGxvdXQ6e2FkajpbW2BhZGoxYCxgdmFsIC0yMDgzM2BdLFtgYWRqMmAsYHZhbCA2MjUwMGBdLFtgYWRqM2AsYHZhbCAxNjY2N2BdXSxnZDpbW2BkeFBvc2AsYCovIHcgYWRqMSAxMDAwMDBgXSxbYGR5UG9zYCxgKi8gaCBhZGoyIDEwMDAwMGBdLFtgeFBvc2AsYCstIGhjIGR4UG9zIDBgXSxbYHlQb3NgLGArLSB2YyBkeVBvcyAwYF0sW2BkcWAsYCovIGR4UG9zIGggd2BdLFtgYWR5YCxgYWJzIGR5UG9zYF0sW2BhZHFgLGBhYnMgZHFgXSxbYGR6YCxgKy0gYWR5IDAgYWRxYF0sW2B4ZzFgLGA/OiBkeFBvcyA3IDJgXSxbYHhnMmAsYD86IGR4UG9zIDEwIDVgXSxbYHgxYCxgKi8gdyB4ZzEgMTJgXSxbYHgyYCxgKi8gdyB4ZzIgMTJgXSxbYHlnMWAsYD86IGR5UG9zIDcgMmBdLFtgeWcyYCxgPzogZHlQb3MgMTAgNWBdLFtgeTFgLGAqLyBoIHlnMSAxMmBdLFtgeTJgLGAqLyBoIHlnMiAxMmBdLFtgdDFgLGA/OiBkeFBvcyBsIHhQb3NgXSxbYHhsYCxgPzogZHogbCB0MWBdLFtgdDJgLGA/OiBkeVBvcyB4MSB4UG9zYF0sW2B4dGAsYD86IGR6IHQyIHgxYF0sW2B0M2AsYD86IGR4UG9zIHhQb3MgcmBdLFtgeHJgLGA/OiBkeiByIHQzYF0sW2B0NGAsYD86IGR5UG9zIHhQb3MgeDFgXSxbYHhiYCxgPzogZHogdDQgeDFgXSxbYHQ1YCxgPzogZHhQb3MgeTEgeVBvc2BdLFtgeWxgLGA/OiBkeiB5MSB0NWBdLFtgdDZgLGA/OiBkeVBvcyB0IHlQb3NgXSxbYHl0YCxgPzogZHogdDYgdGBdLFtgdDdgLGA/OiBkeFBvcyB5UG9zIHkxYF0sW2B5cmAsYD86IGR6IHkxIHQ3YF0sW2B0OGAsYD86IGR5UG9zIHlQb3MgYmBdLFtgeWJgLGA/OiBkeiB0OCBiYF0sW2B1MWAsYCovIHNzIGFkajMgMTAwMDAwYF0sW2B1MmAsYCstIHIgMCB1MWBdLFtgdjJgLGArLSBiIDAgdTFgXSxbYGlsYCxgKi8gdTEgMjkyODkgMTAwMDAwYF0sW2BpcmAsYCstIHIgMCBpbGBdLFtgaWJgLGArLSBiIDAgaWxgXV0scGF0aHM6W3t3Om51bGwsaDpudWxsLGZpbGw6bnVsbCxzdHJva2U6ITAsZXh0cnVzaW9uT2s6ITAsY21kczpbW2BtYCxgbGAsYHUxYF0sW2BhYCxgdTFgLGB1MWAsYGNkMmAsYGNkNGBdLFtgbGAsYHgxYCxgdGBdLFtgbGAsYHh0YCxgeXRgXSxbYGxgLGB4MmAsYHRgXSxbYGxgLGB1MmAsYHRgXSxbYGFgLGB1MWAsYHUxYCxgM2NkNGAsYGNkNGBdLFtgbGAsYHJgLGB5MWBdLFtgbGAsYHhyYCxgeXJgXSxbYGxgLGByYCxgeTJgXSxbYGxgLGByYCxgdjJgXSxbYGFgLGB1MWAsYHUxYCxgMGAsYGNkNGBdLFtgbGAsYHgyYCxgYmBdLFtgbGAsYHhiYCxgeWJgXSxbYGxgLGB4MWAsYGJgXSxbYGxgLGB1MWAsYGJgXSxbYGFgLGB1MWAsYHUxYCxgY2Q0YCxgY2Q0YF0sW2BsYCxgbGAsYHkyYF0sW2BsYCxgeGxgLGB5bGBdLFtgbGAsYGxgLGB5MWBdLFtgY2BdXX1dfX07Y29uc3QgbG89MjE2ZTUsdW89TWF0aC5QSSoyL2xvO2Z1bmN0aW9uIGZvKGUpe2xldCB0PWUudHJpbSgpLnNwbGl0KC9ccysvKTtyZXR1cm57b3A6dFswXSxhcmdUb2tlbnM6dC5zbGljZSgxKX19ZnVuY3Rpb24gcG8oZSx0LG4pe2xldHt3OnIsaDppLGFkajphfT1lLG89TWF0aC5taW4ocixpKSxzPU1hdGgubWF4KHIsaSksYz1PYmplY3QuY3JlYXRlKG51bGwpO09iamVjdC5hc3NpZ24oYyx7dzpyLGg6aSxsOjAsdDowLHIsYjppLGhjOnIvMix2YzppLzIsd2QyOnIvMix3ZDM6ci8zLHdkNDpyLzQsd2Q1OnIvNSx3ZDY6ci82LHdkODpyLzgsd2QxMDpyLzEwLHdkMTI6ci8xMix3ZDE2OnIvMTYsd2QzMjpyLzMyLGhkMjppLzIsaGQzOmkvMyxoZDQ6aS80LGhkNTppLzUsaGQ2OmkvNixoZDg6aS84LGhkMTA6aS8xMCxoZDEyOmkvMTIsaGQxNjppLzE2LGhkMzI6aS8zMixzczpvLHNzZDI6by8yLHNzZDQ6by80LHNzZDY6by82LHNzZDg6by84LHNzZDE2Om8vMTYsc3NkMzI6by8zMixsczpzLGxzZDI6cy8yLGxzZDQ6cy80LGxzZDY6cy82LGxzZDg6cy84LGxzZDE2OnMvMTYsbHNkMzI6cy8zMixjZDpsbyxjZDI6bG8vMixjZDQ6bG8vNCxjZDg6bG8vOCwiM2NkNCI6Mypsby80LCIzY2Q4IjozKmxvLzgsIjVjZDgiOjUqbG8vOCwiN2NkOCI6Nypsby84fSksdC5mb3JFYWNoKChbZSx0XSxuKT0+e2xldCByPWFbbl07Y1tlXT10eXBlb2Ygcj09YG51bWJlcmA/cjp1KHQpLGU9PT1gYWRqYCYmKGMuYWRqMT1jLmFkaiksZT09PWBhZGoxYCYmKGMuYWRqPWMuYWRqMSl9KTtmb3IobGV0W2UsdF1vZiBuKWNbZV09dSh0KTtyZXR1cm57djplPT57aWYoZSBpbiBjKXJldHVybiBjW2VdO3Rocm93IEVycm9yKGBwcmVzZXQtc2hhcGU6IHVua25vd24gbmFtZSAiJHtlfSJgKX0sZm1sYTp1LHJlc29sdmU6bH07ZnVuY3Rpb24gbChlKXtpZihlIGluIGMpcmV0dXJuIGNbZV07bGV0IHQ9TnVtYmVyKGUpO2lmKE51bWJlci5pc0Zpbml0ZSh0KSlyZXR1cm4gdDt0aHJvdyBFcnJvcihgcHJlc2V0LXNoYXBlOiBjYW5ub3QgcmVzb2x2ZSAiJHtlfSJgKX1mdW5jdGlvbiB1KGUpe2xldCB0PWUuYXJnVG9rZW5zLm1hcChsKTtyZXR1cm4gZChlLm9wLHQsZSl9ZnVuY3Rpb24gZChlLHQsbil7c3dpdGNoKGUpe2Nhc2VgdmFsYDpyZXR1cm4gdFswXTtjYXNlYCovYDpyZXR1cm4gdFswXSp0WzFdL3RbMl07Y2FzZWArLWA6cmV0dXJuIHRbMF0rdFsxXS10WzJdO2Nhc2VgKy9gOnJldHVybih0WzBdK3RbMV0pL3RbMl07Y2FzZWA/OmA6cmV0dXJuIHRbMF0+MD90WzFdOnRbMl07Y2FzZWBhYnNgOnJldHVybiBNYXRoLmFicyh0WzBdKTtjYXNlYG1pbmA6cmV0dXJuIE1hdGgubWluKHRbMF0sdFsxXSk7Y2FzZWBtYXhgOnJldHVybiBNYXRoLm1heCh0WzBdLHRbMV0pO2Nhc2VgcGluYDpyZXR1cm4gdFsxXTx0WzBdP3RbMF06dFsxXT50WzJdP3RbMl06dFsxXTtjYXNlYHNxcnRgOnJldHVybiBNYXRoLnNxcnQoTWF0aC5tYXgoMCx0WzBdKSk7Y2FzZWBtb2RgOnJldHVybiBNYXRoLnNxcnQodFswXSp0WzBdK3RbMV0qdFsxXSt0WzJdKnRbMl0pO2Nhc2Vgc2luYDpyZXR1cm4gdFswXSpNYXRoLnNpbih0WzFdKnVvKTtjYXNlYGNvc2A6cmV0dXJuIHRbMF0qTWF0aC5jb3ModFsxXSp1byk7Y2FzZWB0YW5gOnJldHVybiB0WzBdKk1hdGgudGFuKHRbMV0qdW8pO2Nhc2VgYXQyYDpyZXR1cm4gTWF0aC5hdGFuMih0WzFdLHRbMF0pL3VvO2Nhc2VgY2F0MmA6cmV0dXJuIHRbMF0qTWF0aC5jb3MoTWF0aC5hdGFuMih0WzJdLHRbMV0pKTtjYXNlYHNhdDJgOnJldHVybiB0WzBdKk1hdGguc2luKE1hdGguYXRhbjIodFsyXSx0WzFdKSk7ZGVmYXVsdDp0aHJvdyBFcnJvcihgcHJlc2V0LXNoYXBlOiB1bmtub3duIG9wZXJhdG9yICIke2V9IiBpbiAiJHtbbi5vcCwuLi5uLmFyZ1Rva2Vuc10uam9pbihgIGApfSJgKX19fWNvbnN0IG1vPU1hdGguUEkqMi8yMTZlNTtmdW5jdGlvbiBobyhlLHQsbixyLGksYSxvKXtsZXQgcz10Lnc9PW51bGw/MTphL3QudyxjPXQuaD09bnVsbD8xOm8vdC5oLGw9ZT0+citlKnMsdT1lPT5pK2UqYyxkPTAsZj0wO2ZvcihsZXQgciBvZiB0LmNtZHMpc3dpdGNoKHJbMF0pe2Nhc2VgbWA6e2xldCB0PWwobi5yZXNvbHZlKHJbMV0pKSxpPXUobi5yZXNvbHZlKHJbMl0pKTtlLm1vdmVUbyh0LGkpLGQ9dCxmPWk7YnJlYWt9Y2FzZWBsYDp7bGV0IHQ9bChuLnJlc29sdmUoclsxXSkpLGk9dShuLnJlc29sdmUoclsyXSkpO2UubGluZVRvKHQsaSksZD10LGY9aTticmVha31jYXNlYENgOntsZXQgdD1sKG4ucmVzb2x2ZShyWzFdKSksaT11KG4ucmVzb2x2ZShyWzJdKSksYT1sKG4ucmVzb2x2ZShyWzNdKSksbz11KG4ucmVzb2x2ZShyWzRdKSkscz1sKG4ucmVzb2x2ZShyWzVdKSksYz11KG4ucmVzb2x2ZShyWzZdKSk7ZS5iZXppZXJDdXJ2ZVRvKHQsaSxhLG8scyxjKSxkPXMsZj1jO2JyZWFrfWNhc2VgUWA6e2xldCB0PWwobi5yZXNvbHZlKHJbMV0pKSxpPXUobi5yZXNvbHZlKHJbMl0pKSxhPWwobi5yZXNvbHZlKHJbM10pKSxvPXUobi5yZXNvbHZlKHJbNF0pKTtlLnF1YWRyYXRpY0N1cnZlVG8odCxpLGEsbyksZD1hLGY9bzticmVha31jYXNlYGFgOntsZXQgdD1uLnJlc29sdmUoclsxXSksaT1uLnJlc29sdmUoclsyXSksYT10KnMsbz1pKmMsbD1uLnJlc29sdmUoclszXSkqbW8sdT1uLnJlc29sdmUocls0XSkqbW8scD1NYXRoLlBJKjIsbT1lPT5NYXRoLmF0YW4yKHQqTWF0aC5zaW4oZSksaSpNYXRoLmNvcyhlKSksaD1tKGwpLGc9TWF0aC50cnVuYyh1L3ApLF89dS1nKnAsdj1tKGwrXyktaDtfPjAmJnY8MD92Kz1wOl88MCYmdj4wJiYodi09cCk7bGV0IHk9aCt2K2cqcCxiPWQtYSpNYXRoLmNvcyhoKSx4PWYtbypNYXRoLnNpbihoKTtNYXRoLmFicyhhKT4xZS02JiZNYXRoLmFicyhvKT4xZS02JiYoZS5lbGxpcHNlKGIseCxNYXRoLmFicyhhKSxNYXRoLmFicyhvKSwwLGgseSx1PDApLGQ9YithKk1hdGguY29zKHkpLGY9eCtvKk1hdGguc2luKHkpKTticmVha31jYXNlYGNgOmUuY2xvc2VQYXRoKCk7YnJlYWt9fWNvbnN0IGdvPWNvLF9vPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIHZvKGUpe2xldCB0PV9vLmdldChlKTtyZXR1cm4gdHx8KHQ9e2FkajplLmFkai5tYXAoKFtlLHRdKT0+W2UsZm8odCldKSxnZDplLmdkLm1hcCgoW2UsdF0pPT5bZSxmbyh0KV0pfSxfby5zZXQoZSx0KSksdH1mdW5jdGlvbiB5byhlLHQsbixyKXtsZXQgaT12byhlKTtyZXR1cm4gcG8oe3c6dCxoOm4sYWRqOnJ9LGkuYWRqLGkuZ2QpfWZ1bmN0aW9uIGJvKGUpe3JldHVybiBlLnRvTG93ZXJDYXNlKClpbiBnb31mdW5jdGlvbiB4byhlLHQsbixyLGksYSxvPVtdKXtsZXQgcz1nb1t0LnRvTG93ZXJDYXNlKCldO2lmKCFzKXJldHVybiExO2xldCBjPXlvKHMsaSxhLG8pO2ZvcihsZXQgdCBvZiBzLnBhdGhzKWhvKGUsdCxjLG4scixpLGEpO3JldHVybiEwfWZ1bmN0aW9uIFNvKGUsdCxuLHIsaSxhLG89W10pe2xldCBzPWdvW3QudG9Mb3dlckNhc2UoKV07aWYoIXMpcmV0dXJuITE7bGV0IGM9eW8ocyxpLGEsbyk7Zm9yKGxldCB0IG9mIHMucGF0aHMpdC5maWxsIT09YG5vbmVgJiZobyhlLHQsYyxuLHIsaSxhKTtyZXR1cm4hMH1jb25zdCBDbz17d2VkZ2Vyb3VuZHJlY3RjYWxsb3V0OmByb3VuZHJlY3RgLHdlZGdlZWxsaXBzZWNhbGxvdXQ6YGVsbGlwc2VgLHdlZGdlcmVjdGNhbGxvdXQ6bnVsbH0sd289e2FkajpbXSxnZDpbXSxwYXRoczpbe3c6bnVsbCxoOm51bGwsZmlsbDpudWxsLHN0cm9rZTohMCxleHRydXNpb25PazohMSxjbWRzOltbYG1gLGBsYCxgdGBdLFtgbGAsYHJgLGB0YF0sW2BsYCxgcmAsYGJgXSxbYGxgLGBsYCxgYmBdLFtgY2BdXX1dfTtmdW5jdGlvbiBUbyhlLHQsbil7bGV0IHI9ZVtuXTtpZih0eXBlb2Ygcj09YG51bWJlcmApcmV0dXJuIHI7bGV0IGk9dC5hZGpbbl07cmV0dXJuIGkmJk51bWJlcihpWzFdLnJlcGxhY2UoL152YWxccysvLGBgKSl8fDB9ZnVuY3Rpb24gRW8oZSx0LG4scil7bGV0IGk9Z29bZV07aWYoIWkpcmV0dXJuIG51bGw7aWYoZSBpbiBDbyl7bGV0IGE9VG8ocixpLDApLG89VG8ocixpLDEpLHM9dC8yK3QqYS8xZTUsYz1uLzIrbipvLzFlNTtpZihzPj0wJiZzPD10JiZjPj0wJiZjPD1uKXtsZXQgdD1Db1tlXTt0PT09YHJvdW5kcmVjdGA/KGk9Z28ucm91bmRyZWN0LHI9W1RvKHIsZ29bZV0sMildKTp0JiZnb1t0XT8oaT1nb1t0XSxyPVtdKTooaT13byxyPVtdKX19cmV0dXJue2RlZjppLGFkajpyfX1mdW5jdGlvbiBEbyhlLHQsbixyLGksYSxvLHMsYyxsLHUpe2xldCBkPUVvKHQudG9Mb3dlckNhc2UoKSxpLGEsbyk7aWYoIWQpcmV0dXJuITE7bGV0e2RlZjpmfT1kO289ZC5hZGo7bGV0IHA9eW8oZixpLGEsbyksbT0hMSxoPWYucGF0aHMubGVuZ3RoLTE7Zm9yKGxldCB0PTA7dDxmLnBhdGhzLmxlbmd0aDt0Kyspe2xldCBvPWYucGF0aHNbdF07ZS5iZWdpblBhdGgoKSxobyhlLG8scCxuLHIsaSxhKTtsZXQgZD1vLmZpbGw7aWYoZCE9PWBub25lYCYmcyE9bnVsbCl7ZS5zYXZlKCksZS5maWxsU3R5bGU9cyxlLmZpbGwoKTtsZXQgdD1rbyhkKTt0JiYoZS5maWxsU3R5bGU9dCxlLmZpbGwoKSksZS5yZXN0b3JlKCksbXx8PShsKCksITApfWlmKG8uc3Ryb2tlJiZjKXtsZXQgZT10PT09aCYmKG8uZmlsbD09PWBub25lYHx8by5maWxsPT1udWxsKTt1Py5za2lwVHJhaWxpbmdTdHJva2UmJmV8fGMoKX19cmV0dXJuITB9ZnVuY3Rpb24gT28oZSx0LG4scixpLGEpe2xldCBvPWdvW2UudG9Mb3dlckNhc2UoKV07aWYoIW98fG8ucGF0aHMubGVuZ3RoPT09MClyZXR1cm4gbnVsbDtsZXQgcz1vLnBhdGhzW28ucGF0aHMubGVuZ3RoLTFdLGM9eW8obyxyLGksYSksbD1zLnc9PW51bGw/MTpyL3Mudyx1PXMuaD09bnVsbD8xOmkvcy5oLGQ9ZT0+dCtlKmwsZj1lPT5uK2UqdSxwPTAsbT0wLGg9MCxnPTAsXz0wLHY9MCx5PSExLGI9MCx4PTAsUz1bXTtmb3IobGV0IGUgb2Ygcy5jbWRzKXN3aXRjaChlWzBdKXtjYXNlYG1gOmg9ZChjLnJlc29sdmUoZVsxXSkpLGc9ZihjLnJlc29sdmUoZVsyXSkpLHA9aCxtPWcsUy5wdXNoKHt4OmgseTpnfSk7YnJlYWs7Y2FzZWBsYDp7bGV0IHQ9ZChjLnJlc29sdmUoZVsxXSkpLG49ZihjLnJlc29sdmUoZVsyXSkpO3l8fD0oXz10LWgsdj1uLWcsITApLGI9dC1oLHg9bi1nLGg9dCxnPW4sUy5wdXNoKHt4OmgseTpnfSk7YnJlYWt9Y2FzZWBDYDp7bGV0IHQ9ZChjLnJlc29sdmUoZVsxXSkpLG49ZihjLnJlc29sdmUoZVsyXSkpLHI9ZChjLnJlc29sdmUoZVszXSkpLGk9ZihjLnJlc29sdmUoZVs0XSkpLGE9ZChjLnJlc29sdmUoZVs1XSkpLG89ZihjLnJlc29sdmUoZVs2XSkpO3l8fD0oXz10LWgsdj1uLWcsITApLGI9YS1yLHg9by1pLGg9YSxnPW8sUy5wdXNoKHt4OmgseTpnfSk7YnJlYWt9fWxldCBDPU1hdGguYXRhbjIodixfKStNYXRoLlBJO3JldHVybntzdGFydDp7eDpwLHk6bSxhbmdsZTpDfSxlbmQ6e3g6aCx5OmcsYW5nbGU6TWF0aC5hdGFuMih4LGIpfSx2ZXJ0aWNlczpTfX1mdW5jdGlvbiBrbyhlKXtzd2l0Y2goZSl7Y2FzZWBsaWdodGVuYDpyZXR1cm5gcmdiYSgyNTUsMjU1LDI1NSwwLjMwKWA7Y2FzZWBsaWdodGVuTGVzc2A6cmV0dXJuYHJnYmEoMjU1LDI1NSwyNTUsMC4xNSlgO2Nhc2VgZGFya2VuYDpyZXR1cm5gcmdiYSgwLDAsMCwwLjMwKWA7Y2FzZWBkYXJrZW5MZXNzYDpyZXR1cm5gcmdiYSgwLDAsMCwwLjE1KWA7ZGVmYXVsdDpyZXR1cm4gbnVsbH19ZnVuY3Rpb24gQW8oZSx0LG4scixpLGEsbyxzPS1NYXRoLlBJLzIpe2xldCBjPWEqMjtmb3IobGV0IGw9MDtsPGM7bCsrKXtsZXQgYz1zK2wqTWF0aC5QSS9hLHU9bCUyPT0wPzE6byxkPXQrcip1Kk1hdGguY29zKGMpLGY9bitpKnUqTWF0aC5zaW4oYyk7bD09PTA/ZS5tb3ZlVG8oZCxmKTplLmxpbmVUbyhkLGYpfWUuY2xvc2VQYXRoKCl9ZnVuY3Rpb24gam8oZSx0LG4scixpLGEsbz0tTWF0aC5QSS8yKXtmb3IobGV0IHM9MDtzPGE7cysrKXtsZXQgYz1vK3MqMipNYXRoLlBJL2EsbD10K3IqTWF0aC5jb3MoYyksdT1uK2kqTWF0aC5zaW4oYyk7cz09PTA/ZS5tb3ZlVG8obCx1KTplLmxpbmVUbyhsLHUpfWUuY2xvc2VQYXRoKCl9ZnVuY3Rpb24gTW8oZSx0LG4scixpLGEsbyl7bGV0IHM9ZT0+TWF0aC5hdGFuMihyKk1hdGguc2luKGUpLGkqTWF0aC5jb3MoZSkpLGM9cyhhKSxsPXMoYStvKSx1PXQtcipNYXRoLmNvcyhjKSxkPW4taSpNYXRoLnNpbihjKTtyZXR1cm4gZS5lbGxpcHNlKHUsZCxNYXRoLmFicyhyKSxNYXRoLmFicyhpKSwwLGMsbCxvPDApLHt4OnUrcipNYXRoLmNvcyhsKSx5OmQraSpNYXRoLnNpbihsKX19Y29uc3QgTm89e292YWw6YGVsbGlwc2VgLHJ0cmlhbmdsZTpgcnR0cmlhbmdsZWAscm91bmRyZWN0YW5nbGU6YHJvdW5kcmVjdGAsZmxvd2NoYXJ0c3VtaW5nanVuY3Rpb246YGZsb3djaGFydHN1bW1pbmdqdW5jdGlvbmB9LFBvPW5ldyBTZXQoYGVsbGlwc2UucnR0cmlhbmdsZS50cmlhbmdsZS5kaWFtb25kLnRyYXBlem9pZC5yb3VuZHJlY3Quc25pcDFyZWN0LmZyYW1lLmlycmVndWxhcnNlYWwxLmlycmVndWxhcnNlYWwyLnN0YXI0LnN0YXI4LnN0YXIxMi5zdGFyMTYuc3RhcjI0LnN0YXIzMi5saW5lLnN0cmFpZ2h0Y29ubmVjdG9yMS5jYWxsb3V0MS5ib3JkZXJjYWxsb3V0MS5sZWZ0dXBhcnJvdy5xdWFkYXJyb3djYWxsb3V0Lm1hdGhlcXVhbC5tYXRocGx1cy5tYXRobWludXMuZmxvd2NoYXJ0ZGVjaXNpb24uZmxvd2NoYXJ0bWFudWFsaW5wdXQuZmxvd2NoYXJ0Y29ubmVjdG9yLmZsb3djaGFydGlucHV0b3V0cHV0LmZsb3djaGFydG1lcmdlLmZsb3djaGFydGV4dHJhY3QuZmxvd2NoYXJ0cHJlcGFyYXRpb24uZmxvd2NoYXJ0Y29sbGF0ZWAuc3BsaXQoYC5gKSksRm89bmV3IFNldChbYGFjY2VudGNhbGxvdXQxYCxgYWNjZW50Ym9yZGVyY2FsbG91dDFgLGBmbG93Y2hhcnRwcmVkZWZpbmVkcHJvY2Vzc2AsYGZsb3djaGFydHNvcnRgLGBmbG93Y2hhcnRpbnRlcm5hbHN0b3JhZ2VgLGBmbG93Y2hhcnRzdW1taW5nanVuY3Rpb25gXSksSW89bmV3IFNldChbYHJvdW5kMnNhbWVyZWN0YCxgcm91bmQyZGlhZ3JlY3RgLGBkb2RlY2Fnb25gLGBzdGFyMTBgXSk7ZnVuY3Rpb24gTG8oZSx0LG4scixpLGEsbz1udWxsLHM9bnVsbCxjPW51bGwsbD1udWxsKXtsZXQgdT1uK2kvMixkPXIrYS8yO3tsZXQgdT10LnRvTG93ZXJDYXNlKCksZD1Ob1t1XT8/dTtpZigoUG8uaGFzKGQpfHxGby5oYXMoZCl8fElvLmhhcyhkKSkmJnhvKGUsZCxuLHIsaSxhLFtvLHMsYyxsXSkpcmV0dXJufXN3aXRjaCh0LnRvTG93ZXJDYXNlKCkpe2Nhc2VgcGFyYWxsZWxvZ3JhbWA6e2xldCB0PWkqTWF0aC5taW4oLjUsKG8/PzI1ZTMpLzFlNSk7ZS5tb3ZlVG8obit0LHIpLGUubGluZVRvKG4raSxyKSxlLmxpbmVUbyhuK2ktdCxyK2EpLGUubGluZVRvKG4scithKSxlLmNsb3NlUGF0aCgpO2JyZWFrfWNhc2VgcGVudGFnb25gOmpvKGUsdSxkLGkvMixhLzIsNSk7YnJlYWs7Y2FzZWBoZXhhZ29uYDpqbyhlLHUsZCxpLzIsYS8yLDYsMCk7YnJlYWs7Y2FzZWBoZXB0YWdvbmA6am8oZSx1LGQsaS8yLGEvMiw3KTticmVhaztjYXNlYG9jdGFnb25gOmpvKGUsdSxkLGkvMixhLzIsOCwtTWF0aC5QSS84KTticmVhaztjYXNlYGRlY2Fnb25gOmpvKGUsdSxkLGkvMixhLzIsMTApO2JyZWFrO2Nhc2Vgc3RhcjVgOmNhc2Vgc3RhcmA6QW8oZSx1LGQsaS8yLGEvMiw1LChvPz8xOTA5OCkvNWU0KTticmVhaztjYXNlYHN0YXI2YDpBbyhlLHUsZCxpLzIsYS8yLDYsKG8/PzI4ODY4KS81ZTQsMCk7YnJlYWs7Y2FzZWBzdGFyN2A6QW8oZSx1LGQsaS8yLGEvMiw3LChvPz8zNDE0MikvNWU0KTticmVhaztjYXNlYHJpZ2h0YXJyb3dgOntsZXQgdD1hKk1hdGgubWluKDEsKG8/PzVlNCkvMWU1KSxjPWkqTWF0aC5taW4oMSwocz8/NWU0KS8xZTUpLGw9cisoYS10KS8yO2UubW92ZVRvKG4sbCksZS5saW5lVG8obitpLWMsbCksZS5saW5lVG8obitpLWMsciksZS5saW5lVG8obitpLGQpLGUubGluZVRvKG4raS1jLHIrYSksZS5saW5lVG8obitpLWMsbCt0KSxlLmxpbmVUbyhuLGwrdCksZS5jbG9zZVBhdGgoKTticmVha31jYXNlYGxlZnRhcnJvd2A6e2xldCB0PWEqTWF0aC5taW4oMSwobz8/NWU0KS8xZTUpLGM9aSpNYXRoLm1pbigxLChzPz81ZTQpLzFlNSksbD1yKyhhLXQpLzI7ZS5tb3ZlVG8obitpLGwpLGUubGluZVRvKG4rYyxsKSxlLmxpbmVUbyhuK2MsciksZS5saW5lVG8obixkKSxlLmxpbmVUbyhuK2MscithKSxlLmxpbmVUbyhuK2MsbCt0KSxlLmxpbmVUbyhuK2ksbCt0KSxlLmNsb3NlUGF0aCgpO2JyZWFrfWNhc2VgdXBhcnJvd2A6e2xldCB0PWkqTWF0aC5taW4oMSwobz8/NWU0KS8xZTUpLGM9YSpNYXRoLm1pbigxLChzPz81ZTQpLzFlNSksbD1uKyhpLXQpLzI7ZS5tb3ZlVG8odSxyKSxlLmxpbmVUbyhuK2kscitjKSxlLmxpbmVUbyhsK3QscitjKSxlLmxpbmVUbyhsK3QscithKSxlLmxpbmVUbyhsLHIrYSksZS5saW5lVG8obCxyK2MpLGUubGluZVRvKG4scitjKSxlLmNsb3NlUGF0aCgpO2JyZWFrfWNhc2VgZG93bmFycm93YDp7bGV0IHQ9aSpNYXRoLm1pbigxLChvPz81ZTQpLzFlNSksYz1hKk1hdGgubWluKDEsKHM/PzVlNCkvMWU1KSxsPW4rKGktdCkvMjtlLm1vdmVUbyh1LHIrYSksZS5saW5lVG8obitpLHIrYS1jKSxlLmxpbmVUbyhsK3QscithLWMpLGUubGluZVRvKGwrdCxyKSxlLmxpbmVUbyhsLHIpLGUubGluZVRvKGwscithLWMpLGUubGluZVRvKG4scithLWMpLGUuY2xvc2VQYXRoKCk7YnJlYWt9Y2FzZWBsZWZ0cmlnaHRhcnJvd2A6e2xldCB0PWEqTWF0aC5taW4oMSwobz8/NWU0KS8xZTUpLGM9aSpNYXRoLm1pbiguNSwocz8/MjVlMykvMWU1KSxsPXIrKGEtdCkvMjtlLm1vdmVUbyhuLGQpLGUubGluZVRvKG4rYyxyKSxlLmxpbmVUbyhuK2MsbCksZS5saW5lVG8obitpLWMsbCksZS5saW5lVG8obitpLWMsciksZS5saW5lVG8obitpLGQpLGUubGluZVRvKG4raS1jLHIrYSksZS5saW5lVG8obitpLWMsbCt0KSxlLmxpbmVUbyhuK2MsbCt0KSxlLmxpbmVUbyhuK2MscithKSxlLmNsb3NlUGF0aCgpO2JyZWFrfWNhc2VgdXBkb3duYXJyb3dgOntsZXQgdD1pKk1hdGgubWluKDEsKG8/PzVlNCkvMWU1KSxjPWEqTWF0aC5taW4oLjUsKHM/PzI1ZTMpLzFlNSksbD1uKyhpLXQpLzI7ZS5tb3ZlVG8odSxyKSxlLmxpbmVUbyhuK2kscitjKSxlLmxpbmVUbyhsK3QscitjKSxlLmxpbmVUbyhsK3QscithLWMpLGUubGluZVRvKG4raSxyK2EtYyksZS5saW5lVG8odSxyK2EpLGUubGluZVRvKG4scithLWMpLGUubGluZVRvKGwscithLWMpLGUubGluZVRvKGwscitjKSxlLmxpbmVUbyhuLHIrYyksZS5jbG9zZVBhdGgoKTticmVha31jYXNlYG5vdGNoZWRyaWdodGFycm93YDp7bGV0IHQ9YSpNYXRoLm1pbigxLChvPz81ZTQpLzFlNSksYz1pKk1hdGgubWluKDEsKHM/PzM1ZTMpLzFlNSksbD1yKyhhLXQpLzIsdT1jKi40MztlLm1vdmVUbyhuLGwpLGUubGluZVRvKG4raS1jLGwpLGUubGluZVRvKG4raS1jLHIpLGUubGluZVRvKG4raSxkKSxlLmxpbmVUbyhuK2ktYyxyK2EpLGUubGluZVRvKG4raS1jLGwrdCksZS5saW5lVG8obixsK3QpLGUubGluZVRvKG4rdSxkKSxlLmNsb3NlUGF0aCgpO2JyZWFrfWNhc2VgY2hldnJvbmA6e2xldCB0PWkqTWF0aC5taW4oMSxNYXRoLm1heCgwLChvPz81ZTQpLzFlNSkpO2UubW92ZVRvKG4sciksZS5saW5lVG8obit0LHIpLGUubGluZVRvKG4raSxkKSxlLmxpbmVUbyhuK3QscithKSxlLmxpbmVUbyhuLHIrYSksdD4wJiZlLmxpbmVUbyhuK3QsZCksZS5jbG9zZVBhdGgoKTticmVha31jYXNlYGhvbWVwbGF0ZWA6e2xldCB0PWEqLjQ7ZS5tb3ZlVG8obixyKSxlLmxpbmVUbyhuK2ksciksZS5saW5lVG8obitpLHIrYS10KSxlLmxpbmVUbyh1LHIrYSksZS5saW5lVG8obixyK2EtdCksZS5jbG9zZVBhdGgoKTticmVha31jYXNlYGxlZnRicmFja2V0YDp7bGV0IHQ9TWF0aC5taW4oYSpNYXRoLm1pbig1ZTQsTWF0aC5tYXgoMCxvPz84MzMzKSkvMWU1LGEvMik7ZS5tb3ZlVG8obitpLHIpLGUucXVhZHJhdGljQ3VydmVUbyhuLHIsbixyK3QpLGEtMip0Pi41JiZlLmxpbmVUbyhuLHIrYS10KSxlLnF1YWRyYXRpY0N1cnZlVG8obixyK2EsbitpLHIrYSk7YnJlYWt9Y2FzZWByaWdodGJyYWNrZXRgOntsZXQgdD1NYXRoLm1pbihhKk1hdGgubWluKDVlNCxNYXRoLm1heCgwLG8/PzgzMzMpKS8xZTUsYS8yKTtlLm1vdmVUbyhuLHIpLGUucXVhZHJhdGljQ3VydmVUbyhuK2kscixuK2kscit0KSxhLTIqdD4uNSYmZS5saW5lVG8obitpLHIrYS10KSxlLnF1YWRyYXRpY0N1cnZlVG8obitpLHIrYSxuLHIrYSk7YnJlYWt9Y2FzZWBsZWZ0YnJhY2VgOntsZXQgdD1kLG89aSouNDU7ZS5tb3ZlVG8obitpLHIpLGUuYmV6aWVyQ3VydmVUbyhuK2ktbyxyLG4raS1vLHQtYSouMDgsbix0KSxlLmJlemllckN1cnZlVG8obitpLW8sdCthKi4wOCxuK2ktbyxyK2EsbitpLHIrYSk7YnJlYWt9Y2FzZWByaWdodGJyYWNlYDp7bGV0IHQ9ZCxvPWkqLjQ1O2UubW92ZVRvKG4sciksZS5iZXppZXJDdXJ2ZVRvKG4rbyxyLG4rbyx0LWEqLjA4LG4raSx0KSxlLmJlemllckN1cnZlVG8obitvLHQrYSouMDgsbitvLHIrYSxuLHIrYSk7YnJlYWt9Y2FzZWB3ZWRnZXJlY3RjYWxsb3V0YDp7ZS5yZWN0KG4scixpLGEqLjgpO2xldCB0PW4raSouMixvPXIrYTtlLm1vdmVUbyhuK2kqLjEscithKi44KSxlLmxpbmVUbyh0LG8pLGUubGluZVRvKG4raSouMyxyK2EqLjgpLGUuY2xvc2VQYXRoKCk7YnJlYWt9Y2FzZWB3ZWRnZWVsbGlwc2VjYWxsb3V0YDp7bGV0IHQ9KG8/Py0yZTQpLzFlNSppLG49KHM/PzEyZTQpLzFlNSphLHI9dSt0LGM9ZCtuO2UuZWxsaXBzZSh1LGQsaS8yLGEvMiwwLDAsTWF0aC5QSSoyKTtsZXQgbD1NYXRoLmF0YW4yKG4sdCksZj1NYXRoLlBJLzEwLHA9aS8yLG09YS8yLGg9dStwKk1hdGguY29zKGwtZiksZz1kK20qTWF0aC5zaW4obC1mKSxfPXUrcCpNYXRoLmNvcyhsK2YpLHY9ZCttKk1hdGguc2luKGwrZik7ZS5tb3ZlVG8oaCxnKSxlLmxpbmVUbyhyLGMpLGUubGluZVRvKF8sdiksZS5jbG9zZVBhdGgoKTticmVha31jYXNlYGNsb3VkY2FsbG91dGA6e2xldCB0PU1hdGgubWluKGksYSkqLjIyLG49W1t1LWkqLjI1LHIrYSouMzVdLFt1LWkqLjEscithKi4xNV0sW3UraSouMSxyK2EqLjFdLFt1K2kqLjI4LHIrYSouMl0sW3UraSouMzUscithKi40XV07ZS5tb3ZlVG8oblswXVswXS10LG5bMF1bMV0pO2ZvcihsZXRbcixpXW9mIG4pZS5hcmMocixpLHQsTWF0aC5QSSwwKTtlLmFyYyh1LHIrYSouNjUsaSouNDUsMCxNYXRoLlBJKSxlLmNsb3NlUGF0aCgpO2xldCBjPXUrKG8/Py0yZTQpLzFlNSppLGw9ZCsocz8/MTJlNCkvMWU1KmE7ZS5tb3ZlVG8odStpKi4wNSxyK2EqLjgpLGUuYXJjKGMsbCxNYXRoLm1pbihpLGEpKi4wNywwLE1hdGguUEkqMik7YnJlYWt9Y2FzZWBiZW50Y29ubmVjdG9yMmA6Y2FzZWBiZW50Y29ubmVjdG9yM2A6Y2FzZWBiZW50Y29ubmVjdG9yNGA6Y2FzZWBiZW50Y29ubmVjdG9yNWA6Y2FzZWBjdXJ2ZWRjb25uZWN0b3IyYDpjYXNlYGN1cnZlZGNvbm5lY3RvcjNgOmNhc2VgY3VydmVkY29ubmVjdG9yNGA6Y2FzZWBjdXJ2ZWRjb25uZWN0b3I1YDplLm1vdmVUbyhuLHIpLGUubGluZVRvKG4raSxyK2EpO2JyZWFrO2Nhc2VgaGVhcnRgOmUubW92ZVRvKHUscithKi4zMiksZS5iZXppZXJDdXJ2ZVRvKHUscixuK2kqLjA1LHIsbixyK2EqLjMpLGUuYmV6aWVyQ3VydmVUbyhuLHIrYSouNjgsdS1pKi4wNSxyK2EqLjc4LHUscithKSxlLmJlemllckN1cnZlVG8odStpKi4wNSxyK2EqLjc4LG4raSxyK2EqLjY4LG4raSxyK2EqLjMpLGUuYmV6aWVyQ3VydmVUbyhuK2ktaSouMDUscix1LHIsdSxyK2EqLjMyKTticmVhaztjYXNlYGRvbnV0YDp7bGV0IHQ9aS8yLG49YS8yLHI9TWF0aC5taW4odCxuKSoobz8/MjVlMykvMWU1LHM9dC1yLGM9bi1yO2UuZWxsaXBzZSh1LGQsdCxuLDAsMCxNYXRoLlBJKjIsITEpLGUubW92ZVRvKHUrcyxkKSxlLmVsbGlwc2UodSxkLHMsYywwLDAsTWF0aC5QSSoyLCEwKTticmVha31jYXNlYG5vc21va2luZ2A6Y2FzZWBub3Ntb2tpbmdzaWduYDp7bGV0IHQ9KG8/PzE4NzUwKS8xZTUsbj1pLzIscj1hLzIscz1uKigxLTIqdCksYz1yKigxLTIqdCk7ZS5lbGxpcHNlKHUsZCxuLHIsMCwwLE1hdGguUEkqMiwhMSksZS5tb3ZlVG8odStzLGQpLGUuZWxsaXBzZSh1LGQscyxjLDAsMCxNYXRoLlBJKjIsITApLGUubW92ZVRvKHUrcyxkKSxlLmVsbGlwc2UodSxkLHMsYywwLDAsTWF0aC5QSS8yLCExKSxlLmxpbmVUbyh1LXMsZCksZS5lbGxpcHNlKHUsZCxzLGMsMCxNYXRoLlBJLDMqTWF0aC5QSS8yLCExKSxlLmNsb3NlUGF0aCgpO2JyZWFrfWNhc2VgcGllYDp7bGV0IHQ9KG8/PzApLzIxNmU1Kk1hdGguUEkqMixuPShzPz8xNjJlNSkvMjE2ZTUqTWF0aC5QSSoyO2UubW92ZVRvKHUsZCksZS5hcmModSxkLE1hdGgubWluKGksYSkvMix0LG4pLGUuY2xvc2VQYXRoKCk7YnJlYWt9Y2FzZWBjbG91ZGA6e2xldCB0PWEqLjI4O2UuYXJjKG4raSouMjUscithKi41NSx0LE1hdGguUEksTWF0aC5QSSoxLjgpLGUuYXJjKG4raSouNDUscithKi4zNSx0KjEuMSxNYXRoLlBJKjEuMyxNYXRoLlBJKjEuOSksZS5hcmMobitpKi42NSxyK2EqLjQsdCxNYXRoLlBJKjEuNSxNYXRoLlBJKjIpLGUuYXJjKG4raSouOCxyK2EqLjYsdCouOSxNYXRoLlBJKjEuNixNYXRoLlBJKi4xKSxlLmFyYyhuK2kqLjU1LHIrYSouNzUsdCwwLE1hdGguUEkqLjcpLGUuYXJjKG4raSouMjUscithKi43LHQqLjksMCxNYXRoLlBJKSxlLmNsb3NlUGF0aCgpO2JyZWFrfWNhc2VgZnVubmVsYDplLm1vdmVUbyhuLHIpLGUubGluZVRvKG4raSxyKSxlLmxpbmVUbyh1K2kqLjE1LHIrYSksZS5saW5lVG8odS1pKi4xNSxyK2EpLGUuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZWBzbWlsZXlmYWNlYDp7ZS5lbGxpcHNlKHUsZCxpLzIsYS8yLDAsMCxNYXRoLlBJKjIpLGUuY2xvc2VQYXRoKCk7bGV0IHQ9aSouMDUsbj1hKi4wNSxyPWQtYSouMTI7ZS5tb3ZlVG8odS1pKi4yK3QsciksZS5lbGxpcHNlKHUtaSouMixyLHQsbiwwLDAsTWF0aC5QSSoyKSxlLm1vdmVUbyh1K2kqLjIrdCxyKSxlLmVsbGlwc2UodStpKi4yLHIsdCxuLDAsMCxNYXRoLlBJKjIpLGUubW92ZVRvKHUtaSouMjUsZCthKi4wNSksZS5xdWFkcmF0aWNDdXJ2ZVRvKHUsZCthKi4zLHUraSouMjUsZCthKi4wNSk7YnJlYWt9Y2FzZWBkb2N1bWVudGA6Y2FzZWBmb2xkZWRjb3JuZXJgOntsZXQgdD1NYXRoLm1pbihpLGEpKi4xNTtlLm1vdmVUbyhuLHIpLGUubGluZVRvKG4raS10LHIpLGUubGluZVRvKG4raSxyK3QpLGUubGluZVRvKG4raSxyK2EpLGUubGluZVRvKG4scithKSxlLmNsb3NlUGF0aCgpLGUubW92ZVRvKG4raS10LHIpLGUubGluZVRvKG4raS10LHIrdCksZS5saW5lVG8obitpLHIrdCk7YnJlYWt9Y2FzZWBzbmlwMnNhbWVyZWN0YDp7bGV0IHQ9TWF0aC5taW4oaSxhKSpNYXRoLm1pbig1ZTQsTWF0aC5tYXgoMCxvPz8xNjY2NykpLzFlNTtlLm1vdmVUbyhuLHIpLGUubGluZVRvKG4raS10LHIpLGUubGluZVRvKG4raSxyK3QpLGUubGluZVRvKG4raSxyK2EpLGUubGluZVRvKG4rdCxyK2EpLGUubGluZVRvKG4scithLXQpLGUuY2xvc2VQYXRoKCk7YnJlYWt9Y2FzZWBzbmlwMmRpYWdyZWN0YDp7bGV0IHQ9TWF0aC5taW4oaSxhKSpNYXRoLm1pbig1ZTQsTWF0aC5tYXgoMCxvPz8xNjY2NykpLzFlNTtlLm1vdmVUbyhuK3QsciksZS5saW5lVG8obitpLXQsciksZS5saW5lVG8obitpLHIrdCksZS5saW5lVG8obitpLHIrYS10KSxlLmxpbmVUbyhuK2ktdCxyK2EpLGUubGluZVRvKG4rdCxyK2EpLGUubGluZVRvKG4scithLXQpLGUubGluZVRvKG4scit0KSxlLmNsb3NlUGF0aCgpO2JyZWFrfWNhc2Vgc25pcHJvdW5kcmVjdGA6e2xldCB0PU1hdGgubWluKGksYSkqTWF0aC5taW4oNWU0LE1hdGgubWF4KDAsbz8/MTY2NjcpKS8xZTU7ZS5tb3ZlVG8obit0LHIpLGUubGluZVRvKG4raS10LHIpLGUubGluZVRvKG4raSxyK3QpLGUubGluZVRvKG4raSxyK2EpLGUubGluZVRvKG4scithKSxlLnF1YWRyYXRpY0N1cnZlVG8obixyLG4rdCxyKSxlLmNsb3NlUGF0aCgpO2JyZWFrfWNhc2Vgcm91bmQxcmVjdGA6e2xldCB0PU1hdGgubWluKGksYSkqTWF0aC5taW4oNWU0LE1hdGgubWF4KDAsbz8/MTY2NjcpKS8xZTU7ZS5tb3ZlVG8obit0LHIpLGUubGluZVRvKG4raSxyKSxlLmxpbmVUbyhuK2kscithKSxlLmxpbmVUbyhuLHIrYSksZS5saW5lVG8obixyK3QpLGUucXVhZHJhdGljQ3VydmVUbyhuLHIsbit0LHIpLGUuY2xvc2VQYXRoKCk7YnJlYWt9Y2FzZWBwbGFxdWVgOntsZXQgdD1NYXRoLm1pbihpLGEpKi4yNTtlLm1vdmVUbyhuK3QsciksZS5saW5lVG8obitpLXQsciksZS5xdWFkcmF0aWNDdXJ2ZVRvKG4raSxyLG4raSxyK3QpLGUubGluZVRvKG4raSxyK2EtdCksZS5xdWFkcmF0aWNDdXJ2ZVRvKG4raSxyK2EsbitpLXQscithKSxlLmxpbmVUbyhuK3QscithKSxlLnF1YWRyYXRpY0N1cnZlVG8obixyK2EsbixyK2EtdCksZS5saW5lVG8obixyK3QpLGUucXVhZHJhdGljQ3VydmVUbyhuLHIsbit0LHIpLGUuY2xvc2VQYXRoKCk7YnJlYWt9Y2FzZWBjYW5gOntsZXQgdD1hKi4xO2UuZWxsaXBzZSh1LHIrdCxpLzIsdCwwLDAsTWF0aC5QSSoyKSxlLm1vdmVUbyhuLHIrdCksZS5saW5lVG8obixyK2EtdCksZS5lbGxpcHNlKHUscithLXQsaS8yLHQsMCxNYXRoLlBJLDIqTWF0aC5QSSksZS5saW5lVG8obitpLHIrdCk7YnJlYWt9Y2FzZWBjdWJlYDp7bGV0IHQ9TWF0aC5taW4oaSxhKSouMjtlLm1vdmVUbyhuK3QsciksZS5saW5lVG8obitpLHIpLGUubGluZVRvKG4raSxyK2EtdCksZS5saW5lVG8obitpLXQscithKSxlLmxpbmVUbyhuLHIrYSksZS5saW5lVG8obixyK3QpLGUuY2xvc2VQYXRoKCksZS5tb3ZlVG8obit0LHIpLGUubGluZVRvKG4rdCxyK3QpLGUubGluZVRvKG4raS10LHIrdCksZS5tb3ZlVG8obit0LHIrdCksZS5saW5lVG8obixyK3QpO2JyZWFrfWNhc2VgYmV2ZWxgOntsZXQgdD1NYXRoLm1pbihpLGEpKi4xO2UucmVjdChuLHIsaSxhKSxlLm1vdmVUbyhuLHIpLGUubGluZVRvKG4rdCxyK3QpLGUubGluZVRvKG4raS10LHIrdCksZS5saW5lVG8obitpLHIpLGUubW92ZVRvKG4raS10LHIrdCksZS5saW5lVG8obitpLXQscithLXQpLGUubGluZVRvKG4raSxyK2EpLGUubW92ZVRvKG4raS10LHIrYS10KSxlLmxpbmVUbyhuK3QscithLXQpLGUubGluZVRvKG4scithKSxlLm1vdmVUbyhuK3QscithLXQpLGUubGluZVRvKG4rdCxyK3QpO2JyZWFrfWNhc2VgaGFsZmZyYW1lYDp7bGV0IHQ9TWF0aC5taW4oaSxhKSouMjU7ZS5tb3ZlVG8obixyKSxlLmxpbmVUbyhuK2ksciksZS5saW5lVG8obitpLHIrdCksZS5saW5lVG8obit0LHIrdCksZS5saW5lVG8obit0LHIrYSksZS5saW5lVG8obixyK2EpLGUuY2xvc2VQYXRoKCk7YnJlYWt9Y2FzZWBjb3JuZXJgOntsZXQgdD1NYXRoLm1pbihpLGEpKi4yNTtlLm1vdmVUbyhuLHIpLGUubGluZVRvKG4raSxyKSxlLmxpbmVUbyhuK2kscit0KSxlLmxpbmVUbyhuK3Qscit0KSxlLmxpbmVUbyhuK3QscithKSxlLmxpbmVUbyhuLHIrYSksZS5jbG9zZVBhdGgoKTticmVha31jYXNlYGZsb3djaGFydGFsdGVybmF0ZXByb2Nlc3NgOmNhc2VgZmxvd2NoYXJ0cHJvY2Vzc2A6e2xldCB0PU1hdGgubWluKGksYSkqTWF0aC5taW4oNWU0LE1hdGgubWF4KDAsbz8/MTY2NjcpKS8xZTU7ZS5yb3VuZFJlY3QobixyLGksYSxbe3g6dCx5OnR9XSk7YnJlYWt9Y2FzZWBmbG93Y2hhcnR0ZXJtaW5hdG9yYDp7bGV0IHQ9TWF0aC5taW4oaSxhKS8yO2Uucm91bmRSZWN0KG4scixpLGEsW3t4OnQseTp0fV0pO2JyZWFrfWNhc2VgZmxvd2NoYXJ0ZG9jdW1lbnRgOntsZXQgdD1hKi4xO2UubW92ZVRvKG4sciksZS5saW5lVG8obitpLHIpLGUubGluZVRvKG4raSxyK2EtdCksZS5iZXppZXJDdXJ2ZVRvKG4raSouNzUscithLG4raSouMjUscithLXQqMixuLHIrYS10KSxlLmNsb3NlUGF0aCgpO2JyZWFrfWNhc2VgbW9vbmA6ZS5hcmModSxkLE1hdGgubWluKGksYSkvMiwtTWF0aC5QSS8yLE1hdGguUEkvMiksZS5hcmModS1pKi4yLGQsTWF0aC5taW4oaSxhKS8yLE1hdGguUEkvMiwtTWF0aC5QSS8yLCEwKSxlLmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2VgYXJjYDp7bGV0IHQ9MjE2ZTUsbj0obz8/MTYyZTUpL3QqTWF0aC5QSSoyLHI9KHM/PzU0ZTUpL3QqTWF0aC5QSSoyO2UuZWxsaXBzZSh1LGQsaS8yLGEvMiwwLG4sbityLHI8MCk7YnJlYWt9Y2FzZWBtYXRobXVsdGlwbHlgOntsZXQgdD1NYXRoLm1pbihpLGEpKk1hdGgubWluKDUxOTY1LE1hdGgubWF4KDAsbz8/MjM1MjApKS8xZTUscz1NYXRoLmF0YW4yKGEsaSksYz1NYXRoLnNpbihzKSxsPU1hdGguY29zKHMpLHU9dC8yKmMsZD10LzIqbDtlLm1vdmVUbyhuK3Usci1kKSxlLmxpbmVUbyhuLXUscitkKSxlLmxpbmVUbyhuK2ktdSxyK2ErZCksZS5saW5lVG8obitpK3UscithLWQpLGUuY2xvc2VQYXRoKCksZS5tb3ZlVG8obitpLXUsci1kKSxlLmxpbmVUbyhuK2krdSxyK2QpLGUubGluZVRvKG4rdSxyK2ErZCksZS5saW5lVG8obi11LHIrYS1kKSxlLmNsb3NlUGF0aCgpO2JyZWFrfWNhc2VgbWF0aGRpdmlkZWA6e2xldCB0PU1hdGgubWluKDM2NzQ1LE1hdGgubWF4KDFlMyxvPz8yMzUyMCkpLG49KDczNDkwKy10KS80LGw9MzY3NDUqaS9hLGY9TWF0aC5taW4oTWF0aC5taW4obixsKSxNYXRoLm1heCgxZTMsYz8/MTE3NjApKSxwPTczNDkwKzQqZi10LG09TWF0aC5taW4ocCxNYXRoLm1heCgwLHM/PzU4ODApKSxoPWEqdC8yZTUsZz1hKm0vMWU1LF89YSpmLzFlNSx2PWkqNzM0OTAvMmU1LHk9ZC1oLGI9ZCtoLHg9eS0oZytfKS1fLFM9cithLXgsQz11LXYsdz11K3Y7ZS5yZWN0KEMseSx3LUMsYi15KSxlLm1vdmVUbyh1K18seCtfKSxlLmFyYyh1LHgrXyxfLDAsTWF0aC5QSSoyKSxlLm1vdmVUbyh1K18sUy1fKSxlLmFyYyh1LFMtXyxfLDAsTWF0aC5QSSoyKTticmVha31jYXNlYHF1YWRhcnJvd2A6e2xldCB0PWkqKG8/PzIzZTMpLzFlNSxjPWkqKHM/PzNlNCkvMWU1LGw9bisoaS10KS8yLGY9cisoYS10KS8yO2UubW92ZVRvKHUsciksZS5saW5lVG8obitpLWMscitjKSxlLmxpbmVUbyhuK2ktYyxmKSxlLmxpbmVUbyhsK3QsZiksZS5saW5lVG8obCt0LHIrYyksZS5saW5lVG8obitjLHIrYyksZS5saW5lVG8obitpLGQpLGUubGluZVRvKG4raS1jLHIrYS1jKSxlLmxpbmVUbyhsK3QscithLWMpLGUubGluZVRvKGwrdCxmK3QpLGUubGluZVRvKG4raS1jLGYrdCksZS5saW5lVG8obitpLWMscithLWMpLGUubGluZVRvKHUscithKSxlLmxpbmVUbyhuK2MscithLWMpLGUubGluZVRvKG4rYyxmK3QpLGUubGluZVRvKGwsZit0KSxlLmxpbmVUbyhsLHIrYS1jKSxlLmxpbmVUbyhuLGQpLGUubGluZVRvKG4rYyxyK2MpLGUubGluZVRvKGwscitjKSxlLmxpbmVUbyhsLGYpLGUubGluZVRvKG4rYyxmKSxlLmNsb3NlUGF0aCgpO2JyZWFrfWNhc2Vgd2F2ZWA6e2xldCB0PWEqKG8/PzEyNTAwKS8xZTUscz1yK3QsYz1yK2EtdDtlLm1vdmVUbyhuLHMpLGUuYmV6aWVyQ3VydmVUbyhuK2kqLjI1LHIsbitpKi4yNSxyK3QqMixuK2kqLjUscyksZS5iZXppZXJDdXJ2ZVRvKG4raSouNzUscit0KjIsbitpKi43NSxyLG4raSxzKSxlLmxpbmVUbyhuK2ksYyksZS5iZXppZXJDdXJ2ZVRvKG4raSouNzUscithLG4raSouNzUscithLXQqMixuK2kqLjUsYyksZS5iZXppZXJDdXJ2ZVRvKG4raSouMjUscithLXQqMixuK2kqLjI1LHIrYSxuLGMpLGUuY2xvc2VQYXRoKCk7YnJlYWt9Y2FzZWBkb3VibGV3YXZlYDp7bGV0IHQ9YSoobz8/NjI1MCkvMWU1LHM9cit0LGM9cithLXQ7ZS5tb3ZlVG8obixzKSxlLmJlemllckN1cnZlVG8obitpKi4yNSxyLG4raSouMjUscit0KjIsbitpKi41LHMpLGUuYmV6aWVyQ3VydmVUbyhuK2kqLjc1LHIrdCoyLG4raSouNzUscixuK2kscyksZS5saW5lVG8obitpLGMpLGUuYmV6aWVyQ3VydmVUbyhuK2kqLjc1LHIrYSxuK2kqLjc1LHIrYS10KjIsbitpKi41LGMpLGUuYmV6aWVyQ3VydmVUbyhuK2kqLjI1LHIrYS10KjIsbitpKi4yNSxyK2EsbixjKSxlLmNsb3NlUGF0aCgpO2JyZWFrfWNhc2Vgc3VuYDp7bGV0IHQ9TWF0aC5taW4oaSxhKS8yLG49dCooKG8/PzI1ZTMpLzFlNSsuNSkscj1NYXRoLm1pbihuLHQqLjkpLHM9TWF0aC5QSS8xNjtmb3IobGV0IG49MDtuPDg7bisrKXtsZXQgaT1uLzgqTWF0aC5QSSoyO2UubW92ZVRvKHUrcipNYXRoLmNvcyhpLXMpLGQrcipNYXRoLnNpbihpLXMpKSxlLmxpbmVUbyh1K3QqTWF0aC5jb3MoaSksZCt0Kk1hdGguc2luKGkpKSxlLmxpbmVUbyh1K3IqTWF0aC5jb3MoaStzKSxkK3IqTWF0aC5zaW4oaStzKSksZS5jbG9zZVBhdGgoKX1lLm1vdmVUbyh1K3IsZCksZS5hcmModSxkLHIsMCxNYXRoLlBJKjIpO2JyZWFrfWNhc2VgbGlnaHRuaW5nYm9sdGA6ZS5tb3ZlVG8odStpKi4xLHIpLGUubGluZVRvKG4sZC1hKi4wNSksZS5saW5lVG8odStpKi4wNSxkLWEqLjA1KSxlLmxpbmVUbyh1LWkqLjEscithKSxlLmxpbmVUbyhuK2ksZCthKi4wNSksZS5saW5lVG8odS1pKi4wNSxkK2EqLjA1KSxlLmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2VgYnJhY2tldHBhaXJgOntsZXQgdD1hKk1hdGgubWluKDVlNCxNYXRoLm1heCgwLG8/PzgzMzMpKS8xZTU7ZS5tb3ZlVG8obitpKi40LHIpLGUucXVhZHJhdGljQ3VydmVUbyhuLHIsbixyK3QpLGEtMip0PjAmJmUubGluZVRvKG4scithLXQpLGUucXVhZHJhdGljQ3VydmVUbyhuLHIrYSxuK2kqLjQscithKSxlLm1vdmVUbyhuK2kqLjYsciksZS5xdWFkcmF0aWNDdXJ2ZVRvKG4raSxyLG4raSxyK3QpLGEtMip0PjAmJmUubGluZVRvKG4raSxyK2EtdCksZS5xdWFkcmF0aWNDdXJ2ZVRvKG4raSxyK2EsbitpKi42LHIrYSk7YnJlYWt9Y2FzZWBicmFjZXBhaXJgOntsZXQgdD1pKi4yO2UubW92ZVRvKG4raSouNCxyKSxlLmJlemllckN1cnZlVG8obitpKi40LXQscixuK2kqLjQtdCxkLWEqLjA4LG4sZCksZS5iZXppZXJDdXJ2ZVRvKG4raSouNC10LGQrYSouMDgsbitpKi40LXQscithLG4raSouNCxyK2EpLGUubW92ZVRvKG4raSouNixyKSxlLmJlemllckN1cnZlVG8obitpKi42K3QscixuK2kqLjYrdCxkLWEqLjA4LG4raSxkKSxlLmJlemllckN1cnZlVG8obitpKi42K3QsZCthKi4wOCxuK2kqLjYrdCxyK2EsbitpKi42LHIrYSk7YnJlYWt9Y2FzZWBjaG9yZGA6e2xldCB0PShvPz8yN2U1KS8yMTZlNSpNYXRoLlBJKjIsbj0ocz8/MTYyZTUpLzIxNmU1Kk1hdGguUEkqMjtlLmVsbGlwc2UodSxkLGkvMixhLzIsMCx0LG4pLGUuY2xvc2VQYXRoKCk7YnJlYWt9Y2FzZWBibG9ja2FyY2A6e2xldCB0PU1hdGgubWluKGksYSkvMixuPW8/PzEwOGU1LHI9cz8/MCxsPXQqKDEtKGM/PzI1ZTMpLzFlNSksZj1uLzIxNmU1Kk1hdGguUEkqMixwPXIvMjE2ZTUqTWF0aC5QSSoyO2UuYXJjKHUsZCx0LGYscCwhMSksZS5hcmModSxkLGwscCxmLCEwKSxlLmNsb3NlUGF0aCgpO2JyZWFrfWNhc2VgdGVhcmRyb3BgOntsZXQgdD1NYXRoLm1pbihpLGEpKi40LG89bit0LHM9cithLXQ7ZS5hcmMobyxzLHQsMCxNYXRoLlBJKjIqLjc1KSxlLmJlemllckN1cnZlVG8oby10Ki4xLHMtdCxuK2ktdCxyK3QsbitpLHIpLGUuYmV6aWVyQ3VydmVUbyhuK2ktdCouMixyK3QqLjUsbyt0LHMtdCoxLjEsbyt0LHMpLGUuY2xvc2VQYXRoKCk7YnJlYWt9Y2FzZWBkaWFnc3RyaXBlYDp7bGV0IHQ9YSoobz8/NWU0KS8xZTUqaS9hO2UubW92ZVRvKG4rdCxyKSxlLmxpbmVUbyhuK2ksciksZS5saW5lVG8obitpLXQscithKSxlLmxpbmVUbyhuLHIrYSksZS5jbG9zZVBhdGgoKTticmVha31jYXNlYHdlZGdlcm91bmRyZWN0Y2FsbG91dGA6e2xldCB0PU1hdGgubWluKGksYSkqLjE7ZS5yb3VuZFJlY3QobixyLGksYSouODUsdCksZS5tb3ZlVG8obitpKi4xLHIrYSouODUpLGUubGluZVRvKG4raSouMixyK2EpLGUubGluZVRvKG4raSouMyxyK2EqLjg1KSxlLmNsb3NlUGF0aCgpO2JyZWFrfWNhc2VgcmlnaHRhcnJvd2NhbGxvdXRgOntsZXQgdD1hKihvPz81ZTQpLzFlNSxjPWkqKHM/PzVlNCkvMWU1LGw9cisoYS10KS8yO2UucmVjdChuLGwsYyx0KSxlLm1vdmVUbyhuK2MsciksZS5saW5lVG8obitpLGQpLGUubGluZVRvKG4rYyxyK2EpLGUuY2xvc2VQYXRoKCk7YnJlYWt9Y2FzZWBsZWZ0YXJyb3djYWxsb3V0YDp7bGV0IHQ9YSoobz8/NWU0KS8xZTUsYz1pKihzPz81ZTQpLzFlNSxsPXIrKGEtdCkvMjtlLnJlY3QobitpLWMsbCxjLHQpLGUubW92ZVRvKG4raS1jLHIpLGUubGluZVRvKG4sZCksZS5saW5lVG8obitpLWMscithKSxlLmNsb3NlUGF0aCgpO2JyZWFrfWNhc2VgdXBhcnJvd2NhbGxvdXRgOntsZXQgdD1pKihvPz81ZTQpLzFlNSxjPWEqKHM/PzVlNCkvMWU1LGw9bisoaS10KS8yO2UucmVjdChsLHIrYyx0LGEtYyksZS5tb3ZlVG8obixyK2MpLGUubGluZVRvKHUsciksZS5saW5lVG8obitpLHIrYyksZS5jbG9zZVBhdGgoKTticmVha31jYXNlYGRvd25hcnJvd2NhbGxvdXRgOntsZXQgdD1pKihvPz81ZTQpLzFlNSxjPWEqKHM/PzVlNCkvMWU1LGw9bisoaS10KS8yO2UucmVjdChsLHIsdCxhLWMpLGUubW92ZVRvKG4scithLWMpLGUubGluZVRvKHUscithKSxlLmxpbmVUbyhuK2kscithLWMpLGUuY2xvc2VQYXRoKCk7YnJlYWt9Y2FzZWBsZWZ0cmlnaHRhcnJvd2NhbGxvdXRgOntsZXQgdD1hKihvPz81ZTQpLzFlNSxjPWkqKHM/PzI1ZTMpLzFlNSxsPXIrKGEtdCkvMjtlLnJlY3QobitjLGwsaS0yKmMsdCksZS5tb3ZlVG8obitjLHIpLGUubGluZVRvKG4sZCksZS5saW5lVG8obitjLHIrYSksZS5jbG9zZVBhdGgoKSxlLm1vdmVUbyhuK2ktYyxyKSxlLmxpbmVUbyhuK2ksZCksZS5saW5lVG8obitpLWMscithKSxlLmNsb3NlUGF0aCgpO2JyZWFrfWNhc2VgbGVmdHJpZ2h0dXBhcnJvd2A6e2xldCB0PWkqKG8/PzI1ZTMpLzFlNSxjPWEqKHM/PzNlNCkvMWU1LGw9bisoaS10KS8yO2UubW92ZVRvKHUsciksZS5saW5lVG8obitpLHIrYyksZS5saW5lVG8obCt0LHIrYyksZS5saW5lVG8obCt0LHIrYSksZS5saW5lVG8obCxyK2EpLGUubGluZVRvKGwscitjKSxlLmxpbmVUbyhuLHIrYyksZS5jbG9zZVBhdGgoKTticmVha31jYXNlYHV0dXJuYXJyb3dgOntsZXQgdD1pKihvPz8yNWUzKS8xZTUscz0oaS10KS8yLGM9TWF0aC5tYXgoMCxzLXQpLGw9bit0K3MsdT1yK3QrcyxkPXQqMixmPXIrYS10KjIuNTtlLm1vdmVUbyhuLHIrYSksZS5saW5lVG8obix1KSxlLmFyYyhsLHUscyxNYXRoLlBJLDApLGUubGluZVRvKG4raSxmKSxlLmxpbmVUbyhuK2krKGQtdCkvMixmKSxlLmxpbmVUbyhsK3QvMixyK2EpLGUubGluZVRvKG4raS0oZC10KS8yLXQsZiksZS5saW5lVG8obitpLXQsZiksZS5saW5lVG8obitpLXQsdSksZS5hcmMobCx1LGMsMCxNYXRoLlBJLCEwKSxlLmxpbmVUbyhuK3QscithKSxlLmNsb3NlUGF0aCgpO2JyZWFrfWNhc2VgYmVudGFycm93YDpjYXNlYGJlbnR1cGFycm93YDp7bGV0IHQ9TWF0aC5taW4oaSxhKSouMjU7ZS5tb3ZlVG8obixkLXQvMiksZS5saW5lVG8obitpLXQqMixkLXQvMiksZS5saW5lVG8obitpLXQqMixyK3QpLGUubGluZVRvKG4raSxkKSxlLmxpbmVUbyhuK2ktdCoyLHIrYS10KSxlLmxpbmVUbyhuK2ktdCoyLGQrdC8yKSxlLmxpbmVUbyhuLGQrdC8yKSxlLmNsb3NlUGF0aCgpO2JyZWFrfWNhc2VgcGx1c2A6e2xldCB0PU1hdGgubWluKGksYSkqKG8/PzI1ZTMpLzFlNTtlLnJlY3QodS10LHIsMip0LGEpLGUucmVjdChuLGQtdCxpLDIqdCk7YnJlYWt9Y2FzZWBtYXRobm90ZXF1YWxgOntsZXQgdD1NYXRoLm1pbig1ZTQsTWF0aC5tYXgoMCxvPz8yMzUyMCkpLG49TWF0aC5taW4oNjZlNSxNYXRoLm1heCg0MmU1LHM/PzY2ZTUpKSxsPU1hdGgubWluKDFlNS0yKnQsTWF0aC5tYXgoMCxjPz8xMTc2MCkpLGY9YSp0LzFlNSxwPWEqbC8yZTUsbT1pKjczNDkwLzJlNSxoPWEvMixnPShuLzZlNC05MCkqTWF0aC5QSS8xODAsXz1oKk1hdGgudGFuKGcpLHY9TWF0aC5oeXBvdChfLGgpKmYvaDtlLnJlY3QodS1tLGQtcC1mLDIqbSxmKSxlLnJlY3QodS1tLGQrcCwyKm0sZiksZS5tb3ZlVG8odStfLXYvMixyKSxlLmxpbmVUbyh1K18rdi8yLHIpLGUubGluZVRvKHUtXyt2LzIscithKSxlLmxpbmVUbyh1LV8tdi8yLHIrYSksZS5jbG9zZVBhdGgoKTticmVha31jYXNlYGZsb3djaGFydGRlbGF5YDp7bGV0IHQ9YS8yO2UubW92ZVRvKG4sciksZS5saW5lVG8obitpLXQsciksZS5hcmMobitpLXQsZCx0LC1NYXRoLlBJLzIsTWF0aC5QSS8yKSxlLmxpbmVUbyhuLHIrYSksZS5jbG9zZVBhdGgoKTticmVha31jYXNlYGZsb3djaGFydGRpc3BsYXlgOntsZXQgdD1pKi4yLG89aSouMTU7ZS5tb3ZlVG8obit0LHIpLGUubGluZVRvKG4raS1vLHIpLGUuYXJjKG4raS1vLGQsYS8yLC1NYXRoLlBJLzIsTWF0aC5QSS8yKSxlLmxpbmVUbyhuK3QscithKSxlLmxpbmVUbyhuLGQpLGUuY2xvc2VQYXRoKCk7YnJlYWt9Y2FzZWBmbG93Y2hhcnRwdW5jaGVkY2FyZGA6e2xldCB0PWkqLjI7ZS5tb3ZlVG8obit0LHIpLGUubGluZVRvKG4raSxyKSxlLmxpbmVUbyhuK2ktdCxyK2EpLGUubGluZVRvKG4scithKSxlLmNsb3NlUGF0aCgpO2JyZWFrfWNhc2VgZmxvd2NoYXJ0b2ZmcGFnZWNvbm5lY3RvcmA6e2xldCB0PWEqLjM7ZS5tb3ZlVG8obixyKSxlLmxpbmVUbyhuK2ksciksZS5saW5lVG8obitpLHIrYS10KSxlLmxpbmVUbyh1LHIrYSksZS5saW5lVG8obixyK2EtdCksZS5jbG9zZVBhdGgoKTticmVha31jYXNlYGZsb3djaGFydG9ubGluZXN0b3JhZ2VgOmNhc2VgZmxvd2NoYXJ0bWFudWFsbGFiZWxgOmNhc2VgZmxvd2NoYXJ0cHVuY2hlZGRpc2tgOmUucmVjdChuLHIsaSxhKTticmVhaztjYXNlYGhvcml6b250YWxzY3JvbGxgOntsZXQgdD1NYXRoLm1pbihpLGEpKi4xNTtlLnJvdW5kUmVjdChuK3QscixpLXQsYSx0KSxlLm1vdmVUbyhuK3Qscit0KjIpLGUuYXJjKG4rdCxyK3QsdCxNYXRoLlBJLzIsTWF0aC5QSSoyLjUpO2JyZWFrfWNhc2VgdmVydGljYWxzY3JvbGxgOntsZXQgdD1NYXRoLm1pbihpLGEpKi4xNTtlLnJvdW5kUmVjdChuLHIrdCxpLGEtdCx0KSxlLm1vdmVUbyhuK3QqMixyK3QpLGUuYXJjKG4rdCxyK3QsdCwwLE1hdGguUEkqMik7YnJlYWt9Y2FzZWByaWJib25gOntsZXQgdD1NYXRoLm1pbigzMzMzMyxNYXRoLm1heCgwLG8/PzE2NjY3KSksYz1pKk1hdGgubWluKDc1ZTMsTWF0aC5tYXgoMjVlMyxzPz81ZTQpKS8yZTUsbD1pLzgsdT1pLzMyLGQ9aS8yLWMsZj1pLzIrYyxwPWQrdSxtPWYtdSxoPWQrbCxnPWYtbCxfPWgtdSx2PWcrdSx5PWktbCxiPWEqdC8yZTUseD1hKnQvMWU1LFM9YS14LEM9Uy8yO2UubW92ZVRvKG4sciksZS5saW5lVG8obitfLHIpLGUubGluZVRvKG4rcCxyK2IpLGUubGluZVRvKG4rbSxyK3gpLGUubGluZVRvKG4rdixyK2IpLGUubGluZVRvKG4raSxyKSxlLmxpbmVUbyhuK3kscitDKSxlLmxpbmVUbyhuK2kscitTKSxlLmxpbmVUbyhuK2YscitTKSxlLmxpbmVUbyhuK2YscithKSxlLmxpbmVUbyhuK3AscithKSxlLmxpbmVUbyhuK2QscitTKSxlLmxpbmVUbyhuLHIrUyksZS5saW5lVG8obitsLHIrQyksZS5jbG9zZVBhdGgoKTticmVha31jYXNlYHJpYmJvbjJgOntsZXQgdD1NYXRoLm1pbigzMzMzMyxNYXRoLm1heCgwLG8/PzE2NjY3KSksYz1pKk1hdGgubWluKDc1ZTMsTWF0aC5tYXgoMjVlMyxzPz81ZTQpKS8yZTUsbD1pLzgsdT1pLzMyLGQ9aS8yLWMsZj1pLzIrYyxwPWQrdSxtPWYtdSxoPWQrbCxnPWYtbCxfPWgtdSx2PWcrdSx5PWktbCxiPWEqdC8yZTUseD1hKnQvMWU1LFM9YS1iLEM9YS14LHc9eCxUPSh3K2EpLzI7ZS5tb3ZlVG8obixyK2EpLGUubGluZVRvKG4rXyxyK2EpLGUubGluZVRvKG4rcCxyK1MpLGUubGluZVRvKG4rbSxyK0MpLGUubGluZVRvKG4rdixyK1MpLGUubGluZVRvKG4raSxyK2EpLGUubGluZVRvKG4reSxyK1QpLGUubGluZVRvKG4raSxyK3cpLGUubGluZVRvKG4rZixyK3cpLGUubGluZVRvKG4rZixyKSxlLmxpbmVUbyhuK3AsciksZS5saW5lVG8obitkLHIrdyksZS5saW5lVG8obixyK3cpLGUubGluZVRvKG4rbCxyK1QpLGUuY2xvc2VQYXRoKCk7YnJlYWt9Y2FzZWBlbGxpcHNlcmliYm9uYDp7bGV0IHQ9TWF0aC5taW4oMWU1LE1hdGgubWF4KDAsbz8/MjVlMykpLGw9TWF0aC5taW4oNzVlMyxNYXRoLm1heCgyNWUzLHM/PzVlNCkpLHU9TWF0aC5tYXgoMCx0LSgxZTUtdCkvMiksZD1NYXRoLm1pbih0LE1hdGgubWF4KHUsYz8/MTI1MDApKSxmPWkvOCxwPWkqbC8yZTUsbT1pLzItcCxoPW0rZixnPWktaCxfPWktbSx2PWktZix5PWEqZC8xZTUsYj00KnkvaSx4PWIqKGgtaCpoL2kpLFM9aC8yLEM9YipTLHc9aS1TLFQ9YSp0LzFlNSxFPVQteSxEPWIqKG0tbSptL2kpLE89RCtFLGs9eStFLU8reStFLEE9YS1ULGo9KHkqMTQvMTYrQSkvMixNPUQrQSxOPU8rQSxQPW0vMixGPWIqUCtBLEk9aS1QLEw9aytBO2UubW92ZVRvKG4sciksZS5xdWFkcmF0aWNDdXJ2ZVRvKG4rUyxyK0MsbitoLHIreCksZS5saW5lVG8obittLHIrTyksZS5xdWFkcmF0aWNDdXJ2ZVRvKG4raS8yLHIrayxuK18scitPKSxlLmxpbmVUbyhuK2cscit4KSxlLnF1YWRyYXRpY0N1cnZlVG8obit3LHIrQyxuK2ksciksZS5saW5lVG8obit2LHIraiksZS5saW5lVG8obitpLHIrQSksZS5xdWFkcmF0aWNDdXJ2ZVRvKG4rSSxyK0YsbitfLHIrTSksZS5saW5lVG8obitfLHIrTiksZS5xdWFkcmF0aWNDdXJ2ZVRvKG4raS8yLHIrTCxuK20scitOKSxlLmxpbmVUbyhuK20scitNKSxlLnF1YWRyYXRpY0N1cnZlVG8obitQLHIrRixuLHIrQSksZS5saW5lVG8obitmLHIraiksZS5jbG9zZVBhdGgoKTticmVha31jYXNlYGVsbGlwc2VyaWJib24yYDp7bGV0IHQ9TWF0aC5taW4oMWU1LE1hdGgubWF4KDAsbz8/MjVlMykpLGw9TWF0aC5taW4oNzVlMyxNYXRoLm1heCgyNWUzLHM/PzVlNCkpLHU9TWF0aC5tYXgoMCx0LSgxZTUtdCkvMiksZD1NYXRoLm1pbih0LE1hdGgubWF4KHUsYz8/MTI1MDApKSxmPWkvOCxwPWkqbC8yZTUsbT1pLzItcCxoPW0rZixnPWktaCxfPWktbSx2PWktZix5PWEqZC8xZTUsYj00KnkvaSx4PWEtYiooaC1oKmgvaSksUz1oLzIsQz1hLWIqUyx3PWktUyxUPWEqdC8xZTUsRT1ULXksRD1iKihtLW0qbS9pKSxPPUQrRSxrPWEtTyxBPXkrRS1PK3krRSxqPWEtQSxNPWEtVCxOPWEtKHkqMTQvMTYrTSkvMixQPWEtKEQrTSksRj1hLShPK00pLEk9bS8yLEw9YS0oYipJK00pLFI9aS1JLHo9YS0oQStNKTtlLm1vdmVUbyhuLHIrYSksZS5xdWFkcmF0aWNDdXJ2ZVRvKG4rUyxyK0MsbitoLHIreCksZS5saW5lVG8obittLHIrayksZS5xdWFkcmF0aWNDdXJ2ZVRvKG4raS8yLHIraixuK18scitrKSxlLmxpbmVUbyhuK2cscit4KSxlLnF1YWRyYXRpY0N1cnZlVG8obit3LHIrQyxuK2kscithKSxlLmxpbmVUbyhuK3YscitOKSxlLmxpbmVUbyhuK2kscitUKSxlLnF1YWRyYXRpY0N1cnZlVG8obitSLHIrTCxuK18scitQKSxlLmxpbmVUbyhuK18scitGKSxlLnF1YWRyYXRpY0N1cnZlVG8obitpLzIscit6LG4rbSxyK0YpLGUubGluZVRvKG4rbSxyK1ApLGUucXVhZHJhdGljQ3VydmVUbyhuK0kscitMLG4scitUKSxlLmxpbmVUbyhuK2YscitOKSxlLmNsb3NlUGF0aCgpO2JyZWFrfWNhc2VgY2lyY3VsYXJhcnJvd2A6e2xldCB0PShzPz8wKS82ZTQqTWF0aC5QSS8xODAsbj0obz8/MTYyZTUpLzZlNCpNYXRoLlBJLzE4MCxyPShjPz81ZTQpLzFlNSxsPU1hdGgubWluKGksYSkvMixmPWwqKDEtcikscD0obCtmKS8yLG09bC1mLGg9dCtuO2UuYXJjKHUsZCxsLHQsaCwhMSksZS5hcmModSxkLGYsaCx0LCEwKSxlLmNsb3NlUGF0aCgpO2xldCBnPU1hdGguc2luKGgpLF89LU1hdGguY29zKGgpLHY9bSoxLjUseT11K3AqTWF0aC5jb3MoaCkrdipnLGI9ZCtwKk1hdGguc2luKGgpK3YqXztlLm1vdmVUbyh5LGIpLGUubGluZVRvKHUrbCpNYXRoLmNvcyhoKSxkK2wqTWF0aC5zaW4oaCkpLGUubGluZVRvKHUrZipNYXRoLmNvcyhoKSxkK2YqTWF0aC5zaW4oaCkpLGUuY2xvc2VQYXRoKCk7YnJlYWt9Y2FzZWBjdXJ2ZWRyaWdodGFycm93YDp7bGV0IHQ9TWF0aC5taW4oaSxhKSxsPWEvMix1PTVlNCphL3QsZD1NYXRoLm1pbih1LE1hdGgubWF4KDAscz8/NWU0KSksZj10Kk1hdGgubWluKGQsTWF0aC5tYXgoMCxvPz8yNWUzKSkvMWU1LHA9dCpkLzFlNSxtPWwtKGYrcCkvNCxoPSgyKm0pKioyLWYqKjIsZz0xZTUqKE1hdGguc3FydChNYXRoLm1heCgwLGgpKSppLygyKm0pKS90LF89dCpNYXRoLm1pbihnLE1hdGgubWF4KDAsYz8/MjVlMykpLzFlNSx2PU1hdGguc3FydChNYXRoLm1heCgwLGkqaS1fKl8pKSptL2kseT1tK2YsYj1tK3YseD15K3YsUz0ocC1mKS8yLEM9Yi1TLHc9eCtTLFQ9YS1wLzIsRT1pLV8sRD1NYXRoLmF0YW4yKF8sdiksTz0tRCxrPU1hdGguUEktRDtlLm1vdmVUbyhuLHIrbSksTW8oZSxuLHIrbSxpLG0sTWF0aC5QSSxPKSxlLmxpbmVUbyhuK0UscitDKSxlLmxpbmVUbyhuK2kscitUKSxlLmxpbmVUbyhuK0Uscit3KSxlLmxpbmVUbyhuK0Uscit4KSxNbyhlLG4rRSxyK3gsaSxtLGssRCksZS5jbG9zZVBhdGgoKTticmVha31jYXNlYGN1cnZlZGxlZnRhcnJvd2A6e2xldCB0PU1hdGgubWluKGksYSksbD1hLzIsdT01ZTQqYS90LGQ9TWF0aC5taW4odSxNYXRoLm1heCgwLHM/PzVlNCkpLGY9dCpNYXRoLm1pbihkLE1hdGgubWF4KDAsbz8/MjVlMykpLzFlNSxwPXQqZC8xZTUsbT1sLShmK3ApLzQsaD0oMiptKSoqMi1mKioyLGc9TWF0aC5zcXJ0KE1hdGgubWF4KDAsaCkpKmkvKDIqbSksXz0xZTUqZy90LHY9dCpNYXRoLm1pbihfLE1hdGgubWF4KDAsYz8/MjVlMykpLzFlNSx5PU1hdGguc3FydChNYXRoLm1heCgwLGkqaS12KnYpKSptL2ksYj1tK2YseD1tK3ksUz1iK3ksQz0ocC1mKS8yLHc9eC1DLFQ9UytDLEU9YS1wLzIsRD12LE89TWF0aC5hdGFuMih2LHkpLGs9Zi8yLEE9TWF0aC5hdGFuMihrLGcpLGo9QS1PLE09Ty1BLE49LUE7ZS5tb3ZlVG8obixyK0UpLGUubGluZVRvKG4rRCxyK3cpLGUubGluZVRvKG4rRCxyK3gpO2xldCBQPU1vKGUsbitELHIreCxpLG0sTyxqKTtNbyhlLFAueCxQLnksaSxtLE4sTSksZS5saW5lVG8obitELHIrVCksZS5jbG9zZVBhdGgoKTticmVha31jYXNlYGN1cnZlZHVwYXJyb3dgOntsZXQgdD1NYXRoLm1pbihpLGEpLGw9aS8yLHU9NWU0KmkvdCxkPU1hdGgubWluKHUsTWF0aC5tYXgoMCxzPz81ZTQpKSxmPXQqTWF0aC5taW4oMWU1LE1hdGgubWF4KDAsbz8/MjVlMykpLzFlNSxwPXQqZC8xZTUsbT1sLShmK3ApLzQsaD0oMiptKSoqMi1mKioyLGc9TWF0aC5zcXJ0KE1hdGgubWF4KDAsaCkpKmEvKDIqbSksXz0xZTUqZy90LHY9dCpNYXRoLm1pbihfLE1hdGgubWF4KDAsYz8/MjVlMykpLzFlNSx5PU1hdGguc3FydChNYXRoLm1heCgwLGEqYS12KnYpKSptL2EsYj1tK2YseD1tK3ksUz1iK3ksQz0ocC1mKS8yLHc9eC1DLFQ9UytDLEU9aS1wLzIsRD12LE89TWF0aC5hdGFuMih2LHkpLGs9Zi8yLEE9TWF0aC5hdGFuMihrLGcpLGo9QS1PLE09Ty1BLE49TWF0aC5QSS8yLU8sUD1NYXRoLlBJLzItQTtlLm1vdmVUbyhuK0UsciksZS5saW5lVG8obitULHIrRCksZS5saW5lVG8obitTLHIrRCk7bGV0IEY9TW8oZSxuK1MscitELG0sYSxOLE0pO01vKGUsRi54LEYueSxtLGEsUCxqKSxlLmxpbmVUbyhuK3cscitEKSxlLmNsb3NlUGF0aCgpO2JyZWFrfWNhc2VgY3VydmVkZG93bmFycm93YDp7bGV0IHQ9TWF0aC5taW4oaSxhKSxsPWkvMix1PTVlNCppL3QsZD1NYXRoLm1pbih1LE1hdGgubWF4KDAscz8/NWU0KSksZj10Kk1hdGgubWluKDFlNSxNYXRoLm1heCgwLG8/PzI1ZTMpKS8xZTUscD10KmQvMWU1LG09bC0oZitwKS80LGg9KDIqbSkqKjItZioqMixnPU1hdGguc3FydChNYXRoLm1heCgwLGgpKSphLygyKm0pLF89MWU1KmcvdCx2PXQqTWF0aC5taW4oXyxNYXRoLm1heCgwLGM/PzI1ZTMpKS8xZTUseT1NYXRoLnNxcnQoTWF0aC5tYXgoMCxhKmEtdip2KSkqbS9hLGI9bStmLHg9bSt5LFM9Yit5LEM9KHAtZikvMix3PXgtQyxUPVMrQyxFPWktcC8yLEQ9YS12LE89TWF0aC5hdGFuMih2LHkpLGs9Zi8yLEE9TWF0aC5hdGFuMihrLGcpLGo9MypNYXRoLlBJLzIrTzszKk1hdGguUEkvMi1BLEEtTWF0aC5QSS8yLE1hdGguUEkvMi1BLGUubW92ZVRvKG4rRSxyK2EpLGUubGluZVRvKG4rdyxyK0QpLGUubGluZVRvKG4reCxyK0QpLE1vKGUsbit4LHIrRCxtLGEsaiwtTyksZS5saW5lVG8obitiLHIpLE1vKGUsbitiLHIsbSxhLDMqTWF0aC5QSS8yLE8pLGUubGluZVRvKG4rVCxyK0QpLGUuY2xvc2VQYXRoKCk7YnJlYWt9Y2FzZWBzdHJpcGVkcmlnaHRhcnJvd2A6e2xldCB0PU1hdGgubWluKGksYSksYz10LzMyLGw9dC8xNix1PXQvOCxmPXQqKG8/PzVlNCkvMWU1LHA9aSoocz8/NWU0KS8xZTUsbT1kLWYvMixoPWQrZi8yLGc9bitpLXA7ZS5yZWN0KG4sbSxjLGYpLGUucmVjdChuK2wsbSxsLGYpLGUucmVjdChuK3UsbSx1LGYpLGUubW92ZVRvKGcsbSksZS5saW5lVG8oZyxyKSxlLmxpbmVUbyhuK2ksZCksZS5saW5lVG8oZyxyK2EpLGUubGluZVRvKGcsaCksZS5saW5lVG8obit1KjIsaCksZS5saW5lVG8obit1KjIsbSksZS5jbG9zZVBhdGgoKTticmVha31jYXNlYGZsb3djaGFydG1hZ25ldGljZGlza2A6e2xldCB0PWEqLjE1O2UubW92ZVRvKG4scit0KSxlLmVsbGlwc2UodSxyK3QsaS8yLHQsMCxNYXRoLlBJLDApLGUubGluZVRvKG4raSxyK2EtdCksZS5lbGxpcHNlKHUscithLXQsaS8yLHQsMCwwLE1hdGguUEkpLGUubGluZVRvKG4scit0KSxlLmNsb3NlUGF0aCgpLGUubW92ZVRvKG4raSxyK3QpLGUuZWxsaXBzZSh1LHIrdCxpLzIsdCwwLDAsTWF0aC5QSSk7YnJlYWt9Y2FzZWBmbG93Y2hhcnRtYWduZXRpY2RydW1gOntsZXQgdD1pKi4xNTtlLm1vdmVUbyhuK3QsciksZS5saW5lVG8obitpLHIpLGUubGluZVRvKG4raSxyK2EpLGUubGluZVRvKG4rdCxyK2EpLGUuZWxsaXBzZShuK3QsZCx0LGEvMiwwLE1hdGguUEkvMiwtTWF0aC5QSS8yLCEwKSxlLmNsb3NlUGF0aCgpLGUubW92ZVRvKG4raSxyKSxlLmVsbGlwc2UobitpLGQsdCxhLzIsMCwtTWF0aC5QSS8yLE1hdGguUEkvMik7YnJlYWt9Y2FzZWBmbG93Y2hhcnRtYWduZXRpY3RhcGVgOntsZXQgdD1NYXRoLm1pbihpLGEpLzIsbj11K3QqLjU7ZS5tb3ZlVG8odSxyK2EpLGUuYXJjKHUsZCx0LE1hdGguUEkvMixNYXRoLlBJLzIrTWF0aC5QSSoyKi44NzUpLGUubGluZVRvKG4sZCt0Ki41KSxlLmxpbmVUbyhuLHIrYSksZS5jbG9zZVBhdGgoKTticmVha31jYXNlYGZsb3djaGFydHB1bmNoZWR0YXBlYDp7bGV0IHQ9YSouMTI7ZS5tb3ZlVG8obixyKSxlLmxpbmVUbyhuK2ksciksZS5saW5lVG8obitpLHIrYS10KSxlLmJlemllckN1cnZlVG8obitpKi43NSxyK2EsbitpKi4yNSxyK2EtdCoyLG4scithLXQpLGUuY2xvc2VQYXRoKCksZS5tb3ZlVG8obixyK3QpLGUuYmV6aWVyQ3VydmVUbyhuK2kqLjI1LHIsbitpKi43NSxyK3QqMixuK2kscit0KTticmVha31jYXNlYGZsb3djaGFydG1hbnVhbG9wZXJhdGlvbmA6e2xldCB0PWkqLjE1O2UubW92ZVRvKG4rdCxyKSxlLmxpbmVUbyhuK2ktdCxyKSxlLmxpbmVUbyhuK2kscithKSxlLmxpbmVUbyhuLHIrYSksZS5jbG9zZVBhdGgoKTticmVha31jYXNlYGZsb3djaGFydG11bHRpZG9jdW1lbnRgOntsZXQgdD1hKi4xLG89aSouMDQ7ZS5yZWN0KG4rbyoyLHItYSouMDgsaS1vKjIsYSouMSksZS5yZWN0KG4rbyxyLWEqLjA0LGktbyxhKi4wNiksZS5tb3ZlVG8obixyKSxlLmxpbmVUbyhuK2ksciksZS5saW5lVG8obitpLHIrYS10KSxlLmJlemllckN1cnZlVG8obitpKi43NSxyK2EsbitpKi4yNSxyK2EtdCoyLG4scithLXQpLGUuY2xvc2VQYXRoKCk7YnJlYWt9Y2FzZWBydHRyaWFuZ2xlYDplLm1vdmVUbyhuLHIpLGUubGluZVRvKG4scithKSxlLmxpbmVUbyhuK2kscithKSxlLmNsb3NlUGF0aCgpO2JyZWFrO2RlZmF1bHQ6ZS5yZWN0KG4scixpLGEpO2JyZWFrfX1mdW5jdGlvbiBSbyhlLHQsbil7bGV0IHI9TWF0aC5tYXgoLjUsdC53aWR0aCpuKSxpPWUudz09PWBzbWA/NDplLnc9PT1gbGdgPzg6NixhPWUubGVuPT09YHNtYD80OmUubGVuPT09YGxnYD84OjY7cmV0dXJue2x3OnIsaGFsZlc6cippLzIsbGVuOnIqYX19Y29uc3Qgem89bmV3IFNldChbYHRyaWFuZ2xlYCxgc3RlYWx0aGAsYGRpYW1vbmRgLGBvdmFsYF0pO2Z1bmN0aW9uIEJvKGUsdCxuKXtyZXR1cm4gem8uaGFzKGUudHlwZSk/Um8oZSx0LG4pLmxlbjowfWZ1bmN0aW9uIFZvKGUsdCxuKXtpZihuPD0wKXJldHVybnt4OmUueCx5OmUueX07bGV0IHI9dC54LWUueCxpPXQueS1lLnksYT1NYXRoLmh5cG90KHIsaSk7aWYoYTwxZS05KXJldHVybnt4OmUueCx5OmUueX07bGV0IG89TWF0aC5taW4obixhKS9hO3JldHVybnt4OmUueCtyKm8seTplLnkraSpvfX1mdW5jdGlvbiBIbyhlLHQsbixyLGksYSxvLHMpe2lmKGkudHlwZT09PWBub25lYClyZXR1cm47bGV0e2x3OmMsaGFsZlc6bCxsZW46dX09Um8oaSxhLG8pLGQ9cz8/UG4oYS5jb2xvcik7c3dpdGNoKGUuc2F2ZSgpLGUudHJhbnNsYXRlKHQsbiksZS5yb3RhdGUociksZS5maWxsU3R5bGU9ZCxlLnN0cm9rZVN0eWxlPWQsZS5saW5lV2lkdGg9YyxlLnNldExpbmVEYXNoKFtdKSxlLmJlZ2luUGF0aCgpLGkudHlwZSl7Y2FzZWB0cmlhbmdsZWA6Y2FzZWBzdGVhbHRoYDplLm1vdmVUbygwLDApLGUubGluZVRvKC11LC1sKSxlLmxpbmVUbygtdSxsKSxlLmNsb3NlUGF0aCgpLGUuZmlsbCgpO2JyZWFrO2Nhc2VgYXJyb3dgOmUubGluZUNhcD1gcm91bmRgLGUubGluZUpvaW49YHJvdW5kYCxlLm1vdmVUbygtdSwtbCksZS5saW5lVG8oMCwwKSxlLmxpbmVUbygtdSxsKSxlLnN0cm9rZSgpO2JyZWFrO2Nhc2VgZGlhbW9uZGA6ZS5tb3ZlVG8oMCwwKSxlLmxpbmVUbygtdS8yLC1sKSxlLmxpbmVUbygtdSwwKSxlLmxpbmVUbygtdS8yLGwpLGUuY2xvc2VQYXRoKCksZS5maWxsKCk7YnJlYWs7Y2FzZWBvdmFsYDplLmVsbGlwc2UoLXUvMiwwLHUvMixsLDAsMCxNYXRoLlBJKjIpLGUuZmlsbCgpO2JyZWFrfWUucmVzdG9yZSgpfWZ1bmN0aW9uIFVvKGUsdCxuKXtsZXR7eDpyLHk6aSx3OmEsaDpvfT10LnJlY3Qse3JvdGF0aW9uRGVnOnMsZmxpcEg6YyxmbGlwVjpsfT10LnRyYW5zZm9ybTtlLnNhdmUoKTt0cnl7KHMhPT0wfHxjfHxsKSYmKGUudHJhbnNsYXRlKHIrYS8yLGkrby8yKSxzIT09MCYmZS5yb3RhdGUocypNYXRoLlBJLzE4MCksZS5zY2FsZShjPy0xOjEsbD8tMToxKSxlLnRyYW5zbGF0ZSgtKHIrYS8yKSwtKGkrby8yKSkpLG4oKX1maW5hbGx5e2UucmVzdG9yZSgpfX1mdW5jdGlvbiBXbyhlLHQpe2xldHt4Om4seTpyLHc6aSxoOmF9PXQucmVjdDtpZihlLmJlZ2luUGF0aCgpLHQuZ2VvbWV0cnkua2luZD09PWBwcmVzZXRgKXtsZXQgbz1bLi4udC5nZW9tZXRyeS5hZGp1c3RtZW50c107U28oZSx0Lmdlb21ldHJ5Lm5hbWUsbixyLGksYSxvKXx8TG8oZSx0Lmdlb21ldHJ5Lm5hbWUsbixyLGksYSxvWzBdLG9bMV0sb1syXSxvWzNdKX1lbHNlIFFhKGUsdC5nZW9tZXRyeS5zdWJwYXRocyxuLHIsaSxhKTtlLmNsaXAoKX1jb25zdCBHbz1uZXcgU2V0KFtgbGluZWAsYHN0cmFpZ2h0Y29ubmVjdG9yMWAsYGJlbnRjb25uZWN0b3IyYCxgYmVudGNvbm5lY3RvcjNgLGBiZW50Y29ubmVjdG9yNGAsYGJlbnRjb25uZWN0b3I1YCxgY3VydmVkY29ubmVjdG9yMmAsYGN1cnZlZGNvbm5lY3RvcjNgLGBjdXJ2ZWRjb25uZWN0b3I0YCxgY3VydmVkY29ubmVjdG9yNWBdKSxLbz1uZXcgU2V0KFtgY2FsbG91dDFgLGBjYWxsb3V0MmAsYGNhbGxvdXQzYCxgYm9yZGVyY2FsbG91dDFgLGBib3JkZXJjYWxsb3V0MmAsYGJvcmRlcmNhbGxvdXQzYCxgYWNjZW50Y2FsbG91dDFgLGBhY2NlbnRjYWxsb3V0MmAsYGFjY2VudGNhbGxvdXQzYCxgYWNjZW50Ym9yZGVyY2FsbG91dDFgLGBhY2NlbnRib3JkZXJjYWxsb3V0MmAsYGFjY2VudGJvcmRlcmNhbGxvdXQzYF0pO2Z1bmN0aW9uIHFvKGUpe3JldHVybiBLby5oYXMoZSl8fGU9PT1gbGluZWB8fGU9PT1gc3RyYWlnaHRjb25uZWN0b3IxYHx8ZS5zdGFydHNXaXRoKGBiZW50Y29ubmVjdG9yYCl9ZnVuY3Rpb24gSm8oZSx0LG4scixpKXtpZihCbihlLHQsbiksdC5maWxsKXtsZXQgbj1Mbih0LmZpbGwsZSxyLngsci55LHIudyxyLmgsaSk7biYmKGUuc3Ryb2tlU3R5bGU9bil9fWZ1bmN0aW9uIFlvKGUsdCxuLHIpe2xldCBpPXQuc3Ryb2tlO2lmKCFpfHwhR28uaGFzKG4pJiYhS28uaGFzKG4pKXJldHVybjtsZXR7eDphLHk6byx3OnMsaDpjfT10LnJlY3QsbD1pLmZpbGw/TG4oaS5maWxsLGUsYSxvLHMsYyx0LnRyYW5zZm9ybS5yb3RhdGlvbkRlZyk/P3ZvaWQgMDp2b2lkIDAsdT1PbyhuLGEsbyxzLGMsWy4uLnQuZ2VvbWV0cnkua2luZD09PWBwcmVzZXRgP3QuZ2VvbWV0cnkuYWRqdXN0bWVudHM6W11dKTtpZih1KXtpZihxbyhuKSYmdS52ZXJ0aWNlcy5sZW5ndGg+PTImJihpLmhlYWRFbmR8fGkudGFpbEVuZCkpe2xldCBuPXUudmVydGljZXMubWFwKGU9Pih7eDplLngseTplLnl9KSk7aS50YWlsRW5kJiYobltuLmxlbmd0aC0xXT1WbyhuW24ubGVuZ3RoLTFdLG5bbi5sZW5ndGgtMl0sQm8oaS50YWlsRW5kLGkscikpKSxpLmhlYWRFbmQmJihuWzBdPVZvKG5bMF0sblsxXSxCbyhpLmhlYWRFbmQsaSxyKSkpLEpvKGUsaSxyLHQucmVjdCx0LnRyYW5zZm9ybS5yb3RhdGlvbkRlZyksZS5iZWdpblBhdGgoKSxlLm1vdmVUbyhuWzBdLngsblswXS55KTtmb3IobGV0IHQ9MTt0PG4ubGVuZ3RoO3QrKyllLmxpbmVUbyhuW3RdLngsblt0XS55KTtlLnN0cm9rZSgpfWkudGFpbEVuZCYmSG8oZSx1LmVuZC54LHUuZW5kLnksdS5lbmQuYW5nbGUsaS50YWlsRW5kLGkscixsKSxpLmhlYWRFbmQmJkhvKGUsdS5zdGFydC54LHUuc3RhcnQueSx1LnN0YXJ0LmFuZ2xlLGkuaGVhZEVuZCxpLHIsbCl9fWZ1bmN0aW9uIFhvKGUsdCxuKXtpZih0Lmdlb21ldHJ5LmtpbmQhPT1gY3VzdG9tYClyZXR1cm47bGV0IHI9dC5zdHJva2U7aWYoIXJ8fCFyLmhlYWRFbmQmJiFyLnRhaWxFbmQpcmV0dXJuO2xldCBpPXNvKHQuZ2VvbWV0cnkuc3VicGF0aHMpLHt4OmEseTpvLHc6cyxoOmN9PXQucmVjdCxsPXIuZmlsbD9MbihyLmZpbGwsZSxhLG8scyxjLHQudHJhbnNmb3JtLnJvdGF0aW9uRGVnKT8/dm9pZCAwOnZvaWQgMDtpLnN0YXJ0JiZyLmhlYWRFbmQmJkhvKGUsYStpLnN0YXJ0LngqcyxvK2kuc3RhcnQueSpjLE1hdGguYXRhbjIoaS5zdGFydC5keSpjLGkuc3RhcnQuZHgqcyksci5oZWFkRW5kLHIsbixsKSxpLmVuZCYmci50YWlsRW5kJiZIbyhlLGEraS5lbmQueCpzLG8raS5lbmQueSpjLE1hdGguYXRhbjIoaS5lbmQuZHkqYyxpLmVuZC5keCpzKSxyLnRhaWxFbmQscixuLGwpfWZ1bmN0aW9uIFpvKGUsdCxuKXtsZXR7eDpyLHk6aSx3OmEsaDpvfT10LnJlY3Q7VW8oZSx0LCgpPT57bGV0IHM9TG4odC5maWxsLGUscixpLGEsbyx0LnRyYW5zZm9ybS5yb3RhdGlvbkRlZyksYz10LnN0cm9rZSxsPWM/KCk9PntKbyhlLGMsbix0LnJlY3QsdC50cmFuc2Zvcm0ucm90YXRpb25EZWcpLGUuc3Ryb2tlKCl9Om51bGw7aWYodC5nZW9tZXRyeS5raW5kPT09YHByZXNldGApe2xldCB1PXQuZ2VvbWV0cnkubmFtZS50b0xvd2VyQ2FzZSgpLGQ9Wy4uLnQuZ2VvbWV0cnkuYWRqdXN0bWVudHNdLGY9cW8odSkmJiEhKGM/LmhlYWRFbmR8fGM/LnRhaWxFbmQpO2JvKHUpJiZEbyhlLHUscixpLGEsbyxkLHMsbCwoKT0+e30sZj97c2tpcFRyYWlsaW5nU3Ryb2tlOiEwfTp2b2lkIDApfHwoZS5iZWdpblBhdGgoKSxMbyhlLHUscixpLGEsbyxkWzBdLGRbMV0sZFsyXSxkWzNdKSxzJiZ1IT09YGFyY2AmJihlLmZpbGxTdHlsZT1zLHU9PT1gZG9udXRgfHx1PT09YHNtaWxleWZhY2VgfHx1PT09YGZyYW1lYD9lLmZpbGwoYGV2ZW5vZGRgKTplLmZpbGwoKSksbCYmbCgpKSxZbyhlLHQsdSxuKX1lbHNlIGUuYmVnaW5QYXRoKCksUWEoZSx0Lmdlb21ldHJ5LnN1YnBhdGhzLHIsaSxhLG8pLHMmJihlLmZpbGxTdHlsZT1zLGUuZmlsbCgpKSxsJiZsKCksWG8oZSx0LG4pfSl9Y29uc3QgUW89MTw8MjUsJG89UW8qNDt2YXIgZXM9Y2xhc3MgZSBleHRlbmRzIFJhbmdlRXJyb3J7Y29kZT1gb294bWwtZGVjb2RlZC1pbWFnZS1saW1pdGA7Y29uc3RydWN0b3IodCxuLHIpe3N1cGVyKGBPT1hNTCBkZWNvZGVkIGltYWdlIGxpbWl0IGV4Y2VlZGVkOiAke3R9ICR7cn0gPiAke259YCksdGhpcy5tZXRyaWM9dCx0aGlzLmxpbWl0PW4sdGhpcy5vYnNlcnZlZD1yLHRoaXMubmFtZT1gT294bWxEZWNvZGVkSW1hZ2VMaW1pdEVycm9yYCxPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxlLnByb3RvdHlwZSl9fTtjb25zdCB0cz0zMjc2NztmdW5jdGlvbiBucyhlLHQsbixyLGkpe2lmKG48NDB8fHQrNDA+ZS5ieXRlTGVuZ3RoKXJldHVybiBudWxsO2xldCBhPWUuZ2V0VWludDMyKHQsITApO2lmKGE8NDApcmV0dXJuIG51bGw7bGV0IG89ZS5nZXRJbnQzMih0KzQsITApLHM9ZS5nZXRJbnQzMih0KzgsITApLGM9ZS5nZXRVaW50MTYodCsxNCwhMCk7aWYoZS5nZXRVaW50MzIodCsxNiwhMCkhPT0wKXJldHVybiBudWxsO2xldCBsPXM8MCx1PU1hdGguYWJzKG8pLGQ9TWF0aC5hYnMocyk7aWYodTw9MHx8ZDw9MHx8dT50c3x8ZD50c3x8dSpkPjMzNTU0NDMyKXJldHVybiBudWxsO2xldCBmPW5ldyBVaW50OENsYW1wZWRBcnJheSh1KmQqNCkscD11KmMrMzE+PjU8PDI+Pj4wO2lmKHIrcCpkPnIraStwJiZyK3AqZD5lLmJ5dGVMZW5ndGgpcmV0dXJuIG51bGw7bGV0IG09bnVsbDtpZihjPD04KXtsZXQgbj1lLmdldFVpbnQzMih0KzMyLCEwKTtuPT09MCYmKG49MTw8Yyk7bGV0IHI9dCthO209W107Zm9yKGxldCB0PTA7dDxuO3QrKyl7bGV0IG49cit0KjQ7aWYobis0PmUuYnl0ZUxlbmd0aClicmVhaztsZXQgaT1lLmdldFVpbnQ4KG4pLGE9ZS5nZXRVaW50OChuKzEpLG89ZS5nZXRVaW50OChuKzIpO20ucHVzaChvPDwxNnxhPDw4fGkpfX1sZXQgaD0oZSx0LG4scixpLGEpPT57bGV0IG89KGUqdSt0KSo0O2Zbb109bixmW28rMV09cixmW28rMl09aSxmW28rM109YX0sZz0hMTtmb3IobGV0IHQ9MDt0PGQ7dCsrKXtsZXQgbj1sP3Q6ZC0xLXQsaT10LGE9cituKnA7aWYoYStwPmUuYnl0ZUxlbmd0aClicmVhaztpZihjPT09MzIpZm9yKGxldCB0PTA7dDx1O3QrKyl7bGV0IG49YSt0KjQscj1lLmdldFVpbnQ4KG4pLG89ZS5nZXRVaW50OChuKzEpLHM9ZS5nZXRVaW50OChuKzIpLGM9ZS5nZXRVaW50OChuKzMpO2MhPT0wJiYoZz0hMCksaChpLHQscyxvLHIsYyl9ZWxzZSBpZihjPT09MjQpe2ZvcihsZXQgdD0wO3Q8dTt0Kyspe2xldCBuPWErdCozO2goaSx0LGUuZ2V0VWludDgobisyKSxlLmdldFVpbnQ4KG4rMSksZS5nZXRVaW50OChuKSwyNTUpfWc9ITB9ZWxzZSBpZihjPT09OCYmbSl7Zm9yKGxldCB0PTA7dDx1O3QrKyl7bGV0IG49ZS5nZXRVaW50OChhK3QpLHI9bVtuXT8/MDtoKGksdCxyPj4xNiYyNTUscj4+OCYyNTUsciYyNTUsMjU1KX1nPSEwfWVsc2UgaWYoYz09PTQmJm0pe2ZvcihsZXQgdD0wO3Q8dTt0Kyspe2xldCBuPWUuZ2V0VWludDgoYSsodD4+MSkpLHI9dCYxP24mMTU6bj4+NCYxNSxvPW1bcl0/PzA7aChpLHQsbz4+MTYmMjU1LG8+PjgmMjU1LG8mMjU1LDI1NSl9Zz0hMH1lbHNlIGlmKGM9PT0xJiZtKXtmb3IobGV0IHQ9MDt0PHU7dCsrKXtsZXQgbj1lLmdldFVpbnQ4KGErKHQ+PjMpKT4+Ny0odCY3KSYxLHI9bVtuXT8/MDtoKGksdCxyPj4xNiYyNTUscj4+OCYyNTUsciYyNTUsMjU1KX1nPSEwfWVsc2UgcmV0dXJuIG51bGx9aWYoYz09PTMyJiYhZylmb3IobGV0IGU9MztlPGYubGVuZ3RoO2UrPTQpZltlXT0yNTU7cmV0dXJue3dpZHRoOnUsaGVpZ2h0OmQsZGF0YTpmfX1mdW5jdGlvbiBycyhlLHQsbil7aWYobjw0MHx8dCs0MD5lLmJ5dGVMZW5ndGgpcmV0dXJuIG51bGw7bGV0IHI9ZS5nZXRVaW50MzIodCwhMCk7aWYocjw0MClyZXR1cm4gbnVsbDtsZXQgaT1lLmdldFVpbnQxNih0KzE0LCEwKSxhPTA7aWYoaTw9OCl7bGV0IG49ZS5nZXRVaW50MzIodCszMiwhMCk7bj09PTAmJihuPTE8PGkpLGE9bn1lbHNlIGE9ZS5nZXRVaW50MzIodCszMiwhMCk7bGV0IG89cithKjQscz10K28sYz1uLW87cmV0dXJuIGM8PTA/bnVsbDpucyhlLHQsbyxzLGMpfWZ1bmN0aW9uIGlzKGUsdCxuLHIsaSxhKXt0cnl7bGV0IG89eG4odC53aWR0aCx0LmhlaWdodCk7aWYoIW8pcmV0dXJuITE7bGV0IHM9by5nZXRDb250ZXh0KGAyZGApO2lmKCFzKXJldHVybiExO2xldCBjPXMuY3JlYXRlSW1hZ2VEYXRhKHQud2lkdGgsdC5oZWlnaHQpO2MuZGF0YS5zZXQodC5kYXRhKSxzLnB1dEltYWdlRGF0YShjLDAsMCk7bGV0IGw9TWF0aC5taW4obixpKSx1PU1hdGgubWluKHIsYSksZD1NYXRoLmFicyhpLW4pLGY9TWF0aC5hYnMoYS1yKTtyZXR1cm4gZS5kcmF3SW1hZ2UobyxsLHUsZCxmKSwhMH1jYXRjaHtyZXR1cm4hMX19Y29uc3QgYXM9e0hFQURFUjoxLFBPTFlCRVpJRVI6MixQT0xZR09OOjMsUE9MWUxJTkU6NCxQT0xZQkVaSUVSVE86NSxQT0xZTElORVRPOjYsUE9MWVBPTFlMSU5FOjcsUE9MWVBPTFlHT046OCxTRVRXSU5ET1dFWFRFWDo5LFNFVFdJTkRPV09SR0VYOjEwLFNFVFZJRVdQT1JURVhURVg6MTEsU0VUVklFV1BPUlRPUkdFWDoxMixFT0Y6MTQsU0VUTUFQTU9ERToxNyxTRVRQT0xZRklMTE1PREU6MTksU0VUQktNT0RFOjE4LFNFVFRFWFRBTElHTjoyMixTRVRURVhUQ09MT1I6MjQsTU9WRVRPRVg6MjcsU0NBTEVWSUVXUE9SVEVYVEVYOjMxLFNDQUxFV0lORE9XRVhURVg6MzIsU0FWRURDOjMzLFJFU1RPUkVEQzozNCxTRVRXT1JMRFRSQU5TRk9STTozNSxNT0RJRllXT1JMRFRSQU5TRk9STTozNixTRUxFQ1RPQkpFQ1Q6MzcsQ1JFQVRFUEVOOjM4LENSRUFURUJSVVNISU5ESVJFQ1Q6MzksREVMRVRFT0JKRUNUOjQwLEVMTElQU0U6NDIsUkVDVEFOR0xFOjQzLExJTkVUTzo1NCxCRUdJTlBBVEg6NTksRU5EUEFUSDo2MCxDTE9TRUZJR1VSRTo2MSxTRUxFQ1RDTElQUEFUSDo2NyxFWFRDUkVBVEVGT05USU5ESVJFQ1RXOjgyLEVYVFRFWFRPVVRXOjg0LFBPTFlCRVpJRVIxNjo4NSxQT0xZR09OMTY6ODYsUE9MWUxJTkUxNjo4NyxQT0xZQkVaSUVSVE8xNjo4OCxQT0xZTElORVRPMTY6ODksUE9MWVBPTFlMSU5FMTY6OTAsUE9MWVBPTFlHT04xNjo5MSxDUkVBVEVNT05PQlJVU0g6OTMsQ1JFQVRFRElCUEFUVEVSTkJSVVNIUFQ6OTQsRVhUQ1JFQVRFUEVOOjk1LEJJVEJMVDo3NixTVFJFVENIRElCSVRTOjgxfSxvcz17V0hJVEVfQlJVU0g6MjE0NzQ4MzY0OCxMVEdSQVlfQlJVU0g6MjE0NzQ4MzY0OSxHUkFZX0JSVVNIOjIxNDc0ODM2NTAsREtHUkFZX0JSVVNIOjIxNDc0ODM2NTEsQkxBQ0tfQlJVU0g6MjE0NzQ4MzY1MixOVUxMX0JSVVNIOjIxNDc0ODM2NTMsV0hJVEVfUEVOOjIxNDc0ODM2NTQsQkxBQ0tfUEVOOjIxNDc0ODM2NTUsTlVMTF9QRU46MjE0NzQ4MzY1NixEQ19CUlVTSDoyMTQ3NDgzNjY2LERDX1BFTjoyMTQ3NDgzNjYyfSxzcz17VEVYVDoxLExPTUVUUklDOjIsSElNRVRSSUM6MyxMT0VOR0xJU0g6NCxISUVOR0xJU0g6NSxUV0lQUzo2LElTT1RST1BJQzo3LEFOSVNPVFJPUElDOjh9LGNzPSgpPT4oe20xMToxLG0xMjowLG0yMTowLG0yMjoxLGR4OjAsZHk6MH0pO2Z1bmN0aW9uIGxzKGUsdCl7cmV0dXJue20xMTplLm0xMSp0Lm0xMStlLm0yMSp0Lm0xMixtMTI6ZS5tMTIqdC5tMTErZS5tMjIqdC5tMTIsbTIxOmUubTExKnQubTIxK2UubTIxKnQubTIyLG0yMjplLm0xMip0Lm0yMStlLm0yMip0Lm0yMixkeDplLm0xMSp0LmR4K2UubTIxKnQuZHkrZS5keCxkeTplLm0xMip0LmR4K2UubTIyKnQuZHkrZS5keX19dmFyIHVzPWNsYXNze3A7Y29uc3RydWN0b3IoZSx0LG4pe3RoaXMuZHY9ZSx0aGlzLmVuZD1uLHRoaXMucD10fWdldCBwb3MoKXtyZXR1cm4gdGhpcy5wfXNldCBwb3MoZSl7dGhpcy5wPWV9Z2V0IHJlbWFpbmluZygpe3JldHVybiB0aGlzLmVuZC10aGlzLnB9aTE2KCl7bGV0IGU9dGhpcy5kdi5nZXRJbnQxNih0aGlzLnAsITApO3JldHVybiB0aGlzLnArPTIsZX1pMzIoKXtsZXQgZT10aGlzLmR2LmdldEludDMyKHRoaXMucCwhMCk7cmV0dXJuIHRoaXMucCs9NCxlfXUzMigpe2xldCBlPXRoaXMuZHYuZ2V0VWludDMyKHRoaXMucCwhMCk7cmV0dXJuIHRoaXMucCs9NCxlfWYzMigpe2xldCBlPXRoaXMuZHYuZ2V0RmxvYXQzMih0aGlzLnAsITApO3JldHVybiB0aGlzLnArPTQsZX14Zm9ybSgpe3JldHVybnttMTE6dGhpcy5mMzIoKSxtMTI6dGhpcy5mMzIoKSxtMjE6dGhpcy5mMzIoKSxtMjI6dGhpcy5mMzIoKSxkeDp0aGlzLmYzMigpLGR5OnRoaXMuZjMyKCl9fXNraXAoZSl7dGhpcy5wKz1lfX07ZnVuY3Rpb24gZHMoZSx0LG4pe3JldHVybiBlLnd0Lm0xMSp0K2Uud3QubTIxKm4rZS53dC5keH1mdW5jdGlvbiBmcyhlLHQsbil7cmV0dXJuIGUud3QubTEyKnQrZS53dC5tMjIqbitlLnd0LmR5fWZ1bmN0aW9uIHBzKGUpe3JldHVybiBlLndpbkV4dFg9PT0wPzE6ZS52cEV4dFgvZS53aW5FeHRYfWZ1bmN0aW9uIG1zKGUpe3JldHVybiBlLndpbkV4dFk9PT0wPzE6ZS52cEV4dFkvZS53aW5FeHRZfWZ1bmN0aW9uIGhzKGUpe3JldHVybiBNYXRoLm1pbihNYXRoLmFicyhwcyhlKSksTWF0aC5hYnMobXMoZSkpKX1mdW5jdGlvbiBncyhlKXtyZXR1cm4gZS5tYXBNb2RlPT09c3MuSVNPVFJPUElDP3BzKGUpPDA/LWhzKGUpOmhzKGUpOnBzKGUpfWZ1bmN0aW9uIF9zKGUpe3JldHVybiBlLm1hcE1vZGU9PT1zcy5JU09UUk9QSUM/bXMoZSk8MD8taHMoZSk6aHMoZSk6bXMoZSl9ZnVuY3Rpb24gdnMoZSx0KXtyZXR1cm4odC1lLndpbk9yZ1gpKmdzKGUpK2UudnBPcmdYfWZ1bmN0aW9uIHlzKGUsdCl7cmV0dXJuKHQtZS53aW5PcmdZKSpfcyhlKStlLnZwT3JnWX1mdW5jdGlvbiBicyhlLHQsbil7bGV0IHI9dnMoZSxkcyhlLHQsbikpLGk9eXMoZSxmcyhlLHQsbikpO3JldHVyblsoci1lLmxlZnQpKmUuVy9lLmJvdW5kc1csKGktZS50b3ApKmUuSC9lLmJvdW5kc0hdfWZ1bmN0aW9uIHhzKGUpe3JldHVybihNYXRoLmh5cG90KGUud3QubTExLGUud3QubTEyKStNYXRoLmh5cG90KGUud3QubTIxLGUud3QubTIyKSkvMn1mdW5jdGlvbiBTcyhlKXtyZXR1cm4oTWF0aC5hYnMoZ3MoZSkpK01hdGguYWJzKF9zKGUpKSkvMn1mdW5jdGlvbiBDcyhlKXtyZXR1cm4oZS5XL2UuYm91bmRzVytlLkgvZS5ib3VuZHNIKS8yfWZ1bmN0aW9uIHdzKGUpe3JldHVybiBNYXRoLmh5cG90KGUud3QubTIxLGUud3QubTIyKX1mdW5jdGlvbiBUcyhlKXtyZXR1cm4gZS5IL2UuYm91bmRzSH1mdW5jdGlvbiBFcyhlLHQpe2xldCBuPXQqeHMoZSkqU3MoZSkqQ3MoZSk7cmV0dXJuIE1hdGgubWF4KC43NSxuKX1mdW5jdGlvbiBEcyhlLHQpe2lmKGUubWFwTW9kZT10LHQ9PT1zcy5URVhUKXtlLndpbk9yZ1g9MCxlLndpbk9yZ1k9MCxlLnZwT3JnWD0wLGUudnBPcmdZPTAsZS53aW5FeHRYPTEsZS53aW5FeHRZPTEsZS52cEV4dFg9MSxlLnZwRXh0WT0xO3JldHVybn1pZih0PT09c3MuQU5JU09UUk9QSUN8fHQ9PT1zcy5JU09UUk9QSUN8fGUuZGV2UHhQZXJNbVg8PTB8fGUuZGV2UHhQZXJNbVk8PTApcmV0dXJuO2xldCBuPTI1LjQscj10PT09c3MuTE9NRVRSSUM/LjE6dD09PXNzLkhJTUVUUklDPy4wMTp0PT09c3MuTE9FTkdMSVNIPy4wMSpuOnQ9PT1zcy5ISUVOR0xJU0g/LjAwMSpuOnQ9PT1zcy5UV0lQUz9uLzE0NDA6MDtyPD0wfHwoZS53aW5PcmdYPTAsZS53aW5PcmdZPTAsZS52cE9yZ1g9MCxlLnZwT3JnWT0wLGUud2luRXh0WD0xLGUud2luRXh0WT0xLGUudnBFeHRYPXIqZS5kZXZQeFBlck1tWCxlLnZwRXh0WT0tKHIqZS5kZXZQeFBlck1tWSkpfWNvbnN0IE9zPXtbb3MuV0hJVEVfQlJVU0hdOntraW5kOmBicnVzaGAsZmlsbDpgI2ZmZmZmZmB9LFtvcy5MVEdSQVlfQlJVU0hdOntraW5kOmBicnVzaGAsZmlsbDpgI2MwYzBjMGB9LFtvcy5HUkFZX0JSVVNIXTp7a2luZDpgYnJ1c2hgLGZpbGw6YCM4MDgwODBgfSxbb3MuREtHUkFZX0JSVVNIXTp7a2luZDpgYnJ1c2hgLGZpbGw6YCM0MDQwNDBgfSxbb3MuQkxBQ0tfQlJVU0hdOntraW5kOmBicnVzaGAsZmlsbDpgIzAwMDAwMGB9LFtvcy5OVUxMX0JSVVNIXTp7a2luZDpgYnJ1c2hgLGZpbGw6bnVsbH19LGtzPXtbb3MuV0hJVEVfUEVOXTp7a2luZDpgcGVuYCxzdHJva2U6YCNmZmZmZmZgLHdpZHRoOjF9LFtvcy5CTEFDS19QRU5dOntraW5kOmBwZW5gLHN0cm9rZTpgIzAwMDAwMGAsd2lkdGg6MX0sW29zLk5VTExfUEVOXTp7a2luZDpgcGVuYCxzdHJva2U6bnVsbCx3aWR0aDoxfSxbb3MuRENfUEVOXTp7a2luZDpgcGVuYCxzdHJva2U6YCMwMDAwMDBgLHdpZHRoOjF9fTtmdW5jdGlvbiBBcyhlLHQpe2xldCBuPU9zW3RdO2lmKG4pe2UuY3VyQnJ1c2g9bjtyZXR1cm59bGV0IHI9a3NbdF07aWYocil7ZS5jdXJQZW49cjtyZXR1cm59dD09PW9zLkRDX0JSVVNIJiYoZS5jdXJCcnVzaD1lLmN1ckJydXNoPz97a2luZDpgYnJ1c2hgLGZpbGw6YCMwMDAwMDBgfSl9ZnVuY3Rpb24ganMoZSl7bGV0IHQ9MCxuPTAscj0wLGk9MDtmb3IobGV0IGE9MDthPGUuZGF0YS5sZW5ndGg7YSs9NCllLmRhdGFbYSszXSE9PTAmJih0Kz1lLmRhdGFbYV0sbis9ZS5kYXRhW2ErMV0scis9ZS5kYXRhW2ErMl0saSsrKTtpZihpPT09MClyZXR1cm5gIzgwODA4MGA7bGV0IGE9ZT0+TWF0aC5yb3VuZChlL2kpLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLGAwYCk7cmV0dXJuYCMke2EodCl9JHthKG4pfSR7YShyKX1gfWNvbnN0IE1zPWU9PltlLmkxNigpLGUuaTE2KCldLE5zPWU9PltlLmkzMigpLGUuaTMyKCldO2Z1bmN0aW9uIFBzKGUsdCxuKXt0LnNraXAoMTYpO2xldCByPXQudTMyKCk7aWYocjwyfHxyPjEwNDg1NzZ8fCFlLmN1clBlbnx8ZS5jdXJQZW4uc3Ryb2tlPT1udWxsKXJldHVybjtsZXR7Y3R4Oml9PWU7aS5iZWdpblBhdGgoKTtsZXQgYT0wLG89MDtmb3IobGV0IHM9MDtzPHImJiEodC5yZW1haW5pbmc8NCk7cysrKXtsZXRbcixjXT1uKHQpLFtsLHVdPWJzKGUscixjKTtzPT09MD9pLm1vdmVUbyhsLHUpOmkubGluZVRvKGwsdSksYT1yLG89Y31pLnN0cm9rZVN0eWxlPWUuY3VyUGVuLnN0cm9rZSxpLmxpbmVXaWR0aD1FcyhlLGUuY3VyUGVuLndpZHRoKSxpLnN0cm9rZSgpLGUuZHJldz0hMCxlLmN1clg9YSxlLmN1clk9b31mdW5jdGlvbiBGcyhlLHQsbil7dC5za2lwKDE2KTtsZXQgcj10LnUzMigpO2lmKHI8MXx8cj4xMDQ4NTc2KXJldHVybjtsZXR7Y3R4Oml9PWUsYT1lLmN1clBlbiE9bnVsbCYmZS5jdXJQZW4uc3Ryb2tlIT1udWxsO2lmKGEpe2kuYmVnaW5QYXRoKCk7bGV0W3Qsbl09YnMoZSxlLmN1clgsZS5jdXJZKTtpLm1vdmVUbyh0LG4pfWZvcihsZXQgbz0wO288ciYmISh0LnJlbWFpbmluZzw0KTtvKyspe2xldFtyLG9dPW4odCk7aWYoYSl7bGV0W3Qsbl09YnMoZSxyLG8pO2kubGluZVRvKHQsbil9ZS5jdXJYPXIsZS5jdXJZPW99YSYmZS5jdXJQZW4mJihpLnN0cm9rZVN0eWxlPWUuY3VyUGVuLnN0cm9rZSxpLmxpbmVXaWR0aD1FcyhlLGUuY3VyUGVuLndpZHRoKSxpLnN0cm9rZSgpLGUuZHJldz0hMCl9ZnVuY3Rpb24gSXMoZSx0LG4pe3Quc2tpcCgxNik7bGV0IHI9dC51MzIoKTtpZihyPDJ8fHI+MTA0ODU3NilyZXR1cm47bGV0e2N0eDppfT1lO2UuaW5QYXRofHxpLmJlZ2luUGF0aCgpO2xldCBhPSExO2ZvcihsZXQgbz0wO288ciYmISh0LnJlbWFpbmluZzw0KTtvKyspe2xldFtyLG9dPW4odCksW3MsY109YnMoZSxyLG8pO2E/aS5saW5lVG8ocyxjKTooaS5tb3ZlVG8ocyxjKSxhPSEwKX1hJiYoaS5jbG9zZVBhdGgoKSwhZS5pblBhdGgmJihlLmN1ckJydXNoJiZlLmN1ckJydXNoLmZpbGwhPW51bGwmJihpLmZpbGxTdHlsZT1lLmN1ckJydXNoLmZpbGwsaS5maWxsKGUuZmlsbFJ1bGUpLGUuZHJldz0hMCksZS5jdXJQZW4mJmUuY3VyUGVuLnN0cm9rZSE9bnVsbCYmKGkuc3Ryb2tlU3R5bGU9ZS5jdXJQZW4uc3Ryb2tlLGkubGluZVdpZHRoPUVzKGUsZS5jdXJQZW4ud2lkdGgpLGkuc3Ryb2tlKCksZS5kcmV3PSEwKSkpfWZ1bmN0aW9uIExzKGUsdCxuLHIpe3Quc2tpcCgxNik7bGV0IGk9dC51MzIoKTtpZihpPDF8fGk+MTA0ODU3NilyZXR1cm47bGV0IGE9W107Zm9yKGxldCBlPTA7ZTxpJiYhKHQucmVtYWluaW5nPDQpO2UrKylhLnB1c2gobih0KSk7aWYoYS5sZW5ndGg8KHI/Mzo0KSl7YS5sZW5ndGgmJihlLmN1clg9YVthLmxlbmd0aC0xXVswXSxlLmN1clk9YVthLmxlbmd0aC0xXVsxXSk7cmV0dXJufWxldCBvPWUuY3VyUGVuIT1udWxsJiZlLmN1clBlbi5zdHJva2UhPW51bGwse2N0eDpzfT1lO2lmKG8pe3MuYmVnaW5QYXRoKCk7bGV0IHQ9cj9icyhlLGUuY3VyWCxlLmN1clkpOmJzKGUsYVswXVswXSxhWzBdWzFdKTtzLm1vdmVUbyh0WzBdLHRbMV0pfWxldCBjPSshcjtmb3IoO2MrMjxhLmxlbmd0aCsgKyEhcjtjKz0zKXtsZXQgdD1hW2NdLG49YVtjKzFdLHI9YVtjKzJdO2lmKCF0fHwhbnx8IXIpYnJlYWs7aWYobyl7bGV0IGk9YnMoZSx0WzBdLHRbMV0pLGE9YnMoZSxuWzBdLG5bMV0pLG89YnMoZSxyWzBdLHJbMV0pO3MuYmV6aWVyQ3VydmVUbyhpWzBdLGlbMV0sYVswXSxhWzFdLG9bMF0sb1sxXSl9ZS5jdXJYPXJbMF0sZS5jdXJZPXJbMV19byYmZS5jdXJQZW4mJihzLnN0cm9rZVN0eWxlPWUuY3VyUGVuLnN0cm9rZSxzLmxpbmVXaWR0aD1FcyhlLGUuY3VyUGVuLndpZHRoKSxzLnN0cm9rZSgpLGUuZHJldz0hMCl9ZnVuY3Rpb24gUnMoZSx0LG4scil7dC5za2lwKDE2KTtsZXQgaT10LnUzMigpLGE9dC51MzIoKTtpZihpPD0wfHxpPjY1NTM2fHxhPD0wfHxhPjIwOTcxNTIpcmV0dXJuO2xldCBvPVtdO2ZvcihsZXQgZT0wO2U8aTtlKyspe2lmKHQucmVtYWluaW5nPDQpcmV0dXJuO28ucHVzaCh0LnUzMigpKX1sZXR7Y3R4OnN9PWU7ZS5pblBhdGh8fHMuYmVnaW5QYXRoKCk7bGV0IGM9ITE7Zm9yKGxldCBpIG9mIG8pe2lmKGk8Mil7Zm9yKGxldCBlPTA7ZTxpJiZ0LnJlbWFpbmluZz49NDtlKyspbih0KTtjb250aW51ZX1mb3IobGV0IHI9MDtyPGkmJiEodC5yZW1haW5pbmc8NCk7cisrKXtsZXRbaSxhXT1uKHQpLFtvLGNdPWJzKGUsaSxhKTtyPT09MD9zLm1vdmVUbyhvLGMpOnMubGluZVRvKG8sYyl9ciYmcy5jbG9zZVBhdGgoKSxjPSEwfSFjfHxlLmluUGF0aHx8KHImJmUuY3VyQnJ1c2gmJmUuY3VyQnJ1c2guZmlsbCE9bnVsbCYmKHMuZmlsbFN0eWxlPWUuY3VyQnJ1c2guZmlsbCxzLmZpbGwoZS5maWxsUnVsZSksZS5kcmV3PSEwKSxlLmN1clBlbiYmZS5jdXJQZW4uc3Ryb2tlIT1udWxsJiYocy5zdHJva2VTdHlsZT1lLmN1clBlbi5zdHJva2Uscy5saW5lV2lkdGg9RXMoZSxlLmN1clBlbi53aWR0aCkscy5zdHJva2UoKSxlLmRyZXc9ITApKX1mdW5jdGlvbiB6cyhlLHQsbixyLGkpe2xldHtjdHg6YX09ZSxvPWJzKGUsdCxuKSxzPWJzKGUscixuKSxjPWJzKGUscixpKSxsPWJzKGUsdCxpKTtlLmluUGF0aHx8YS5iZWdpblBhdGgoKSxhLm1vdmVUbyhvWzBdLG9bMV0pLGEubGluZVRvKHNbMF0sc1sxXSksYS5saW5lVG8oY1swXSxjWzFdKSxhLmxpbmVUbyhsWzBdLGxbMV0pLGEuY2xvc2VQYXRoKCksIWUuaW5QYXRoJiYoZS5jdXJCcnVzaCYmZS5jdXJCcnVzaC5maWxsIT1udWxsJiYoYS5maWxsU3R5bGU9ZS5jdXJCcnVzaC5maWxsLGEuZmlsbChlLmZpbGxSdWxlKSxlLmRyZXc9ITApLGUuY3VyUGVuJiZlLmN1clBlbi5zdHJva2UhPW51bGwmJihhLnN0cm9rZVN0eWxlPWUuY3VyUGVuLnN0cm9rZSxhLmxpbmVXaWR0aD1FcyhlLGUuY3VyUGVuLndpZHRoKSxhLnN0cm9rZSgpLGUuZHJldz0hMCkpfWZ1bmN0aW9uIEJzKGUpe2xldCB0PWUudTMyKCksbj1lLnUzMigpLHI9ZS5pMzIoKTtlLmkzMigpO2xldCBpPWUudTMyKCk7cmV0dXJuW3Qse2tpbmQ6YHBlbmAsc3Ryb2tlOihuJjI1NSk9PTU/bnVsbDpwYyhpKSx3aWR0aDpNYXRoLmFicyhyKX1dfWZ1bmN0aW9uIFZzKGUpe2xldCB0PWUudTMyKCk7ZS5za2lwKDE2KTtsZXQgbj1lLnUzMigpLHI9ZS51MzIoKTtlLnUzMigpO2xldCBpPWUudTMyKCk7cmV0dXJuW3Qse2tpbmQ6YHBlbmAsc3Ryb2tlOihuJjI1NSk9PTU/bnVsbDpwYyhpKSx3aWR0aDpNYXRoLmFicyhyKX1dfWZ1bmN0aW9uIEhzKGUpe2xldCB0PWUudTMyKCksbj1lLnUzMigpLHI9ZS51MzIoKTtyZXR1cm4gZS51MzIoKSxbdCx7a2luZDpgYnJ1c2hgLGZpbGw6bj09PTE/bnVsbDpwYyhyKX1dfWZ1bmN0aW9uIFVzKGUsdCxuKXtsZXQgcj1lLnUzMigpO2UudTMyKCk7bGV0IGk9ZS51MzIoKSxhPWUudTMyKCksbz1lLnUzMigpLHM9ZS51MzIoKSxjPWAjODA4MDgwYDt0cnl7bGV0IGU9bnModCxuK2ksYSxuK28scyk7ZSYmKGM9anMoZSkpfWNhdGNoe31yZXR1cm5bcix7a2luZDpgYnJ1c2hgLGZpbGw6Y31dfWZ1bmN0aW9uIFdzKGUsdCxuKXtsZXQgcj1lLnUzMigpLGk9bisxMixhPXQuZ2V0SW50MzIoaSwhMCksbz10LmdldEludDMyKGkrOCwhMCkscz10LmdldEludDMyKGkrMTYsITApLGM9dC5nZXRVaW50OChpKzIwKSxsPWBgO2ZvcihsZXQgZT0wO2U8MzI7ZSsrKXtsZXQgbj1pKzI4K2UqMjtpZihuKzI+dC5ieXRlTGVuZ3RoKWJyZWFrO2xldCByPXQuZ2V0VWludDE2KG4sITApO2lmKHI9PT0wKWJyZWFrO2wrPVN0cmluZy5mcm9tQ2hhckNvZGUocil9cmV0dXJuW3Ise2tpbmQ6YGZvbnRgLGhlaWdodDpNYXRoLmFicyhhKSx3ZWlnaHQ6cyxpdGFsaWM6YyE9PTAsZmFjZTpsLGVzY2FwZW1lbnQ6b31dfWZ1bmN0aW9uIEdzKGUsdCxuLHIpe3Quc2tpcCgxNiksdC51MzIoKSx0LmYzMigpLHQuZjMyKCk7bGV0IGk9dC5pMzIoKSxhPXQuaTMyKCksbz10LnUzMigpLHM9dC51MzIoKTtpZih0LnUzMigpLG88PTB8fG8+NjU1MzYpcmV0dXJuO2xldCBjPWBgO2ZvcihsZXQgZT0wO2U8bztlKyspe2xldCB0PXIrcytlKjI7aWYodCsyPm4uYnl0ZUxlbmd0aClicmVhaztjKz1TdHJpbmcuZnJvbUNoYXJDb2RlKG4uZ2V0VWludDE2KHQsITApKX1pZihjLmxlbmd0aD09PTApcmV0dXJuO2xldCBsPWUuY3VyRm9udCx1PU1hdGguYWJzKGw/LmhlaWdodD8/MCkqd3MoZSkqTWF0aC5hYnMoX3MoZSkpKlRzKGUpO2lmKCFOdW1iZXIuaXNGaW5pdGUodSl8fHU8MSlyZXR1cm47bGV0e2N0eDpkfT1lLFtmLHBdPWJzKGUsaSxhKTtkLmZpbGxTdHlsZT1lLnRleHRDb2xvcjtsZXQgbT1sJiZsLndlaWdodD49NzAwP2Bib2xkIGA6YGA7ZC5mb250PWAke2w/Lml0YWxpYz9gaXRhbGljIGA6YGB9JHttfSR7dX1weCAke2w/LmZhY2V8fGBzYW5zLXNlcmlmYH1gO2xldCBoPWUudGV4dEFsaWduJjY7ZC50ZXh0QWxpZ249aD09PTI/YHJpZ2h0YDpoPT09Nj9gY2VudGVyYDpgbGVmdGAsZC50ZXh0QmFzZWxpbmU9KGUudGV4dEFsaWduJjI0KT09MjQ/YGFscGhhYmV0aWNgOmB0b3BgO2xldCBnPWw/LmVzY2FwZW1lbnQ/PzA7dHJ5e2lmKGchPT0wKXtkLnNhdmUoKTt0cnl7ZC50cmFuc2xhdGUoZixwKSxkLnJvdGF0ZSgtZy8xMCooTWF0aC5QSS8xODApKSxkLmZpbGxUZXh0KGMsMCwwKX1maW5hbGx5e2QucmVzdG9yZSgpfX1lbHNlIGQuZmlsbFRleHQoYyxmLHApO2UuZHJldz0hMH1jYXRjaHt9fWZ1bmN0aW9uIEtzKGUsdCxuLHIsaSxhLG8scyxjLGwsdSl7aWYoaT09PTB8fG89PT0wKXJldHVybjtsZXQgZD1ucyh0LG4rcixpLG4rYSxvKTtpZighZClyZXR1cm47bGV0W2YscF09YnMoZSxzLGMpLFttLGhdPWJzKGUsbCx1KTtpcyhlLmN0eCxkLGYscCxtLGgpJiYoZS5kcmV3PSEwKX1mdW5jdGlvbiBxcyhlLHQsbixyKXt0LnNraXAoMTYpO2xldCBpPXQuaTMyKCksYT10LmkzMigpLG89dC5pMzIoKSxzPXQuaTMyKCk7dC51MzIoKSx0LmkzMigpLHQuaTMyKCksdC5za2lwKDI0KSx0LnUzMigpLHQudTMyKCksS3MoZSxuLHIsdC51MzIoKSx0LnUzMigpLHQudTMyKCksdC51MzIoKSxpLGEsaStvLGErcyl9ZnVuY3Rpb24gSnMoZSx0LG4scil7dC5za2lwKDE2KTtsZXQgaT10LmkzMigpLGE9dC5pMzIoKTt0LmkzMigpLHQuaTMyKCksdC5pMzIoKSx0LmkzMigpO2xldCBvPXQudTMyKCkscz10LnUzMigpLGM9dC51MzIoKSxsPXQudTMyKCk7dC51MzIoKSx0LnUzMigpO2xldCB1PXQuaTMyKCksZD10LmkzMigpO0tzKGUsbixyLG8scyxjLGwsaSxhLGkrdSxhK2QpfWZ1bmN0aW9uIFlzKGUsdCxuLHIpe2lmKCFkYyhlKXx8bjw9MHx8cjw9MClyZXR1cm4hMTtsZXQgaT1uZXcgRGF0YVZpZXcoZS5idWZmZXIsZS5ieXRlT2Zmc2V0LGUuYnl0ZUxlbmd0aCksYT17Y3R4OnQsVzpuLEg6cixsZWZ0OjAsdG9wOjAsYm91bmRzVzpuLGJvdW5kc0g6cix3dDpjcygpLG1hcE1vZGU6c3MuVEVYVCx3aW5PcmdYOjAsd2luT3JnWTowLHdpbkV4dFg6MSx3aW5FeHRZOjEsdnBPcmdYOjAsdnBPcmdZOjAsdnBFeHRYOjEsdnBFeHRZOjEsZGV2UHhQZXJNbVg6MCxkZXZQeFBlck1tWTowLG9iamVjdHM6bmV3IE1hcCxjdXJQZW46bnVsbCxjdXJCcnVzaDpudWxsLGN1ckZvbnQ6bnVsbCx0ZXh0Q29sb3I6YCMwMDAwMDBgLGJrTW9kZToxLHRleHRBbGlnbjowLGZpbGxSdWxlOmBub256ZXJvYCxjdXJYOjAsY3VyWTowLHN0YWNrOltdLGRyZXc6ITEsaW5QYXRoOiExfSxvPTA7Zm9yKDtvKzg8PWUubGVuZ3RoOyl7bGV0IG49aS5nZXRVaW50MzIobywhMCkscj1pLmdldFVpbnQzMihvKzQsITApO2lmKHI8OHx8ciYzKWJyZWFrO2xldCBzPW8rcjtpZihzPmUubGVuZ3RofHxuPT09YXMuRU9GKWJyZWFrO2xldCBjPW5ldyB1cyhpLG8rOCxzKTt0cnl7c3dpdGNoKG4pe2Nhc2UgYXMuSEVBREVSOntsZXQgZT1pLmdldEludDMyKG8rOCwhMCksdD1pLmdldEludDMyKG8rMTIsITApLG49aS5nZXRJbnQzMihvKzE2LCEwKSxyPWkuZ2V0SW50MzIobysyMCwhMCk7aWYoYS5sZWZ0PWUsYS50b3A9dCxhLmJvdW5kc1c9TWF0aC5tYXgoMSxuLWUpLGEuYm91bmRzSD1NYXRoLm1heCgxLHItdCkscz49bys4OCl7bGV0IGU9aS5nZXRJbnQzMihvKzI0LCEwKSx0PWkuZ2V0SW50MzIobysyOCwhMCksbj1pLmdldEludDMyKG8rMzIsITApLHI9aS5nZXRJbnQzMihvKzM2LCEwKSxzPWkuZ2V0SW50MzIobys3MiwhMCksYz1pLmdldEludDMyKG8rNzYsITApLGw9aS5nZXRJbnQzMihvKzgwLCEwKSx1PWkuZ2V0SW50MzIobys4NCwhMCksZD1uLWUsZj1yLXQ7aWYoZD4wJiZmPjAmJnM+MCYmYz4wJiZsPjAmJnU+MCl7bGV0IG49cy8obCoxMDApLHI9Yy8odSoxMDApO2EubGVmdD1lKm4sYS50b3A9dCpyLGEuYm91bmRzVz1NYXRoLm1heCgxLGQqbiksYS5ib3VuZHNIPU1hdGgubWF4KDEsZipyKSxhLmRldlB4UGVyTW1YPXMvbCxhLmRldlB4UGVyTW1ZPWMvdX19YnJlYWt9Y2FzZSBhcy5TRVRXT1JMRFRSQU5TRk9STTphLnd0PWMueGZvcm0oKTticmVhaztjYXNlIGFzLk1PRElGWVdPUkxEVFJBTlNGT1JNOntsZXQgZT1jLnhmb3JtKCksdD1jLnUzMigpO3Q9PT0xP2Eud3Q9Y3MoKTp0PT09Mj9hLnd0PWxzKGUsYS53dCk6dD09PTM/YS53dD1scyhhLnd0LGUpOnQ9PT00JiYoYS53dD1lKTticmVha31jYXNlIGFzLlNFVE1BUE1PREU6RHMoYSxjLnUzMigpKTticmVhaztjYXNlIGFzLlNFVFdJTkRPV09SR0VYOmEud2luT3JnWD1jLmkzMigpLGEud2luT3JnWT1jLmkzMigpO2JyZWFrO2Nhc2UgYXMuU0VUV0lORE9XRVhURVg6e2xldCBlPWMuaTMyKCksdD1jLmkzMigpO2UhPT0wJiYoYS53aW5FeHRYPWUpLHQhPT0wJiYoYS53aW5FeHRZPXQpO2JyZWFrfWNhc2UgYXMuU0VUVklFV1BPUlRPUkdFWDphLnZwT3JnWD1jLmkzMigpLGEudnBPcmdZPWMuaTMyKCk7YnJlYWs7Y2FzZSBhcy5TRVRWSUVXUE9SVEVYVEVYOntsZXQgZT1jLmkzMigpLHQ9Yy5pMzIoKTtlIT09MCYmKGEudnBFeHRYPWUpLHQhPT0wJiYoYS52cEV4dFk9dCk7YnJlYWt9Y2FzZSBhcy5TQ0FMRVdJTkRPV0VYVEVYOntsZXQgZT1jLmkzMigpLHQ9Yy5pMzIoKSxuPWMuaTMyKCkscj1jLmkzMigpO3QhPT0wJiYoYS53aW5FeHRYPWEud2luRXh0WCplL3QpLHIhPT0wJiYoYS53aW5FeHRZPWEud2luRXh0WSpuL3IpO2JyZWFrfWNhc2UgYXMuU0NBTEVWSUVXUE9SVEVYVEVYOntsZXQgZT1jLmkzMigpLHQ9Yy5pMzIoKSxuPWMuaTMyKCkscj1jLmkzMigpO3QhPT0wJiYoYS52cEV4dFg9YS52cEV4dFgqZS90KSxyIT09MCYmKGEudnBFeHRZPWEudnBFeHRZKm4vcik7YnJlYWt9Y2FzZSBhcy5TQVZFREM6YS5jdHguc2F2ZSgpLGEuc3RhY2sucHVzaCh7d3Q6ey4uLmEud3R9LG1hcE1vZGU6YS5tYXBNb2RlLHdpbk9yZ1g6YS53aW5PcmdYLHdpbk9yZ1k6YS53aW5PcmdZLHdpbkV4dFg6YS53aW5FeHRYLHdpbkV4dFk6YS53aW5FeHRZLHZwT3JnWDphLnZwT3JnWCx2cE9yZ1k6YS52cE9yZ1ksdnBFeHRYOmEudnBFeHRYLHZwRXh0WTphLnZwRXh0WSxjdXJQZW46YS5jdXJQZW4sY3VyQnJ1c2g6YS5jdXJCcnVzaCxjdXJGb250OmEuY3VyRm9udCx0ZXh0Q29sb3I6YS50ZXh0Q29sb3IsYmtNb2RlOmEuYmtNb2RlLHRleHRBbGlnbjphLnRleHRBbGlnbixmaWxsUnVsZTphLmZpbGxSdWxlLGN1clg6YS5jdXJYLGN1clk6YS5jdXJZfSk7YnJlYWs7Y2FzZSBhcy5SRVNUT1JFREM6e2xldCBlPWMuaTMyKCksdD1NYXRoLm1pbihNYXRoLmFicyhlKXx8MSxhLnN0YWNrLmxlbmd0aCksbjtmb3IobGV0IGU9MDtlPHQ7ZSsrKW49YS5zdGFjay5wb3AoKSxhLmN0eC5yZXN0b3JlKCk7biYmKGEud3Q9bi53dCxhLm1hcE1vZGU9bi5tYXBNb2RlLGEud2luT3JnWD1uLndpbk9yZ1gsYS53aW5PcmdZPW4ud2luT3JnWSxhLndpbkV4dFg9bi53aW5FeHRYLGEud2luRXh0WT1uLndpbkV4dFksYS52cE9yZ1g9bi52cE9yZ1gsYS52cE9yZ1k9bi52cE9yZ1ksYS52cEV4dFg9bi52cEV4dFgsYS52cEV4dFk9bi52cEV4dFksYS5jdXJQZW49bi5jdXJQZW4sYS5jdXJCcnVzaD1uLmN1ckJydXNoLGEuY3VyRm9udD1uLmN1ckZvbnQsYS50ZXh0Q29sb3I9bi50ZXh0Q29sb3IsYS5ia01vZGU9bi5ia01vZGUsYS50ZXh0QWxpZ249bi50ZXh0QWxpZ24sYS5maWxsUnVsZT1uLmZpbGxSdWxlLGEuY3VyWD1uLmN1clgsYS5jdXJZPW4uY3VyWSk7YnJlYWt9Y2FzZSBhcy5CRUdJTlBBVEg6YS5jdHguYmVnaW5QYXRoKCksYS5pblBhdGg9ITA7YnJlYWs7Y2FzZSBhcy5DTE9TRUZJR1VSRTphLmluUGF0aCYmYS5jdHguY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZSBhcy5FTkRQQVRIOmEuaW5QYXRoPSExO2JyZWFrO2Nhc2UgYXMuU0VMRUNUQ0xJUFBBVEg6dHJ5e2EuY3R4LmNsaXAoYS5maWxsUnVsZSl9Y2F0Y2h7fWJyZWFrO2Nhc2UgYXMuU0VMRUNUT0JKRUNUOntsZXQgZT1jLnUzMigpO2lmKGUmMjE0NzQ4MzY0OClBcyhhLGU+Pj4wKTtlbHNle2xldCB0PWEub2JqZWN0cy5nZXQoZSk7dD8ua2luZD09PWBwZW5gP2EuY3VyUGVuPXQ6dD8ua2luZD09PWBicnVzaGA/YS5jdXJCcnVzaD10OnQ/LmtpbmQ9PT1gZm9udGAmJihhLmN1ckZvbnQ9dCl9YnJlYWt9Y2FzZSBhcy5ERUxFVEVPQkpFQ1Q6e2xldCBlPWMudTMyKCksdD1hLm9iamVjdHMuZ2V0KGUpO3QmJih0PT09YS5jdXJQZW4mJihhLmN1clBlbj1udWxsKSx0PT09YS5jdXJCcnVzaCYmKGEuY3VyQnJ1c2g9bnVsbCksdD09PWEuY3VyRm9udCYmKGEuY3VyRm9udD1udWxsKSxhLm9iamVjdHMuZGVsZXRlKGUpKTticmVha31jYXNlIGFzLkNSRUFURVBFTjp7bGV0W2UsdF09QnMoYyk7YS5vYmplY3RzLnNldChlLHQpO2JyZWFrfWNhc2UgYXMuRVhUQ1JFQVRFUEVOOntsZXRbZSx0XT1WcyhjKTthLm9iamVjdHMuc2V0KGUsdCk7YnJlYWt9Y2FzZSBhcy5DUkVBVEVCUlVTSElORElSRUNUOntsZXRbZSx0XT1IcyhjKTthLm9iamVjdHMuc2V0KGUsdCk7YnJlYWt9Y2FzZSBhcy5DUkVBVEVNT05PQlJVU0g6Y2FzZSBhcy5DUkVBVEVESUJQQVRURVJOQlJVU0hQVDp7bGV0W2UsdF09VXMoYyxpLG8pO2Eub2JqZWN0cy5zZXQoZSx0KTticmVha31jYXNlIGFzLkVYVENSRUFURUZPTlRJTkRJUkVDVFc6e2xldFtlLHRdPVdzKGMsaSxvKTthLm9iamVjdHMuc2V0KGUsdCk7YnJlYWt9Y2FzZSBhcy5QT0xZTElORTE2OlBzKGEsYyxNcyk7YnJlYWs7Y2FzZSBhcy5QT0xZTElORTpQcyhhLGMsTnMpO2JyZWFrO2Nhc2UgYXMuUE9MWUxJTkVUTzE2OkZzKGEsYyxNcyk7YnJlYWs7Y2FzZSBhcy5QT0xZTElORVRPOkZzKGEsYyxOcyk7YnJlYWs7Y2FzZSBhcy5QT0xZR09OMTY6SXMoYSxjLE1zKTticmVhaztjYXNlIGFzLlBPTFlHT046SXMoYSxjLE5zKTticmVhaztjYXNlIGFzLlBPTFlCRVpJRVIxNjpMcyhhLGMsTXMsITEpO2JyZWFrO2Nhc2UgYXMuUE9MWUJFWklFUjpMcyhhLGMsTnMsITEpO2JyZWFrO2Nhc2UgYXMuUE9MWUJFWklFUlRPMTY6THMoYSxjLE1zLCEwKTticmVhaztjYXNlIGFzLlBPTFlCRVpJRVJUTzpMcyhhLGMsTnMsITApO2JyZWFrO2Nhc2UgYXMuUE9MWVBPTFlHT04xNjpScyhhLGMsTXMsITApO2JyZWFrO2Nhc2UgYXMuUE9MWVBPTFlHT046UnMoYSxjLE5zLCEwKTticmVhaztjYXNlIGFzLlBPTFlQT0xZTElORTE2OlJzKGEsYyxNcywhMSk7YnJlYWs7Y2FzZSBhcy5QT0xZUE9MWUxJTkU6UnMoYSxjLE5zLCExKTticmVhaztjYXNlIGFzLk1PVkVUT0VYOmEuY3VyWD1jLmkzMigpLGEuY3VyWT1jLmkzMigpO2JyZWFrO2Nhc2UgYXMuTElORVRPOntsZXQgZT1jLmkzMigpLG49Yy5pMzIoKTtpZihhLmN1clBlbiYmYS5jdXJQZW4uc3Ryb2tlIT1udWxsKXtsZXRbcixpXT1icyhhLGEuY3VyWCxhLmN1clkpLFtvLHNdPWJzKGEsZSxuKTt0LmJlZ2luUGF0aCgpLHQubW92ZVRvKHIsaSksdC5saW5lVG8obyxzKSx0LnN0cm9rZVN0eWxlPWEuY3VyUGVuLnN0cm9rZSx0LmxpbmVXaWR0aD1FcyhhLGEuY3VyUGVuLndpZHRoKSx0LnN0cm9rZSgpLGEuZHJldz0hMH1hLmN1clg9ZSxhLmN1clk9bjticmVha31jYXNlIGFzLlJFQ1RBTkdMRTp6cyhhLGMuaTMyKCksYy5pMzIoKSxjLmkzMigpLGMuaTMyKCkpO2JyZWFrO2Nhc2UgYXMuRUxMSVBTRTp7bGV0IGU9Yy5pMzIoKSxuPWMuaTMyKCkscj1jLmkzMigpLGk9Yy5pMzIoKSxbbyxzXT1bKGUrcikvMiwobitpKS8yXSxbbCx1XT1icyhhLG8scyksW2RdPWJzKGEscixzKSxbLGZdPWJzKGEsbyxpKSxwPU1hdGguYWJzKGQtbCksbT1NYXRoLmFicyhmLXUpO3QuYmVnaW5QYXRoKCksdC5lbGxpcHNlKGwsdSxwLG0sMCwwLE1hdGguUEkqMiksYS5jdXJCcnVzaCYmYS5jdXJCcnVzaC5maWxsIT1udWxsJiYodC5maWxsU3R5bGU9YS5jdXJCcnVzaC5maWxsLHQuZmlsbChhLmZpbGxSdWxlKSxhLmRyZXc9ITApLGEuY3VyUGVuJiZhLmN1clBlbi5zdHJva2UhPW51bGwmJih0LnN0cm9rZVN0eWxlPWEuY3VyUGVuLnN0cm9rZSx0LmxpbmVXaWR0aD1FcyhhLGEuY3VyUGVuLndpZHRoKSx0LnN0cm9rZSgpLGEuZHJldz0hMCk7YnJlYWt9Y2FzZSBhcy5TRVRQT0xZRklMTE1PREU6YS5maWxsUnVsZT1jLnUzMigpPT09MT9gZXZlbm9kZGA6YG5vbnplcm9gO2JyZWFrO2Nhc2UgYXMuU0VUVEVYVENPTE9SOmEudGV4dENvbG9yPXBjKGMudTMyKCkpO2JyZWFrO2Nhc2UgYXMuU0VUVEVYVEFMSUdOOmEudGV4dEFsaWduPWMudTMyKCk7YnJlYWs7Y2FzZSBhcy5TRVRCS01PREU6YS5ia01vZGU9Yy51MzIoKTticmVhaztjYXNlIGFzLkVYVFRFWFRPVVRXOkdzKGEsYyxpLG8pO2JyZWFrO2Nhc2UgYXMuQklUQkxUOnFzKGEsYyxpLG8pO2JyZWFrO2Nhc2UgYXMuU1RSRVRDSERJQklUUzpKcyhhLGMsaSxvKTticmVhaztkZWZhdWx0OmJyZWFrfX1jYXRjaHt9bz1zfXJldHVybiBhLmRyZXd9YXN5bmMgZnVuY3Rpb24gWHMoZSx0LG4pe2lmKCFkYyhlKXx8dDw9MHx8bjw9MClyZXR1cm4gbnVsbDtsZXQgcj14bih0LG4pO2lmKCFyKXJldHVybiBudWxsO2xldCBpPXIuZ2V0Q29udGV4dChgMmRgKTtyZXR1cm4haXx8KGkubGluZUpvaW49YHJvdW5kYCxpLmxpbmVDYXA9YHJvdW5kYCwhWXMoZSxpLHQsbikpP251bGw6Y3JlYXRlSW1hZ2VCaXRtYXAocil9ZnVuY3Rpb24gWnMoZSx0KXtyZXR1cm4gZVt0XTw8OHxlW3QrMV19ZnVuY3Rpb24gUXMoZSx0KXtyZXR1cm4oZVt0XTw8MjR8ZVt0KzFdPDwxNnxlW3QrMl08PDh8ZVt0KzNdKT4+PjB9ZnVuY3Rpb24gJHMoZSx0KXtyZXR1cm4gZVt0XXxlW3QrMV08PDh9ZnVuY3Rpb24gZWMoZSx0KXtyZXR1cm4gZVt0XXxlW3QrMV08PDh8ZVt0KzJdPDwxNnxlW3QrM108PDI0fDB9ZnVuY3Rpb24gdGMoZSl7bGV0IHQ9ZS5sZW5ndGg7cmV0dXJuIHQ+PTI0JiZlWzBdPT09MTM3JiZlWzFdPT09ODAmJmVbMl09PT03OCYmZVszXT09PTcxJiZlWzRdPT09MTMmJmVbNV09PT0xMCYmZVs2XT09PTI2JiZlWzddPT09MTA/ZVsxMl09PT03MyYmZVsxM109PT03MiYmZVsxNF09PT02OCYmZVsxNV09PT04Mj97d2lkdGg6UXMoZSwxNiksaGVpZ2h0OlFzKGUsMjApfTpudWxsOnQ+PTEwJiZlWzBdPT09NzEmJmVbMV09PT03MyYmZVsyXT09PTcwJiZlWzNdPT09NTYmJihlWzRdPT09NTV8fGVbNF09PT01NykmJmVbNV09PT05Nz97d2lkdGg6JHMoZSw2KSxoZWlnaHQ6JHMoZSw4KX06dD49MjYmJmVbMF09PT02NiYmZVsxXT09PTc3P25jKGUsMTQpPT09MTI/e3dpZHRoOiRzKGUsMTgpLGhlaWdodDokcyhlLDIwKX06e3dpZHRoOk1hdGguYWJzKGVjKGUsMTgpKSxoZWlnaHQ6TWF0aC5hYnMoZWMoZSwyMikpfTp0Pj0xNiYmZVswXT09PTgyJiZlWzFdPT09NzMmJmVbMl09PT03MCYmZVszXT09PTcwJiZlWzhdPT09ODcmJmVbOV09PT02OSYmZVsxMF09PT02NiYmZVsxMV09PT04MD9yYyhlKTp0Pj00JiZlWzBdPT09MjU1JiZlWzFdPT09MjE2P2ljKGUpOm51bGx9ZnVuY3Rpb24gbmMoZSx0KXtyZXR1cm4oZVt0XXxlW3QrMV08PDh8ZVt0KzJdPDwxNnxlW3QrM108PDI0KT4+PjB9ZnVuY3Rpb24gcmMoZSl7bGV0IHQ9ZS5sZW5ndGgsbj1lWzEyXSxyPWVbMTNdLGk9ZVsxNF0sYT1lWzE1XTtpZihuPT09ODYmJnI9PT04MCYmaT09PTU2JiZhPT09MzIpcmV0dXJuIHQ8MzA/bnVsbDp7d2lkdGg6JHMoZSwyNikmMTYzODMsaGVpZ2h0OiRzKGUsMjgpJjE2MzgzfTtpZihuPT09ODYmJnI9PT04MCYmaT09PTU2JiZhPT09NzYpe2lmKHQ8MjV8fGVbMjBdIT09NDcpcmV0dXJuIG51bGw7bGV0IG49bmMoZSwyMSk7cmV0dXJue3dpZHRoOihuJjE2MzgzKSsxLGhlaWdodDoobj4+PjE0JjE2MzgzKSsxfX1yZXR1cm4gbj09PTg2JiZyPT09ODAmJmk9PT01NiYmYT09PTg4P3Q8MzA/bnVsbDp7d2lkdGg6KGVbMjRdfGVbMjVdPDw4fGVbMjZdPDwxNikrMSxoZWlnaHQ6KGVbMjddfGVbMjhdPDw4fGVbMjldPDwxNikrMX06bnVsbH1mdW5jdGlvbiBpYyhlKXtsZXQgdD1lLmxlbmd0aCxuPTI7Zm9yKDtuKzE8dDspe2lmKGVbbl0hPT0yNTUpe24rPTE7Y29udGludWV9bGV0IHI9ZVtuKzFdO2lmKHI9PT0yNTUpe24rPTE7Y29udGludWV9aWYocj09PTIxNnx8cj09PTF8fHI+PTIwOCYmcjw9MjE1KXtuKz0yO2NvbnRpbnVlfWlmKHI9PT0yMTd8fG4rMz49dClyZXR1cm4gbnVsbDtsZXQgaT1acyhlLG4rMik7aWYocj49MTkyJiZyPD0yMDcmJnIhPT0xOTYmJnIhPT0yMDAmJnIhPT0yMDQpe2lmKG4rOD49dClyZXR1cm4gbnVsbDtsZXQgcj1acyhlLG4rNSk7cmV0dXJue3dpZHRoOlpzKGUsbis3KSxoZWlnaHQ6cn19aWYoaTwyKXJldHVybiBudWxsO24rPTIraX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBhYyhlKXtsZXR7d2lkdGg6dCxoZWlnaHQ6bn09ZTtyZXR1cm4hTnVtYmVyLmlzRmluaXRlKHQpfHwhTnVtYmVyLmlzRmluaXRlKG4pfHx0PD0wfHxuPD0wfHx0PjMyNzY3fHxuPjMyNzY3PyEwOnQqbj5Rb31mdW5jdGlvbiBvYyhlKXtsZXQgdD1lLmNsb3NlO3R5cGVvZiB0PT1gZnVuY3Rpb25gJiZ0LmNhbGwoZSl9Y29uc3Qgc2M9e0VPRjowLFNFVEJLTU9ERToyNTgsU0VUVEVYVEFMSUdOOjMwMixTRVRURVhUQ09MT1I6NTIxLFNFVFBPTFlGSUxMTU9ERToyNjIsU0VUV0lORE9XT1JHOjUyMyxTRVRXSU5ET1dFWFQ6NTI0LFNFTEVDVE9CSkVDVDozMDEsREVMRVRFT0JKRUNUOjQ5NixURVhUT1VUOjEzMTMsUE9MWUdPTjo4MDQsUE9MWUxJTkU6ODA1LFBPTFlQT0xZR09OOjEzMzYsUkVDVEFOR0xFOjEwNTEsQ1JFQVRFUEVOSU5ESVJFQ1Q6NzYyLENSRUFURUZPTlRJTkRJUkVDVDo3NjMsQ1JFQVRFQlJVU0hJTkRJUkVDVDo3NjQsRElCQklUQkxUOjIzNjgsRElCU1RSRVRDSEJMVDoyODgxLFNUUkVUQ0hESUJJVFM6MzkwN30sY2M9MjU5NjcyMDA4NztmdW5jdGlvbiBsYyhlLHQpe2lmKGUubGVuZ3RoPHQrMTgpcmV0dXJuITE7bGV0IG49ZVt0XXxlW3QrMV08PDgscj1lW3QrMl18ZVt0KzNdPDw4O3JldHVybihuPT09MXx8bj09PTIpJiZyPT09OX1mdW5jdGlvbiB1YyhlKXtyZXR1cm4gZS5sZW5ndGg8ND8hMTooZVswXXxlWzFdPDw4fGVbMl08PDE2fGVbM108PDI0KT4+PjA9PT1jYz8hMDpsYyhlLDApfWZ1bmN0aW9uIGRjKGUpe2lmKGUubGVuZ3RoPDQ0KXJldHVybiExO2xldCB0PW5ldyBEYXRhVmlldyhlLmJ1ZmZlcixlLmJ5dGVPZmZzZXQsZS5ieXRlTGVuZ3RoKTtyZXR1cm4gdC5nZXRVaW50MzIoMCwhMCk9PT0xJiZ0LmdldFVpbnQzMig0MCwhMCk9PT0xMTc5NDY5MDg4fWZ1bmN0aW9uIGZjKGUpe3JldHVybiBlPT09YGltYWdlL3dtZmB8fGU9PT1gaW1hZ2UvZW1mYH1mdW5jdGlvbiBwYyhlKXtsZXQgdD1lJjI1NSxuPWU+Pj44JjI1NSxyPWU+Pj4xNiYyNTUsaT1lPT5lLnRvU3RyaW5nKDE2KS5wYWRTdGFydCgyLGAwYCk7cmV0dXJuYCMke2kodCl9JHtpKG4pfSR7aShyKX1gfWZ1bmN0aW9uIG1jKGUsdCl7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDtuKyspaWYoZVtuXT09bnVsbCl7ZVtuXT10O3JldHVybn1lLnB1c2godCl9dmFyIGhjPWNsYXNze3A9MDtjb25zdHJ1Y3RvcihlLHQsbil7dGhpcy5iPWUsdGhpcy5lbmQ9bix0aGlzLnA9dH1nZXQgcmVtYWluaW5nKCl7cmV0dXJuIHRoaXMuZW5kLXRoaXMucH1pMTYoKXtsZXQgZT10aGlzLnUxNigpO3JldHVybiBlPj0zMjc2OD9lLTY1NTM2OmV9dTE2KCl7bGV0IGU9dGhpcy5iW3RoaXMucF18dGhpcy5iW3RoaXMucCsxXTw8ODtyZXR1cm4gdGhpcy5wKz0yLGV9dTgoKXtyZXR1cm4gdGhpcy5iW3RoaXMucCsrXX11MzIoKXtsZXQgZT0odGhpcy5iW3RoaXMucF18dGhpcy5iW3RoaXMucCsxXTw8OHx0aGlzLmJbdGhpcy5wKzJdPDwxNnx0aGlzLmJbdGhpcy5wKzNdPDwyNCk+Pj4wO3JldHVybiB0aGlzLnArPTQsZX1ieXRlcyhlKXtsZXQgdD1NYXRoLm1pbih0aGlzLnArTWF0aC5tYXgoMCxlKSx0aGlzLmVuZCksbj10aGlzLmIuc3ViYXJyYXkodGhpcy5wLHQpO3JldHVybiB0aGlzLnA9dCxufXNraXAoZSl7dGhpcy5wPU1hdGgubWluKHRoaXMucCtNYXRoLm1heCgwLGUpLHRoaXMuZW5kKX19O2Z1bmN0aW9uIGdjKGUsdCl7cmV0dXJuKHQtZS5vcmdYKSooZS5XL2UuZXh0WCl9ZnVuY3Rpb24gX2MoZSx0KXtyZXR1cm4odC1lLm9yZ1kpKihlLkgvZS5leHRZKX1mdW5jdGlvbiB2YyhlLHQpe2xldCBuPXQqTWF0aC5hYnMoZS5XL2UuZXh0WCk7cmV0dXJuIG4+PTE/bjoxfWNvbnN0IHljPS4wMDE7ZnVuY3Rpb24gYmMoZSx0LG4pe3JldHVybiBNYXRoLmFicyhlLXQpPD15Y3x8TWF0aC5hYnMoZS1uKTw9eWN9ZnVuY3Rpb24geGMoZSx0LG4pe2xldCByPVtdLGk9bj90Lmxlbmd0aDp0Lmxlbmd0aC0xO2ZvcihsZXQgbj0wO248aTtuKyspe2xldCBpPXRbbl0sYT10WyhuKzEpJXQubGVuZ3RoXSxvPU1hdGguYWJzKGlbMF0tYVswXSk8PXljJiZiYyhpWzBdLDAsZS5XKSYmYmMoYVswXSwwLGUuVykscz1NYXRoLmFicyhpWzFdLWFbMV0pPD15YyYmYmMoaVsxXSwwLGUuSCkmJmJjKGFbMV0sMCxlLkgpO298fHN8fHIucHVzaChbaSxhXSl9cmV0dXJuIHJ9ZnVuY3Rpb24gU2MoZSx0LG4pe2lmKCFlLmN1clBlbnx8ZS5jdXJQZW4uc3Ryb2tlPT1udWxsfHx0Lmxlbmd0aDwyKXJldHVybjtsZXR7Y3R4OnJ9PWU7aWYoci5zdHJva2VTdHlsZT1lLmN1clBlbi5zdHJva2Usci5saW5lV2lkdGg9dmMoZSxlLmN1clBlbi53aWR0aCksIWUuc3VwcHJlc3NCb3VuZGFyeUZyYW1lKXtyLmJlZ2luUGF0aCgpLHIubW92ZVRvKHRbMF1bMF0sdFswXVsxXSk7Zm9yKGxldCBlPTE7ZTx0Lmxlbmd0aDtlKyspci5saW5lVG8odFtlXVswXSx0W2VdWzFdKTtuJiZyLmNsb3NlUGF0aCgpLHIuc3Ryb2tlKCksZS5kcmV3PSEwO3JldHVybn1sZXQgaT14YyhlLHQsbik7aWYoaS5sZW5ndGg9PT0wKXJldHVybjtyLmJlZ2luUGF0aCgpO2xldCBhPW51bGw7Zm9yKGxldFtlLHRdb2YgaSkoIWF8fGFbMF0hPT1lWzBdfHxhWzFdIT09ZVsxXSkmJnIubW92ZVRvKGVbMF0sZVsxXSksci5saW5lVG8odFswXSx0WzFdKSxhPXQ7ci5zdHJva2UoKSxlLmRyZXc9ITB9ZnVuY3Rpb24gQ2MoZSx0LG4pe2xldCByPVtdO2ZvcihsZXQgaT0wO2k8biYmISh0LnJlbWFpbmluZzw0KTtpKyspe2xldCBuPXQuaTE2KCksaT10LmkxNigpO3IucHVzaChbZ2MoZSxuKSxfYyhlLGkpXSl9cmV0dXJuIHJ9ZnVuY3Rpb24gd2MoZSx0KXt0Lmxlbmd0aDwyfHwhZS5jdXJQZW58fGUuY3VyUGVuLnN0cm9rZT09bnVsbHx8U2MoZSx0LCExKX1mdW5jdGlvbiBUYyhlLHQpe2lmKHQubGVuZ3RoPDIpcmV0dXJuO2xldHtjdHg6bn09ZTtpZihlLmN1ckJydXNoJiZlLmN1ckJydXNoLmZpbGwhPW51bGwpe24uYmVnaW5QYXRoKCksbi5tb3ZlVG8odFswXVswXSx0WzBdWzFdKTtmb3IobGV0IGU9MTtlPHQubGVuZ3RoO2UrKyluLmxpbmVUbyh0W2VdWzBdLHRbZV1bMV0pO24uY2xvc2VQYXRoKCksbi5maWxsU3R5bGU9ZS5jdXJCcnVzaC5maWxsLG4uZmlsbChlLmZpbGxSdWxlKSxlLmRyZXc9ITB9U2MoZSx0LCEwKX1mdW5jdGlvbiBFYyhlLHQpe2xldCBuPXQudTE2KCk7aWYobjw9MHx8bj42NTUzNilyZXR1cm47bGV0IHI9W107Zm9yKGxldCBlPTA7ZTxuO2UrKyl7aWYodC5yZW1haW5pbmc8MilyZXR1cm47ci5wdXNoKHQudTE2KCkpfWxldHtjdHg6aX09ZTtpLmJlZ2luUGF0aCgpO2xldCBhPSExO2ZvcihsZXQgbiBvZiByKXtpZihuPDIpe2ZvcihsZXQgZT0wO2U8biYmdC5yZW1haW5pbmc+PTQ7ZSsrKXQuaTE2KCksdC5pMTYoKTtjb250aW51ZX1sZXQgcj1DYyhlLHQsbik7aWYoIShyLmxlbmd0aDwyKSl7aS5tb3ZlVG8oclswXVswXSxyWzBdWzFdKTtmb3IobGV0IGU9MTtlPHIubGVuZ3RoO2UrKylpLmxpbmVUbyhyW2VdWzBdLHJbZV1bMV0pO2kuY2xvc2VQYXRoKCksYT0hMH19YSYmKGUuY3VyQnJ1c2gmJmUuY3VyQnJ1c2guZmlsbCE9bnVsbCYmKGkuZmlsbFN0eWxlPWUuY3VyQnJ1c2guZmlsbCxpLmZpbGwoZS5maWxsUnVsZSksZS5kcmV3PSEwKSxlLmN1clBlbiYmZS5jdXJQZW4uc3Ryb2tlIT1udWxsJiYoaS5zdHJva2VTdHlsZT1lLmN1clBlbi5zdHJva2UsaS5saW5lV2lkdGg9dmMoZSxlLmN1clBlbi53aWR0aCksaS5zdHJva2UoKSxlLmRyZXc9ITApKX1mdW5jdGlvbiBEYyhlKXtsZXQgdD1lLnUxNigpLG49ZS5pMTYoKTtlLmkxNigpO2xldCByPWUudTMyKCk7cmV0dXJue2tpbmQ6YHBlbmAsc3Ryb2tlOih0JjI1NSk9PTU/bnVsbDpwYyhyKSx3aWR0aDpNYXRoLmFicyhuKX19ZnVuY3Rpb24gT2MoZSl7bGV0IHQ9ZS51MTYoKSxuPWUudTMyKCk7cmV0dXJuIGUudTE2KCkse2tpbmQ6YGJydXNoYCxmaWxsOnQ9PT0xP251bGw6cGMobil9fWZ1bmN0aW9uIGtjKGUpe2xldCB0PWUuaW5kZXhPZigwKSxuPXQ+PTA/ZS5zdWJhcnJheSgwLHQpOmU7aWYobi5sZW5ndGg9PT0wKXJldHVybmBgO3RyeXtyZXR1cm4gbmV3IFRleHREZWNvZGVyKGBzaGlmdF9qaXNgKS5kZWNvZGUobil9Y2F0Y2h7cmV0dXJuIFN0cmluZy5mcm9tQ2hhckNvZGUoLi4ubil9fWZ1bmN0aW9uIEFjKGUpe2xldCB0PU1hdGguYWJzKGUuaTE2KCkpO2UuaTE2KCksZS5pMTYoKSxlLmkxNigpO2xldCBuPWUuaTE2KCkscj1lLnU4KCkhPT0wO3JldHVybiBlLnU4KCksZS51OCgpLGUudTgoKSxlLnU4KCksZS51OCgpLGUudTgoKSxlLnU4KCkse2tpbmQ6YGZvbnRgLGhlaWdodDp0LHdlaWdodDpuLGl0YWxpYzpyLGZhY2U6a2MoZS5ieXRlcyhNYXRoLm1pbigzMixlLnJlbWFpbmluZykpKX19ZnVuY3Rpb24gamMoZSx0LG4scil7aWYodC5sZW5ndGg9PT0wKXJldHVybjtsZXQgaT1lLmN1ckZvbnQsYT1pPy5oZWlnaHR8fDEyLG89TWF0aC5hYnMoX2MoZSxlLm9yZ1krYSktX2MoZSxlLm9yZ1kpKTtpZighTnVtYmVyLmlzRmluaXRlKG8pfHxvPDEpcmV0dXJuO2xldHtjdHg6c309ZTt0cnl7cy5maWxsU3R5bGU9ZS50ZXh0Q29sb3I7bGV0IGE9aSYmaS53ZWlnaHQ+PTcwMD9gYm9sZCBgOmBgO3MuZm9udD1gJHtpPy5pdGFsaWM/YGl0YWxpYyBgOmBgfSR7YX0ke299cHggJHtpPy5mYWNlfHxgc2Fucy1zZXJpZmB9YDtsZXQgYz1lLnRleHRBbGlnbiY2O3MudGV4dEFsaWduPWM9PT0yP2ByaWdodGA6Yz09PTY/YGNlbnRlcmA6YGxlZnRgLHMudGV4dEJhc2VsaW5lPShlLnRleHRBbGlnbiYyNCk9PTI0P2BhbHBoYWJldGljYDpgdG9wYCxzLmZpbGxUZXh0KHQsZ2MoZSxuKSxfYyhlLHIpKSxlLmRyZXc9ITB9Y2F0Y2h7fX1mdW5jdGlvbiBNYyhlLHQsbixyLGk9ITEpe2lmKCF1YyhlKSlyZXR1cm4hMTtsZXQgYT0wOyhlLmxlbmd0aD49ND8oZVswXXxlWzFdPDw4fGVbMl08PDE2fGVbM108PDI0KT4+PjA6MCk9PT1jYyYmKGE9MjIpO2xldCBvPWErMTg7aWYobz5lLmxlbmd0aClyZXR1cm4hMTtsZXQgcz17Y3R4OnQsVzpuLEg6cixvcmdYOjAsb3JnWTowLGV4dFg6bnx8MSxleHRZOnJ8fDEsaGF2ZUV4dDohMSxvYmplY3RzOltdLGN1clBlbjpudWxsLGN1ckJydXNoOm51bGwsY3VyRm9udDpudWxsLHRleHRDb2xvcjpgIzAwMDAwMGAsdGV4dEFsaWduOjAsZmlsbFJ1bGU6YG5vbnplcm9gLGRyZXc6ITEsc3VwcHJlc3NCb3VuZGFyeUZyYW1lOml9LGM9bmV3IERhdGFWaWV3KGUuYnVmZmVyLGUuYnl0ZU9mZnNldCxlLmJ5dGVMZW5ndGgpO2Zvcig7bys2PD1lLmxlbmd0aDspe2xldCB0PWMuZ2V0VWludDMyKG8sITApLG49Yy5nZXRVaW50MTYobys0LCEwKTtpZih0PDMpYnJlYWs7bGV0IHI9dCoyLGk9bytyO2lmKGk+ZS5sZW5ndGh8fG49PT1zYy5FT0YpYnJlYWs7bGV0IGE9bys2LGw9bmV3IGhjKGUsYSxpKTtzd2l0Y2gobil7Y2FzZSBzYy5TRVRXSU5ET1dPUkc6cy5vcmdZPWwuaTE2KCkscy5vcmdYPWwuaTE2KCk7YnJlYWs7Y2FzZSBzYy5TRVRXSU5ET1dFWFQ6e2xldCBlPWwuaTE2KCksdD1sLmkxNigpO3MuZXh0WT1lfHwxLHMuZXh0WD10fHwxLHMuaGF2ZUV4dD0hMDticmVha31jYXNlIHNjLlNFVFBPTFlGSUxMTU9ERTpzLmZpbGxSdWxlPWwudTE2KCk9PT0xP2BldmVub2RkYDpgbm9uemVyb2A7YnJlYWs7Y2FzZSBzYy5TRVRURVhUQ09MT1I6cy50ZXh0Q29sb3I9cGMobC51MzIoKSk7YnJlYWs7Y2FzZSBzYy5TRVRURVhUQUxJR046cy50ZXh0QWxpZ249bC51MTYoKTticmVhaztjYXNlIHNjLkNSRUFURVBFTklORElSRUNUOm1jKHMub2JqZWN0cyxEYyhsKSk7YnJlYWs7Y2FzZSBzYy5DUkVBVEVCUlVTSElORElSRUNUOm1jKHMub2JqZWN0cyxPYyhsKSk7YnJlYWs7Y2FzZSBzYy5DUkVBVEVGT05USU5ESVJFQ1Q6bWMocy5vYmplY3RzLEFjKGwpKTticmVhaztjYXNlIHNjLlNFTEVDVE9CSkVDVDp7bGV0IGU9bC51MTYoKSx0PXMub2JqZWN0c1tlXTt0Py5raW5kPT09YHBlbmA/cy5jdXJQZW49dDp0Py5raW5kPT09YGJydXNoYD9zLmN1ckJydXNoPXQ6dD8ua2luZD09PWBmb250YCYmKHMuY3VyRm9udD10KTticmVha31jYXNlIHNjLkRFTEVURU9CSkVDVDp7bGV0IGU9bC51MTYoKSx0PXMub2JqZWN0c1tlXTt0JiYodD09PXMuY3VyUGVuJiYocy5jdXJQZW49bnVsbCksdD09PXMuY3VyQnJ1c2gmJihzLmN1ckJydXNoPW51bGwpLHQ9PT1zLmN1ckZvbnQmJihzLmN1ckZvbnQ9bnVsbCkscy5vYmplY3RzW2VdPW51bGwpO2JyZWFrfWNhc2Ugc2MuUE9MWUxJTkU6d2MocyxDYyhzLGwsbC5pMTYoKSkpO2JyZWFrO2Nhc2Ugc2MuUE9MWUdPTjpUYyhzLENjKHMsbCxsLmkxNigpKSk7YnJlYWs7Y2FzZSBzYy5QT0xZUE9MWUdPTjpFYyhzLGwpO2JyZWFrO2Nhc2Ugc2MuUkVDVEFOR0xFOntsZXQgZT1sLmkxNigpLHQ9bC5pMTYoKSxuPWwuaTE2KCkscj1sLmkxNigpO1RjKHMsW1tnYyhzLHIpLF9jKHMsbildLFtnYyhzLHQpLF9jKHMsbildLFtnYyhzLHQpLF9jKHMsZSldLFtnYyhzLHIpLF9jKHMsZSldXSk7YnJlYWt9Y2FzZSBzYy5URVhUT1VUOntsZXQgZT1sLnUxNigpLHQ9a2MobC5ieXRlcyhlKSk7ZSUyIT0wJiZsLnNraXAoMSk7bGV0IG49bC5pMTYoKTtqYyhzLHQsbC5pMTYoKSxuKTticmVha31jYXNlIHNjLlNUUkVUQ0hESUJJVFM6e2wudTMyKCksbC5pMTYoKSxsLmkxNigpLGwuaTE2KCksbC5pMTYoKSxsLnUxNigpO2xldCBlPWwuaTE2KCksdD1sLmkxNigpLG49bC5pMTYoKSxyPWwuaTE2KCksbz1hKzIyLHU9cnMoYyxvLGktbyk7aWYodSl7bGV0IGk9Z2MocyxyKSxhPV9jKHMsbiksbz1nYyhzLHIrdCksYz1fYyhzLG4rZSk7aXMocy5jdHgsdSxpLGEsbyxjKSYmKHMuZHJldz0hMCl9YnJlYWt9Y2FzZSBzYy5ESUJTVFJFVENIQkxUOmNhc2Ugc2MuRElCQklUQkxUOmNhc2Ugc2MuU0VUQktNT0RFOmJyZWFrO2RlZmF1bHQ6YnJlYWt9bz1pfXJldHVybiBzLmRyZXd9ZnVuY3Rpb24gTmMoZSx0KXtsZXQgbj1lPjA/ZTozMDAscj10PjA/dDozMDAsaT1lPT5NYXRoLm1heCgxLE1hdGgubWluKDJlMyxNYXRoLnJvdW5kKGUpKSk7cmV0dXJue3c6aShuKjIpLGg6aShyKjIpfX1hc3luYyBmdW5jdGlvbiBQYyhlLHQsbixyPSExKXtpZighdWMoZSl8fHQ8PTB8fG48PTApcmV0dXJuIG51bGw7bGV0IGk9eG4odCxuKTtpZighaSlyZXR1cm4gbnVsbDtsZXQgYT1pLmdldENvbnRleHQoYDJkYCk7cmV0dXJuIWF8fChhLmxpbmVKb2luPWByb3VuZGAsYS5saW5lQ2FwPWByb3VuZGAsIU1jKGUsYSx0LG4scikpP251bGw6Y3JlYXRlSW1hZ2VCaXRtYXAoaSl9YXN5bmMgZnVuY3Rpb24gRmMoZSx0PXt9KXtsZXR7d2lkdGhQdDpuPTAsaGVpZ2h0UHQ6cj0wLHN1cHByZXNzQm91bmRhcnlGcmFtZTppPSExfT10LGE9bmV3IFVpbnQ4QXJyYXkoYXdhaXQgZS5zbGljZSgwLDY0KjEwMjQpLmFycmF5QnVmZmVyKCkpO2lmKHVjKGEpKXtsZXR7dzp0LGg6YX09TmMobixyKTtyZXR1cm4gSWMoYXdhaXQgUGMobmV3IFVpbnQ4QXJyYXkoYXdhaXQgZS5hcnJheUJ1ZmZlcigpKSx0LGEsaSkpfWlmKGRjKGEpKXtsZXR7dzp0LGg6aX09TmMobixyKTtyZXR1cm4gSWMoYXdhaXQgWHMobmV3IFVpbnQ4QXJyYXkoYXdhaXQgZS5hcnJheUJ1ZmZlcigpKSx0LGkpKX1sZXQgbz10YyhhKTtpZihvJiZhYyhvKSl0aHJvdyBuZXcgZXMoYGltYWdlLXBpeGVsc2AsUW8sby53aWR0aCpvLmhlaWdodCk7cmV0dXJuIEljKGF3YWl0IGNyZWF0ZUltYWdlQml0bWFwKGUpKX1mdW5jdGlvbiBJYyhlKXtpZighZSlyZXR1cm4gbnVsbDtsZXQgdD1OdW1iZXIoZS53aWR0aCksbj1OdW1iZXIoZS5oZWlnaHQpO2lmKCFhYyh7d2lkdGg6dCxoZWlnaHQ6bn0pKXJldHVybiBlO2xldCByPXQqbjt0aHJvdyBvYyhlKSxuZXcgZXMoYGltYWdlLXBpeGVsc2AsUW8sTnVtYmVyLmlzU2FmZUludGVnZXIocikmJnI+PTA/cjoyKio1My0xKX1jb25zdCBMYz1uZXcgV2Vha01hcDthc3luYyBmdW5jdGlvbiBSYyhlLHQpe2xldCBuPUxjLmdldChlKTtufHwobj17YWN0aXZlOjAsd2FpdGVyczpbXX0sTGMuc2V0KGUsbikpLG4uYWN0aXZlPj0yfHxuLndhaXRlcnMubGVuZ3RoPjA/YXdhaXQgbmV3IFByb21pc2UoZT0+bi53YWl0ZXJzLnB1c2goZSkpOm4uYWN0aXZlKys7dHJ5e3JldHVybiBhd2FpdCBQcm9taXNlLnJlc29sdmUoKSxhd2FpdCB0KCl9ZmluYWxseXtsZXQgdD1uLndhaXRlcnMuc2hpZnQoKTt0P3QoKToobi5hY3RpdmUtLSxuLmFjdGl2ZT09PTAmJkxjLmRlbGV0ZShlKSl9fWNvbnN0IHpjPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIEJjKGUpe2xldCB0PXpjLmdldChlKTtyZXR1cm4gdHx8KHQ9e2VudHJpZXM6bmV3IE1hcCxyZXRhaW5lZEJ5dGVzOjB9LHpjLnNldChlLHQpKSx0fWNvbnN0IFZjPW5ldyBXZWFrTWFwLEhjPW5ldyBXZWFrU2V0O2Z1bmN0aW9uIFVjKGUpeyFlfHxIYy5oYXMoZSl8fChIYy5hZGQoZSksb2MoZSkpfWZ1bmN0aW9uIFdjKGUpe1VjKGUpfWZ1bmN0aW9uIEdjKGUpe2xldCB0PVZjLmdldChlKTt0fHwodD17Y291bnQ6MCxkZWZlcnJlZDpbXSxhY3RpdmVCeXRlczowLGFjdGl2ZUJpdG1hcHM6bmV3IFdlYWtTZXR9LFZjLnNldChlLHQpKTtsZXQgbj10O24uY291bnQrKztsZXQgcj0hMTtyZXR1cm4oKT0+e2lmKCFyJiYocj0hMCxuLmNvdW50LS0sIShuLmNvdW50PjApKSl7Zm9yKGxldCBlIG9mIG4uZGVmZXJyZWQpZS50aGVuKGU9PlVjKGUpKS5jYXRjaCgoKT0+e30pO24uZGVmZXJyZWQ9W10sbi5hY3RpdmVCeXRlcz0wLG4uYWN0aXZlQml0bWFwcz1uZXcgV2Vha1NldCxWYy5kZWxldGUoZSl9fX1mdW5jdGlvbiBLYyhlKXtpZighZSlyZXR1cm4gMDtsZXQgdD1OdW1iZXIoZS53aWR0aCksbj1OdW1iZXIoZS5oZWlnaHQpO3JldHVybiBOdW1iZXIuaXNTYWZlSW50ZWdlcih0KSYmdD4wJiZOdW1iZXIuaXNTYWZlSW50ZWdlcihuKSYmbj4wP3Qqbio0OjB9ZnVuY3Rpb24gcWMoZSx0KXtpZighdClyZXR1cm47bGV0IG49VmMuZ2V0KGUpO2lmKCFufHxuLmNvdW50PT09MHx8bi5hY3RpdmVCaXRtYXBzLmhhcyh0KSlyZXR1cm47bGV0IHI9bi5hY3RpdmVCeXRlcytLYyh0KTtpZihyPjEzNDIxNzcyOCl0aHJvdyBuZXcgZXMoYGFjdGl2ZS1kZWNvZGVkLWJ5dGVzYCwkbyxyKTtuLmFjdGl2ZUJpdG1hcHMuYWRkKHQpLG4uYWN0aXZlQnl0ZXM9cn1mdW5jdGlvbiBKYyhlLHQsbil7bGV0IHI9Wy4uLnQuZW50cmllc10uZmluZCgoW2VdKT0+ZSE9PW4pO2lmKCFyKXJldHVybiExO2xldFtpLGFdPXI7cmV0dXJuIHQuZW50cmllcy5kZWxldGUoaSksdC5yZXRhaW5lZEJ5dGVzLT1hLndlaWdodCxZYyhlLGEub3duZWRQcm9taXNlKSwhMH1mdW5jdGlvbiBZYyhlLHQpe2xldCBuPVZjLmdldChlKTtpZihuJiZuLmNvdW50PjApe24uZGVmZXJyZWQucHVzaCh0KTtyZXR1cm59dC50aGVuKGU9PlVjKGUpKS5jYXRjaCgoKT0+e30pfWZ1bmN0aW9uIFhjKGUsdCxuKXtsZXQgcj1CYyh0KSxpPXIuZW50cmllcyxhPWkuZ2V0KGUpO2lmKGEpcmV0dXJuIGkuZGVsZXRlKGUpLGkuc2V0KGUsYSksYS5wcm9taXNlLnRoZW4oZT0+KHFjKHQsZSksZSkpO2xldCBvPVJjKHQsbikscz1vLnRoZW4oKHtiaXRtYXA6ZSxvd25lZDp0fSk9PnQ/ZTpudWxsKSxjPW8udGhlbigoe2JpdG1hcDplLG93bmVkOm59KT0+e3RyeXtyZXR1cm4gcWModCxlKSxlfWNhdGNoKHQpe3Rocm93IG4mJlVjKGUpLHR9fSksbD17cHJvbWlzZTpjLG93bmVkUHJvbWlzZTpzLHdlaWdodDowfTtmb3Ioby50aGVuKCh7Yml0bWFwOm4sb3duZWQ6YX0pPT57aWYoaS5nZXQoZSk9PT1sKXtpZihsLmJpdG1hcD1uLCFhKXtpLmRlbGV0ZShlKTtyZXR1cm59Zm9yKGwud2VpZ2h0PUtjKG4pLHIucmV0YWluZWRCeXRlcys9bC53ZWlnaHQ7ci5yZXRhaW5lZEJ5dGVzPiRvJiZKYyh0LHIsZSk7KTt9fSkuY2F0Y2goKCk9Pnt9KSxjLmNhdGNoKCgpPT57aS5nZXQoZSk9PT1sJiYoaS5kZWxldGUoZSksci5yZXRhaW5lZEJ5dGVzLT1sLndlaWdodCxZYyh0LHMpKX0pLGkuc2V0KGUsbCk7aS5zaXplPjI1NiYmSmModCxyLGUpOyk7cmV0dXJuIGN9Y29uc3QgWmM9YGJhc2VgO2Ake1pjfWA7ZnVuY3Rpb24gUWMoZSx0LG4scil7cmV0dXJuIFhjKGAke2V9OiR7dH1gLG4scil9ZnVuY3Rpb24gJGMoZSx0LG4scil7cmV0dXJuIFFjKGBkZXJpdmVkOiR7ZX1gLHQsbixyKX1mdW5jdGlvbiBlbChlLHQsbixyPXt9KXtsZXR7d2lkdGhQdDppPTAsaGVpZ2h0UHQ6YT0wLHN1cHByZXNzQm91bmRhcnlGcmFtZTpvPSExfT1yO3JldHVybiBRYyhaYyxlLG4sYXN5bmMoKT0+KHtiaXRtYXA6YXdhaXQgRmMoYXdhaXQgbihlLHQpLHt3aWR0aFB0OmksaGVpZ2h0UHQ6YSxzdXBwcmVzc0JvdW5kYXJ5RnJhbWU6b30pLG93bmVkOiEwfSkpfWZ1bmN0aW9uIHRsKGUpe2xldCB0PXpjLmdldChlKTtpZih0KXtmb3IobGV0IG4gb2YgdC5lbnRyaWVzLnZhbHVlcygpKVljKGUsbi5vd25lZFByb21pc2UpO3QuZW50cmllcy5jbGVhcigpLHQucmV0YWluZWRCeXRlcz0wLHpjLmRlbGV0ZShlKX19Y29uc3Qgbmw9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gcmwoZSl7bGV0IHQ9bmwuZ2V0KGUpO3JldHVybiB0fHwodD17aW1nczpuZXcgTWFwfSxubC5zZXQoZSx0KSksdH1mdW5jdGlvbiBpbChlLHQpe2lmKHR5cGVvZiBJbWFnZT5gdWApcmV0dXJuIGVsKGUsYGltYWdlL3N2Zyt4bWxgLHQpLnRoZW4odD0+e2lmKCF0KXRocm93IEVycm9yKGBzdmcgZGVjb2RlIGZhaWxlZDogJHtlfWApO3JldHVybiB0fSk7bGV0IG49cmwodCkscj1uLmltZ3MuZ2V0KGUpO2lmKHIpcmV0dXJuIG4uaW1ncy5kZWxldGUoZSksbi5pbWdzLnNldChlLHIpLHIucHJvbWlzZTtsZXQgaT17fTtpZihpLnByb21pc2U9UmModCxhc3luYygpPT57aWYobi5pbWdzLmdldChlKSE9PWkpdGhyb3cgRXJyb3IoYFNWRyBkZWNvZGUgd2FzIHN1cGVyc2VkZWQgYmVmb3JlIGl0IHN0YXJ0ZWRgKTtsZXQgcj1hd2FpdCB0KGUsYGltYWdlL3N2Zyt4bWxgKSxhPVVSTC5jcmVhdGVPYmplY3RVUkwocik7dHJ5e2xldCB0PW5ldyBJbWFnZTtyZXR1cm4gYXdhaXQgbmV3IFByb21pc2UoKG4scik9Pnt0Lm9ubG9hZD0oKT0+e3R5cGVvZiB0LmRlY29kZT09YGZ1bmN0aW9uYD90LmRlY29kZSgpLnRoZW4obikuY2F0Y2gobik6bigpfSx0Lm9uZXJyb3I9KCk9PnIoRXJyb3IoYHN2ZyBsb2FkIGZhaWxlZDogJHtlfWApKSx0LnNyYz1hfSksdH1maW5hbGx5e1VSTC5yZXZva2VPYmplY3RVUkwoYSl9fSksaS5wcm9taXNlLmNhdGNoKCgpPT57bi5pbWdzLmdldChlKT09PWkmJm4uaW1ncy5kZWxldGUoZSl9KSxuLmltZ3Muc2V0KGUsaSksbi5pbWdzLnNpemU+MjU2KXtsZXQgZT1uLmltZ3Mua2V5cygpLm5leHQoKS52YWx1ZTtuLmltZ3MuZGVsZXRlKGUpfXJldHVybiBpLnByb21pc2V9ZnVuY3Rpb24gYWwoZSl7bGV0IHQ9bmwuZ2V0KGUpO3QmJih0LmltZ3MuY2xlYXIoKSxubC5kZWxldGUoZSkpfWZ1bmN0aW9uIG9sKGUpe2xldCB0PWU7cmV0dXJue3c6dC5uYXR1cmFsV2lkdGh8fCh0eXBlb2YgdC53aWR0aD09YG51bWJlcmA/dC53aWR0aDowKXx8MCxoOnQubmF0dXJhbEhlaWdodHx8KHR5cGVvZiB0LmhlaWdodD09YG51bWJlcmA/dC5oZWlnaHQ6MCl8fDB9fWZ1bmN0aW9uIHNsKGUsdCl7aWYoIXR8fCEodC5sfHx0LnR8fHQucnx8dC5iKSlyZXR1cm4gbnVsbDtsZXR7dzpuLGg6cn09b2woZSk7aWYobjw9MHx8cjw9MClyZXR1cm4gbnVsbDtsZXQgaT1lPT5NYXRoLm1heCgwLE1hdGgubWluKDEsZSkpLGE9aSh0LmwpKm4sbz1pKHQudCkqcjtyZXR1cm57c3g6YSxzeTpvLHN3Ok1hdGgubWF4KDEsbi1hLWkodC5yKSpuKSxzaDpNYXRoLm1heCgxLHItby1pKHQuYikqcil9fWZ1bmN0aW9uIGNsKGUsdCxuLHIsaSxhLG8pe2xldCBzPXNsKHQsbik7cz9lLmRyYXdJbWFnZSh0LHMuc3gscy5zeSxzLnN3LHMuc2gscixpLGEsbyk6ZS5kcmF3SW1hZ2UodCxyLGksYSxvKX1mdW5jdGlvbiBsbChlLHQsbixyKXtpZighdHx8IWZjKGUpKXJldHVybnt3aWR0aFB0Om4saGVpZ2h0UHQ6cn07bGV0IGk9TWF0aC5tYXgoLjAxLDEtdC5sLXQuciksYT1NYXRoLm1heCguMDEsMS10LnQtdC5iKTtyZXR1cm57d2lkdGhQdDpuL2ksaGVpZ2h0UHQ6ci9hfX1mdW5jdGlvbiB1bChlKXtyZXR1cm4vXlswLTlhLWZBLUZdezZ9JC8udGVzdChlKT9bcGFyc2VJbnQoZS5zbGljZSgwLDIpLDE2KSxwYXJzZUludChlLnNsaWNlKDIsNCksMTYpLHBhcnNlSW50KGUuc2xpY2UoNCw2KSwxNildOm51bGx9ZnVuY3Rpb24gZGwoZSx0LG4pe3JldHVybiguMjk5KmUrLjU4Nyp0Ky4xMTQqbikvMjU1fWZ1bmN0aW9uIGZsKGUsdCxuKXtsZXQgcj11bCh0KSxpPXVsKG4pO2lmKCFyfHwhaSlyZXR1cm4gZTtsZXRbYSxvLHNdPXIsW2MsbCx1XT1pLGQ9ZS5kYXRhO2ZvcihsZXQgZT0wO2U8ZC5sZW5ndGg7ZSs9NCl7aWYoZFtlKzNdPT09MCljb250aW51ZTtsZXQgdD1kbChkW2VdLGRbZSsxXSxkW2UrMl0pO2RbZV09TWF0aC5yb3VuZChhKyhjLWEpKnQpLGRbZSsxXT1NYXRoLnJvdW5kKG8rKGwtbykqdCksZFtlKzJdPU1hdGgucm91bmQocysodS1zKSp0KX1yZXR1cm4gZX1jb25zdCBwbD0oZSx0KT0+dHlwZW9mIE9mZnNjcmVlbkNhbnZhcz5gdWA/bnVsbDpuZXcgT2Zmc2NyZWVuQ2FudmFzKGUsdCk7YXN5bmMgZnVuY3Rpb24gbWwoZSx0LG4pe2xldHt3aWR0aDpyLGhlaWdodDppfT1uO2lmKHI8PTB8fGk8PTB8fHR5cGVvZiBjcmVhdGVJbWFnZUJpdG1hcD5gdWApcmV0dXJuIGU7bGV0IGE9KG4ub2Zmc2NyZWVuRmFjdG9yeT8/cGwpKHIsaSk7aWYoIWEpcmV0dXJuIGU7bGV0IG89YS5nZXRDb250ZXh0KGAyZGApO2lmKCFvKXJldHVybiBlO28uZHJhd0ltYWdlKGUsMCwwKTtsZXQgczt0cnl7cz1vLmdldEltYWdlRGF0YSgwLDAscixpKX1jYXRjaHtyZXR1cm4gZX1yZXR1cm4gZmwocyx0LmNscjEsdC5jbHIyKSxvLnB1dEltYWdlRGF0YShzLDAsMCksY3JlYXRlSW1hZ2VCaXRtYXAoYSl9ZnVuY3Rpb24gaGwoZSl7cmV0dXJuIGUuc3ZnSW1hZ2VQYXRoIT1udWxsJiZlLnNyY1JlY3Q9PW51bGx9ZnVuY3Rpb24gZ2woZSl7aWYoZS5wcm90b2NvbCE9PWBvb3htbC13b3JrZXItcmVuZGVyZXItbW9kdWxlL3YxYCl0aHJvdyBUeXBlRXJyb3IoYFVuc3VwcG9ydGVkIHdvcmtlciByZW5kZXJlciBwcm90b2NvbDogJHtTdHJpbmcoZS5wcm90b2NvbCl9YCk7aWYoZS5idWlsdGluIT09YG1hdGhgJiZlLmJ1aWx0aW4hPT1gdGhyZWVEYCYmZS5idWlsdGluIT09YHJlZ2lvbk1hcGApdGhyb3cgVHlwZUVycm9yKGBVbnN1cHBvcnRlZCBidWlsdC1pbiB3b3JrZXIgcmVuZGVyZXI6ICR7U3RyaW5nKGUuYnVpbHRpbil9YCk7aWYoZS5idWlsdGluPT09YG1hdGhgJiZ0eXBlb2YgZS5lbmdpbmVBc3NldFVybCE9YHN0cmluZ2ApdGhyb3cgVHlwZUVycm9yKGBNYXRoIHdvcmtlciByZW5kZXJlciByZXF1aXJlcyBhbiBlbmdpbmUgYXNzZXQgVVJMYCk7cmV0dXJuIGV9Y29uc3QgX2w9eyImIjpgJmFtcDtgLCI8IjpgJmx0O2AsIj4iOmAmZ3Q7YCwnIic6YCZxdW90O2B9LHZsPWU9PmUucmVwbGFjZSgvWyY8PiJdL2csZT0+X2xbZV0pO2Z1bmN0aW9uIHlsKGUsdD1gcm9tYW5gKXtpZih0PT09YGRvdWJsZS1zdHJ1Y2tgfHx0PT09YG1vbm9zcGFjZWApcmV0dXJuIHQ7aWYodD09PWBmcmFrdHVyYClyZXR1cm4gZT09PWBib2xkYHx8ZT09PWBib2xkSXRhbGljYD9gYm9sZC1mcmFrdHVyYDpgZnJha3R1cmA7aWYodD09PWBzY3JpcHRgKXJldHVybiBlPT09YGJvbGRgfHxlPT09YGJvbGRJdGFsaWNgP2Bib2xkLXNjcmlwdGA6YHNjcmlwdGA7aWYodD09PWBzYW5zLXNlcmlmYClzd2l0Y2goZSl7Y2FzZWByb21hbmA6cmV0dXJuYHNhbnMtc2VyaWZgO2Nhc2VgaXRhbGljYDpyZXR1cm5gc2Fucy1zZXJpZi1pdGFsaWNgO2Nhc2VgYm9sZGA6cmV0dXJuYGJvbGQtc2Fucy1zZXJpZmA7Y2FzZWBib2xkSXRhbGljYDpyZXR1cm5gc2Fucy1zZXJpZi1ib2xkLWl0YWxpY2B9c3dpdGNoKGUpe2Nhc2Vgcm9tYW5gOnJldHVybmBub3JtYWxgO2Nhc2VgYm9sZGA6cmV0dXJuYGJvbGRgO2Nhc2VgYm9sZEl0YWxpY2A6cmV0dXJuYGJvbGQtaXRhbGljYDtjYXNlYGl0YWxpY2A6cmV0dXJuIG51bGx9fWNvbnN0IGJsPW5ldyBTZXQoWy4uLmDij57ij5/ijrTijrXvuLfvuLjij5zij517fVtdKCnCr1/igL5gXSk7ZnVuY3Rpb24geGwoZSx0LG4pe2xldCByPXlsKHQsbiksaT1yP2AgbWF0aHZhcmlhbnQ9IiR7cn0iYDpgYCxhPWBgLG89YGAscz0oKT0+e28mJj0oYSs9YDxtbiR7aX0+JHt2bChvKX08L21uPmAsYGApfTtmb3IobGV0IHQgb2YgZSl7aWYodD09PWAgYCl7cygpO2NvbnRpbnVlfWlmKHQ+PWAwYCYmdDw9YDlgKXtvKz10O2NvbnRpbnVlfXMoKSxgK+KIksKx4oiTw5fDt8K34oiX4ouF4oiY4oiZKi9gLmluY2x1ZGVzKHQpfHxgPeKJoDw+4omk4oml4omI4omh4oi84omF4omD4oaS4oaQ4oaU4oeS4oiI4oiJ4oqC4oqG4oqD4oqH4oid4omq4omr4oql4omUYC5pbmNsdWRlcyh0KXx8YCw7YC5pbmNsdWRlcyh0KT9hKz1gPG1vPiR7dmwodCl9PC9tbz5gOmAoW3vin6jijIjijIpgLmluY2x1ZGVzKHQpfHxgKV194p+p4oyJ4oyLYC5pbmNsdWRlcyh0KT9hKz1gPG1vIGZlbmNlPSJ0cnVlIiBzdHJldGNoeT0iZmFsc2UiPiR7dmwodCl9PC9tbz5gOmErPWA8bWkke2l9PiR7dmwodCl9PC9taT5gfXJldHVybiBzKCksYX1mdW5jdGlvbiBTbChlKXtyZXR1cm4gZS5tYXAod2wpLmpvaW4oYGApfWZ1bmN0aW9uIENsKGUpe3JldHVybmA8bXJvdz4ke1NsKGUpfTwvbXJvdz5gfWZ1bmN0aW9uIHdsKGUpe3N3aXRjaChlLmtpbmQpe2Nhc2VgcnVuYDpyZXR1cm4geGwoZS50ZXh0LGUuc3R5bGUsZS5fX3NjcmlwdCk7Y2FzZWBncm91cGA6cmV0dXJuIENsKGUuaXRlbXMpO2Nhc2VgZnJhY3Rpb25gOnJldHVybmA8bWZyYWMke2UuYmFyPT09ITE/YCBsaW5ldGhpY2tuZXNzPSIwImA6YGB9PiR7Q2woZS5udW0pfSR7Q2woZS5kZW4pfTwvbWZyYWM+YDtjYXNlYHN1cGA6cmV0dXJuYDxtc3VwPiR7Q2woZS5iYXNlKX0ke0NsKGUuc3VwPz9bXSl9PC9tc3VwPmA7Y2FzZWBzdWJgOnJldHVybmA8bXN1Yj4ke0NsKGUuYmFzZSl9JHtDbChlLnN1Yj8/W10pfTwvbXN1Yj5gO2Nhc2Vgc3ViU3VwYDpyZXR1cm5gPG1zdWJzdXA+JHtDbChlLmJhc2UpfSR7Q2woZS5zdWI/P1tdKX0ke0NsKGUuc3VwPz9bXSl9PC9tc3Vic3VwPmA7Y2FzZWBuYXJ5YDpyZXR1cm4gTmwoZSk7Y2FzZWBkZWxpbWl0ZXJgOnJldHVybiBQbChlKTtjYXNlYHJhZGljYWxgOnJldHVybiBlLmluZGV4JiZlLmluZGV4Lmxlbmd0aD9gPG1yb290PiR7Q2woZS5yYWRpY2FuZCl9JHtDbChlLmluZGV4KX08L21yb290PmA6YDxtc3FydD4ke1NsKGUucmFkaWNhbmQpfTwvbXNxcnQ+YDtjYXNlYGxpbWl0YDpyZXR1cm4gQWwoZSk7Y2FzZWBhcnJheWA6cmV0dXJuIGpsKGUpO2Nhc2VgZ3JvdXBDaHJgOntsZXQgdD1DbChlLmJhc2UpLG49YmwuaGFzKGUuY2hhcikscj1lLnBvcz09PWB0b3BgP2Btb3ZlcmA6YG11bmRlcmAsaT1gPG1vIHN0cmV0Y2h5PSIke259Ij4ke3ZsKGUuY2hhcil9PC9tbz5gO3JldHVybiBuP2A8JHtyfT4ke3R9JHtpfTwvJHtyfT5gOmA8JHtyfSBhY2NlbnQ9InRydWUiPiR7dH0ke2l9PC8ke3J9PmB9Y2FzZWBiYXJgOntsZXQgdD1DbChlLmJhc2UpLG49YDxtbyBzdHJldGNoeT0idHJ1ZSI+JiN4MjAxNTs8L21vPmA7cmV0dXJuIGUucG9zPT09YGJvdGA/YDxtdW5kZXI+JHt0fSR7bn08L211bmRlcj5gOmA8bW92ZXI+JHt0fSR7bn08L21vdmVyPmB9Y2FzZWBhY2NlbnRgOnJldHVybiBrbChlKTtjYXNlYGZ1bmNgOnJldHVybmA8bXJvdz4ke0NsKGUubmFtZSl9PG1vPiYjeDIwNjE7PC9tbz4ke0NsKGUuYXJnKX08L21yb3c+YDtjYXNlYHBoYW50YDpyZXR1cm4gVGwoZSk7Y2FzZWBzUHJlYDpyZXR1cm5gPG1tdWx0aXNjcmlwdHM+JHtDbChlLmJhc2UpfTxtcHJlc2NyaXB0cy8+JHtDbChlLnN1Yil9JHtDbChlLnN1cCl9PC9tbXVsdGlzY3JpcHRzPmA7Y2FzZWBib3hgOnJldHVybiBDbChlLmJhc2UpO2Nhc2VgYm9yZGVyQm94YDpyZXR1cm4gRWwoZSl9fWZ1bmN0aW9uIFRsKGUpe2xldCB0PWUuc2hvdz9TbChlLmJhc2UpOmA8bXBoYW50b20+JHtTbChlLmJhc2UpfTwvbXBoYW50b20+YCxuPVtdO3JldHVybiBlLnplcm9XaWQmJm4ucHVzaChgd2lkdGg9IjAiYCksZS56ZXJvQXNjJiZuLnB1c2goYGhlaWdodD0iMCJgKSxlLnplcm9EZXNjJiZuLnB1c2goYGRlcHRoPSIwImApLG4ubGVuZ3RoP2A8bXBhZGRlZCAke24uam9pbihgIGApfT4ke3R9PC9tcGFkZGVkPmA6YDxtcm93PiR7dH08L21yb3c+YH1mdW5jdGlvbiBFbChlKXtsZXQgdD1bXSxuPSFlLmhpZGVUb3Ascj0hZS5oaWRlQm90LGk9IWUuaGlkZUxlZnQsYT0hZS5oaWRlUmlnaHQ7biYmciYmaSYmYT90LnB1c2goYGJveGApOihuJiZ0LnB1c2goYHRvcGApLHImJnQucHVzaChgYm90dG9tYCksaSYmdC5wdXNoKGBsZWZ0YCksYSYmdC5wdXNoKGByaWdodGApKSxlLnN0cmlrZUgmJnQucHVzaChgaG9yaXpvbnRhbHN0cmlrZWApLGUuc3RyaWtlViYmdC5wdXNoKGB2ZXJ0aWNhbHN0cmlrZWApLGUuc3RyaWtlQmx0ciYmdC5wdXNoKGB1cGRpYWdvbmFsc3RyaWtlYCksZS5zdHJpa2VUbGJyJiZ0LnB1c2goYGRvd25kaWFnb25hbHN0cmlrZWApO2xldCBvPVNsKGUuYmFzZSk7cmV0dXJuIHQubGVuZ3RoP2A8bWVuY2xvc2Ugbm90YXRpb249IiR7dC5qb2luKGAgYCl9Ij4ke299PC9tZW5jbG9zZT5gOmA8bXJvdz4ke299PC9tcm93PmB9Y29uc3QgRGw9eyLMgCI6ImAiLCLMgSI6YMK0YCwizIIiOmBeYCwizIMiOmB+YCwizIYiOmDLmGAsIsyHIjpgy5lgLCLMiCI6YMKoYCwizIwiOmDLh2AsIuKDlyI6YOKGkmAsIuKDliI6YOKGkGB9LE9sPW5ldyBTZXQoW2DMhWAsYMyEYCxgwq9gLGDigL5gLGDMsmAsYMyzYF0pO2Z1bmN0aW9uIGtsKGUpe2xldCB0PUNsKGUuYmFzZSk7aWYoT2wuaGFzKGUuY2hhcikpcmV0dXJuYDxtb3Zlcj4ke3R9PG1vIHN0cmV0Y2h5PSJ0cnVlIj4mI3gyMDE1OzwvbW8+PC9tb3Zlcj5gO2xldCBuPURsW2UuY2hhcl0/P2UuY2hhcjtyZXR1cm5gPG1vdmVyIGFjY2VudD0idHJ1ZSI+JHt0fTxtbyBzdHJldGNoeT0iJHtuPT09YOKGkmB8fG49PT1g4oaQYD9gdHJ1ZWA6YGZhbHNlYH0iPiR7dmwobil9PC9tbz48L21vdmVyPmB9ZnVuY3Rpb24gQWwoZSl7bGV0IHQ9Q2woZS5iYXNlKSxuPWUubG93ZXImJmUubG93ZXIubGVuZ3RoP0NsKGUubG93ZXIpOm51bGwscj1lLnVwcGVyJiZlLnVwcGVyLmxlbmd0aD9DbChlLnVwcGVyKTpudWxsO3JldHVybiBuJiZyP2A8bXVuZGVyb3Zlcj4ke3R9JHtufSR7cn08L211bmRlcm92ZXI+YDpuP2A8bXVuZGVyPiR7dH0ke259PC9tdW5kZXI+YDpyP2A8bW92ZXI+JHt0fSR7cn08L21vdmVyPmA6dH1mdW5jdGlvbiBqbChlKXtsZXQgdD1NYXRoLm1heCgxLC4uLmUucm93cy5tYXAoZT0+ZS5sZW5ndGgpKSxuO249ZS5hbGlnbj09PWBlcWA/QXJyYXkuZnJvbSh7bGVuZ3RoOnR9LChlLHQpPT50JTI9PTA/YHJpZ2h0YDpgbGVmdGApLmpvaW4oYCBgKTplLmFsaWduPT09YGxlZnRgP2BsZWZ0YDpgY2VudGVyYDtsZXQgcj1lLnJvd3MubWFwKGU9PmA8bXRyPiR7ZS5tYXAoZT0+YDxtdGQ+JHtTbChlKX08L210ZD5gKS5qb2luKGBgKX08L210cj5gKS5qb2luKGBgKTtyZXR1cm5gPG10YWJsZSBjb2x1bW5hbGlnbj0iJHtufSIgcm93c3BhY2luZz0iMC4yZW0iIGNvbHVtbnNwYWNpbmc9IjAuM2VtIj4ke3J9PC9tdGFibGU+YH1jb25zdCBNbD1uZXcgU2V0KFsuLi5g4oir4ois4oit4oiu4oiv4oiw4oix4oiy4oiz4qiM4qiN4qiO4qiP4qiQ4qiR4qiS4qiT4qiU4qiV4qiW4qiXYF0pO2Z1bmN0aW9uIE5sKGUpe2xldCB0PWUubGltTG9jPT09YHN1YlN1cGA/ITA6ZS5saW1Mb2M9PT1gdW5kT3ZyYD8hMTpNbC5oYXMoZS5vcCksbj1gPG1vIGxhcmdlb3A9InRydWUiPiR7dmwoZS5vcCl9PC9tbz5gLHI9ZS5zdWI/P1tdLGk9ZS5zdXA/P1tdLGE7cmV0dXJuIGE9dD9yLmxlbmd0aCYmaS5sZW5ndGg/YDxtc3Vic3VwPiR7bn0ke0NsKHIpfSR7Q2woaSl9PC9tc3Vic3VwPmA6ci5sZW5ndGg/YDxtc3ViPiR7bn0ke0NsKHIpfTwvbXN1Yj5gOmkubGVuZ3RoP2A8bXN1cD4ke259JHtDbChpKX08L21zdXA+YDpuOnIubGVuZ3RoJiZpLmxlbmd0aD9gPG11bmRlcm92ZXI+JHtufSR7Q2wocil9JHtDbChpKX08L211bmRlcm92ZXI+YDpyLmxlbmd0aD9gPG11bmRlcj4ke259JHtDbChyKX08L211bmRlcj5gOmkubGVuZ3RoP2A8bW92ZXI+JHtufSR7Q2woaSl9PC9tb3Zlcj5gOm4sYDxtcm93PiR7YX0ke1NsKGUuYm9keSl9PC9tcm93PmB9ZnVuY3Rpb24gUGwoZSl7bGV0IHQ9ZT0+YDxtbyBmZW5jZT0idHJ1ZSIgc3RyZXRjaHk9InRydWUiPiR7dmwoZSl9PC9tbz5gLG49ZS5pdGVtcy5tYXAoZT0+Q2woZSkpLmpvaW4oYDxtbyBzZXBhcmF0b3I9InRydWUiPiw8L21vPmApO3JldHVybmA8bXJvdz4ke3QoZS5iZWdDaGFyKX0ke259JHt0KGUuZW5kQ2hhcil9PC9tcm93PmB9ZnVuY3Rpb24gRmwoZSx0KXtyZXR1cm5gPG1hdGggeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTgvTWF0aC9NYXRoTUwiIGRpc3BsYXk9IiR7dD9gYmxvY2tgOmBpbmxpbmVgfSI+JHtTbChlKX08L21hdGg+YH1mdW5jdGlvbiBJbChlKXtsZXQgdD0vdmlld0JveD0iKFstXGQuXSspIChbLVxkLl0rKSAoWy1cZC5dKykgKFstXGQuXSspIi8uZXhlYyhlKTtpZighdClyZXR1cm57d2lkdGhFbTowLGFzY2VudEVtOjAsZGVzY2VudEVtOjB9O2xldCBuPXBhcnNlRmxvYXQodFsyXSkscj1wYXJzZUZsb2F0KHRbM10pLGk9cGFyc2VGbG9hdCh0WzRdKTtyZXR1cm57d2lkdGhFbTpyL1JsLGFzY2VudEVtOk1hdGgubWF4KDAsLW4vUmwpLGRlc2NlbnRFbTpNYXRoLm1heCgwLChuK2kpL1JsKX19ZnVuY3Rpb24gTGwoZSx0KXtyZXR1cm4gZS5yZXBsYWNlKC9jdXJyZW50Q29sb3IvZyx0KX12YXIgUmwsemw9dCgoKCk9PntSbD0xZTN9KSk7Y29uc3QgQmw9MzI3Njc7ZnVuY3Rpb24gVmwoZSx0KXtsZXQgbj1OdW1iZXIuaXNGaW5pdGUoZSkmJmU+MD9NYXRoLm1heCgxLE1hdGgucm91bmQoZSkpOjEscj1OdW1iZXIuaXNGaW5pdGUodCkmJnQ+MD9NYXRoLm1heCgxLE1hdGgucm91bmQodCkpOjEsaT1NYXRoLm1pbigxLEJsL24sQmwvciksYT1uKnIsbz1hPjE2Nzc3MjE2P01hdGguc3FydCgxNjc3NzIxNi9hKToxLHM9TWF0aC5taW4oaSxvKTtyZXR1cm4gcz49MT97d2lkdGg6bixoZWlnaHQ6cixzY2FsZToxLGNsYW1wZWQ6ITF9Ont3aWR0aDpNYXRoLm1heCgxLE1hdGguZmxvb3IobipzKSksaGVpZ2h0Ok1hdGgubWF4KDEsTWF0aC5mbG9vcihyKnMpKSxzY2FsZTpzLGNsYW1wZWQ6ITB9fXpsKCk7ZnVuY3Rpb24gSGwoZSx0LG4pe2xldCByPU1hdGgubWF4KDEsTWF0aC5yb3VuZCh0KjI1NikpLGk9TWF0aC5tYXgoMSxNYXRoLnJvdW5kKG4qMjU2KSk7cmV0dXJuIGUucmVwbGFjZSgvPHN2ZyhbXj5dKj8pPi8sKGUsdCk9PmA8c3ZnJHt0LnJlcGxhY2UoL1xzKD86d2lkdGh8aGVpZ2h0KT0iW14iXSoiL2csYGApfSB3aWR0aD0iJHtyfSIgaGVpZ2h0PSIke2l9Ij5gKX1mdW5jdGlvbiBVbChlLHQpe3JldHVybiBSZWdFeHAoYCg/Ol58XFxzKSR7dH09IihbXiJdKikiYCkuZXhlYyhlKT8uWzFdfWZ1bmN0aW9uIFdsKGUsdCxuPTApe2xldCByPU51bWJlci5wYXJzZUZsb2F0KFVsKGUsdCk/P2BgKTtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKHIpP3I6bn1mdW5jdGlvbiBHbChlKXtsZXQgdD1uZXcgTWFwO2ZvcihsZXQgbiBvZltgZmlsbGAsYHN0cm9rZWAsYHN0cm9rZS13aWR0aGAsYHN0cm9rZS1saW5lY2FwYCxgc3Ryb2tlLWxpbmVqb2luYCxgZmlsbC1ydWxlYCxgb3BhY2l0eWBdKXtsZXQgcj1VbChlLG4pO3IhPT12b2lkIDAmJnQuc2V0KG4scil9bGV0IG49VWwoZSxgc3R5bGVgKTtpZihuKWZvcihsZXQgZSBvZiBuLnNwbGl0KGA7YCkpe2xldCBuPWUuaW5kZXhPZihgOmApO2lmKG48MCljb250aW51ZTtsZXQgcj1lLnNsaWNlKDAsbikudHJpbSgpLGk9ZS5zbGljZShuKzEpLnRyaW0oKTtyJiZpJiZ0LnNldChyLGkpfXJldHVybiB0fWZ1bmN0aW9uIEtsKGUsdCxuKXtsZXQgcj1HbCh0KSxpPXsuLi5ufSxhPXIuZ2V0KGBmaWxsYCk7YT09PWBub25lYD9pLmZpbGw9ITE6YSYmKGkuZmlsbD0hMCxlLmZpbGxTdHlsZT1hKTtsZXQgbz1yLmdldChgc3Ryb2tlYCk7bz09PWBub25lYD9pLnN0cm9rZT0hMTpvJiYoaS5zdHJva2U9ITAsZS5zdHJva2VTdHlsZT1vKTtsZXQgcz1OdW1iZXIucGFyc2VGbG9hdChyLmdldChgc3Ryb2tlLXdpZHRoYCk/P2BgKTtOdW1iZXIuaXNGaW5pdGUocykmJihlLmxpbmVXaWR0aD1zKTtsZXQgYz1yLmdldChgc3Ryb2tlLWxpbmVjYXBgKTsoYz09PWBidXR0YHx8Yz09PWByb3VuZGB8fGM9PT1gc3F1YXJlYCkmJihlLmxpbmVDYXA9Yyk7bGV0IGw9ci5nZXQoYHN0cm9rZS1saW5lam9pbmApOyhsPT09YGJldmVsYHx8bD09PWByb3VuZGB8fGw9PT1gbWl0ZXJgKSYmKGUubGluZUpvaW49bCk7bGV0IHU9ci5nZXQoYGZpbGwtcnVsZWApOyh1PT09YGV2ZW5vZGRgfHx1PT09YG5vbnplcm9gKSYmKGkuZmlsbFJ1bGU9dSk7bGV0IGQ9TnVtYmVyLnBhcnNlRmxvYXQoci5nZXQoYG9wYWNpdHlgKT8/YGApO3JldHVybiBOdW1iZXIuaXNGaW5pdGUoZCkmJihlLmdsb2JhbEFscGhhKj1NYXRoLm1heCgwLE1hdGgubWluKDEsZCkpKSxpfWZ1bmN0aW9uIHFsKGUsdCl7aWYoIXQpcmV0dXJuO2xldCBuPS8oW2EtekEtWl0rKVwoKFteKV0qKVwpL2c7Zm9yKGxldCByPW4uZXhlYyh0KTtyO3I9bi5leGVjKHQpKXtsZXQgdD1yWzJdLnRyaW0oKS5zcGxpdCgvW1xzLF0rLykuZmlsdGVyKEJvb2xlYW4pLm1hcChOdW1iZXIpO2lmKCF0LnNvbWUoZT0+IU51bWJlci5pc0Zpbml0ZShlKSkpc3dpdGNoKHJbMV0pe2Nhc2VgbWF0cml4YDp0Lmxlbmd0aD49NiYmZS50cmFuc2Zvcm0oLi4udC5zbGljZSgwLDYpKTticmVhaztjYXNlYHRyYW5zbGF0ZWA6ZS50cmFuc2xhdGUodFswXT8/MCx0WzFdPz8wKTticmVhaztjYXNlYHNjYWxlYDp7bGV0IG49dFswXT8/MTtlLnNjYWxlKG4sdFsxXT8/bik7YnJlYWt9Y2FzZWByb3RhdGVgOntsZXQgbj0odFswXT8/MCkqTWF0aC5QSS8xODA7dC5sZW5ndGg+PTM/KGUudHJhbnNsYXRlKHRbMV0sdFsyXSksZS5yb3RhdGUobiksZS50cmFuc2xhdGUoLXRbMV0sLXRbMl0pKTplLnJvdGF0ZShuKTticmVha319fX1mdW5jdGlvbiBKbChlLHQsbil7bi5maWxsJiZlLmZpbGwodCxuLmZpbGxSdWxlKSxuLnN0cm9rZSYmZS5saW5lV2lkdGg+MCYmZS5zdHJva2UodCl9ZnVuY3Rpb24gWWwoZSx0LG4scil7bGV0IGk9VWwodC5zbGljZSgwLHQuaW5kZXhPZihgPmApKzEpLGB2aWV3Qm94YCk/LnRyaW0oKS5zcGxpdCgvW1xzLF0rLykubWFwKE51bWJlcik7aWYoIWl8fGkubGVuZ3RoIT09NHx8aS5zb21lKGU9PiFOdW1iZXIuaXNGaW5pdGUoZSkpKXRocm93IFR5cGVFcnJvcihgTWF0aEpheCBTVkcgbXVzdCBjb250YWluIGEgZmluaXRlIHZpZXdCb3hgKTtsZXRbYSxvLHMsY109aTtpZighKHM+MCl8fCEoYz4wKSl0aHJvdyBUeXBlRXJyb3IoYE1hdGhKYXggU1ZHIHZpZXdCb3ggbXVzdCBoYXZlIHBvc2l0aXZlIGRpbWVuc2lvbnNgKTtlLnNhdmUoKSxlLnNldFRyYW5zZm9ybShuL3MsMCwwLHIvYywtYSpuL3MsLW8qci9jKSxlLmZpbGxTdHlsZT1gIzAwMDAwMGAsZS5zdHJva2VTdHlsZT1gIzAwMDAwMGAsZS5saW5lV2lkdGg9MTtsZXQgbD17ZmlsbDohMCxzdHJva2U6ITEsZmlsbFJ1bGU6YG5vbnplcm9gfSx1PVtdLGQ9LzxcLz8oW0EtWmEtel1bXHc6LV0qKShbXj5dKik+L2c7Zm9yKGxldCBuPWQuZXhlYyh0KTtuO249ZC5leGVjKHQpKXtsZXRbdCxyLGk9YGBdPW4sYT1yLnRvTG93ZXJDYXNlKCksbz10LnN0YXJ0c1dpdGgoYDwvYCk7aWYoYT09PWBzdmdgKWNvbnRpbnVlO2lmKG8pe2E9PT1gZ2AmJihlLnJlc3RvcmUoKSxsPXUucG9wKCk/P2wpO2NvbnRpbnVlfWlmKGE9PT1gZ2Ape3UucHVzaChsKSxlLnNhdmUoKSxsPUtsKGUsaSxsKSxxbChlLFVsKGksYHRyYW5zZm9ybWApKTtjb250aW51ZX1pZihhIT09YHBhdGhgJiZhIT09YHJlY3RgJiZhIT09YGxpbmVgKWNvbnRpbnVlO2Uuc2F2ZSgpO2xldCBzPUtsKGUsaSxsKTtxbChlLFVsKGksYHRyYW5zZm9ybWApKTtsZXQgYz1hPT09YHBhdGhgP25ldyBQYXRoMkQoVWwoaSxgZGApPz9gYCk6bmV3IFBhdGgyRDthPT09YHJlY3RgP2MucmVjdChXbChpLGB4YCksV2woaSxgeWApLFdsKGksYHdpZHRoYCksV2woaSxgaGVpZ2h0YCkpOmE9PT1gbGluZWAmJihjLm1vdmVUbyhXbChpLGB4MWApLFdsKGksYHkxYCkpLGMubGluZVRvKFdsKGksYHgyYCksV2woaSxgeTJgKSkpLEpsKGUsYyxzKSxlLnJlc3RvcmUoKX1lLnJlc3RvcmUoKX1hc3luYyBmdW5jdGlvbiBYbChlLHQpe2xldHt3aWR0aDpuLGhlaWdodDpyfT1WbChlLndpZHRoRW0qMjU2LChlLmFzY2VudEVtK2UuZGVzY2VudEVtKSoyNTYpLGk9eG4obixyKSxhPWk/LmdldENvbnRleHQoYDJkYCk7aWYoIWl8fCFhfHx0eXBlb2YgUGF0aDJEPmB1YCl0aHJvdyBFcnJvcihgTWF0aCBTVkcgcmFzdGVyaXphdGlvbiByZXF1aXJlcyBDYW52YXMgMkQgYW5kIFBhdGgyRCBzdXBwb3J0YCk7WWwoYSxIbChMbChlLnN2Zyx0KSxlLndpZHRoRW0sZS5hc2NlbnRFbStlLmRlc2NlbnRFbSksbixyKTtsZXQgbz1pLHM9bixjPXIsbD02NC8yNTYsdT1NYXRoLm1heCgxLE1hdGgucm91bmQobipsKSksZD1NYXRoLm1heCgxLE1hdGgucm91bmQocipsKSk7Zm9yKDtzPnV8fGM+ZDspe2xldCBlPU1hdGgubWF4KHUsTWF0aC5jZWlsKHMvMikpLHQ9TWF0aC5tYXgoZCxNYXRoLmNlaWwoYy8yKSksbj14bihlLHQpLHI9bj8uZ2V0Q29udGV4dChgMmRgKTtpZighbnx8IXIpYnJlYWs7ci5pbWFnZVNtb290aGluZ0VuYWJsZWQ9ITAsci5pbWFnZVNtb290aGluZ1F1YWxpdHk9YGhpZ2hgLHIuZHJhd0ltYWdlKG8sMCwwLGUsdCksbz1uLHM9ZSxjPXR9cmV0dXJue3NvdXJjZTpvLHdpZHRoUHg6cyxoZWlnaHRQeDpjfX1mdW5jdGlvbiBabChlKXtyZXR1cm4gdHlwZW9mIEhUTUxDYW52YXNFbGVtZW50PGB1YCYmZSBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50fWZ1bmN0aW9uIFFsKGU9MSl7cmV0dXJuIHR5cGVvZiB3aW5kb3c8YHVgJiZ3aW5kb3cuZGV2aWNlUGl4ZWxSYXRpb3x8ZX1mdW5jdGlvbiAkbChlLHQsbil7bGV0IHI9TWF0aC5yb3VuZCh0Km4pJTI9PTE/LjU6MCxpPWUqbjtyZXR1cm4oTWF0aC5yb3VuZChpLXIpK3IpL24tZX1mdW5jdGlvbiBldShlLHQpe2xldCBuPU1hdGgubWF4KDEsTWF0aC5yb3VuZChlKnQvMykpLHI9TWF0aC5tYXgoMSxNYXRoLnJvdW5kKGUqdC8zKSk7cmV0dXJue3JhaWxEZXY6bixnYXBEZXY6cixzcGFuRGV2OjIqbityfX1mdW5jdGlvbiB0dShlKXtpZighZS5zdGFydHNXaXRoKGBkYXRhOmApKXJldHVybiBudWxsO2xldCB0PWUuaW5kZXhPZihgLGApO2lmKHQ9PT0tMSlyZXR1cm4gbnVsbDtsZXQgbj1hdG9iKGUuc2xpY2UodCsxKSkscj1uZXcgVWludDhBcnJheShuLmxlbmd0aCk7Zm9yKGxldCBlPTA7ZTxuLmxlbmd0aDtlKyspcltlXT1uLmNoYXJDb2RlQXQoZSk7cmV0dXJuIHIuYnVmZmVyfXZhciBudT1jbGFzc3tzdGF0ZT1gdW5pbml0aWFsaXplZGA7Z2VuZXJhdGlvblZhbHVlPTA7cmVhZGluZXNzO3BvaXNvbkxpc3RlbmVycz1uZXcgU2V0O2NvbnN0cnVjdG9yKGUsdCxuKXt0aGlzLmluaXRpYWxpemU9ZSx0aGlzLnJlaW5pdGlhbGl6ZT10LHRoaXMubm9ybWFsaXplRmFpbHVyZT1ufWdldCBnZW5lcmF0aW9uKCl7cmV0dXJuIHRoaXMuZ2VuZXJhdGlvblZhbHVlfWdldCBwb2lzb25lZCgpe3JldHVybiB0aGlzLnN0YXRlPT09YHBvaXNvbmVkYH1vblBvaXNvbihlKXtyZXR1cm4gdGhpcy5wb2lzb25MaXN0ZW5lcnMuYWRkKGUpLCgpPT50aGlzLnBvaXNvbkxpc3RlbmVycy5kZWxldGUoZSl9YXN5bmMgZW5zdXJlUmVhZHkoKXtpZih0aGlzLnN0YXRlIT09YHJlYWR5YCl7aWYoIXRoaXMucmVhZGluZXNzKXtsZXQgZT10aGlzLnN0YXRlPT09YHVuaW5pdGlhbGl6ZWRgP3RoaXMuaW5pdGlhbGl6ZTp0aGlzLnJlaW5pdGlhbGl6ZTt0aGlzLnJlYWRpbmVzcz1Qcm9taXNlLnJlc29sdmUoKS50aGVuKGUpLnRoZW4oKCk9Pnt0aGlzLmdlbmVyYXRpb25WYWx1ZSs9MSx0aGlzLnN0YXRlPWByZWFkeWAsdGhpcy5yZWFkaW5lc3M9dm9pZCAwfSxlPT57dGhyb3cgdGhpcy5yZWFkaW5lc3M9dm9pZCAwLGV9KX1hd2FpdCB0aGlzLnJlYWRpbmVzc319cnVuKGUpe3RyeXtyZXR1cm4gZSgpfWNhdGNoKGUpe2xldCB0PXRoaXMubm9ybWFsaXplRmFpbHVyZShlKTt0aHJvdyB0Pyh0aGlzLnBvaXNvbih0KSx0KTplfX10cnlSdW5SZWFkeShlKXtpZih0aGlzLnN0YXRlIT09YHJlYWR5YClyZXR1cm57Y3VycmVudDohMX07bGV0IHQ9dGhpcy5nZW5lcmF0aW9uVmFsdWUsbj10aGlzLnJ1bihlKTtyZXR1cm4gdGhpcy5zdGF0ZSE9PWByZWFkeWB8fHQhPT10aGlzLmdlbmVyYXRpb25WYWx1ZT97Y3VycmVudDohMX06e2N1cnJlbnQ6ITAsZ2VuZXJhdGlvbjp0LHZhbHVlOm59fXBvaXNvbihlKXt0aGlzLnN0YXRlPWBwb2lzb25lZGAsdGhpcy5yZWFkaW5lc3M9dm9pZCAwO2ZvcihsZXQgdCBvZiB0aGlzLnBvaXNvbkxpc3RlbmVycyl0KGUpfWFzc2VydEN1cnJlbnQoZSl7aWYodGhpcy5zdGF0ZSE9PWByZWFkeWB8fGUhPT10aGlzLmdlbmVyYXRpb25WYWx1ZSl0aHJvdyBFcnJvcihgV0FTTSBhcmNoaXZlIHNlc3Npb24gYmVsb25ncyB0byBhIGRpc2NhcmRlZCBydW50aW1lIGdlbmVyYXRpb25gKX19LHJ1PWNsYXNzIGUgZXh0ZW5kcyBFcnJvcntjb2RlPWBwYXJzZXItY3Jhc2hlZGA7Y29uc3RydWN0b3IodCl7c3VwZXIodCksdGhpcy5uYW1lPWBXYXNtVHJhcEVycm9yYCxPYmplY3Quc2V0UHJvdG90eXBlT2YodGhpcyxlLnByb3RvdHlwZSl9fTtmdW5jdGlvbiBpdShlKXtsZXQgdD1nbG9iYWxUaGlzLldlYkFzc2VtYmx5Py5SdW50aW1lRXJyb3I7cmV0dXJuIHQmJmUgaW5zdGFuY2VvZiB0fHxlIGluc3RhbmNlb2YgUmFuZ2VFcnJvcj8hMDplIGluc3RhbmNlb2YgRXJyb3I/ZS5uYW1lPT09YFJ1bnRpbWVFcnJvcmB8fGUubmFtZT09PWBDb21waWxlRXJyb3JgfHxlLm5hbWU9PT1gTGlua0Vycm9yYHx8ZS5uYW1lPT09YEludGVybmFsRXJyb3JgfHxlLm5hbWU9PT1gT09NRXJyb3JgOiExfWZ1bmN0aW9uIGF1KGUpe3RyeXtpZigodHlwZW9mIGUhPWBvYmplY3RgfHwhZSkmJnR5cGVvZiBlIT1gZnVuY3Rpb25gKXJldHVybjtsZXQgdD1SZWZsZWN0LmdldChlLGBfX2Rlc3Ryb3lfaW50b19yYXdgKTt0eXBlb2YgdD09YGZ1bmN0aW9uYCYmUmVmbGVjdC5hcHBseSh0LGUsW10pfWNhdGNoe319ZnVuY3Rpb24gb3UoZSx0KXtyZXR1cm4gZSh7bW9kdWxlX29yX3BhdGg6dH0pfXZhciBzdT1jbGFzc3tydW50aW1lO3dhc21JbnB1dD1udWxsO2N1cnJlbnRBcmNoaXZlPW51bGw7Y29uc3RydWN0b3IoZSx0PXt9KXt0aGlzLmluaXQ9ZSx0aGlzLm9wdGlvbnM9dCx0aGlzLnJ1bnRpbWU9bmV3IG51KCgpPT50aGlzLmludm9rZUNvbmZpZ3VyZWQodGhpcy5pbml0KSwoKT0+dGhpcy5pbnZva2VDb25maWd1cmVkKHRoaXMub3B0aW9ucy5yZWluaXQ/P3RoaXMuaW5pdCksY3UpLHRoaXMucnVudGltZS5vblBvaXNvbigoKT0+dGhpcy5kcm9wUG9pc29uZWRBcmNoaXZlKCkpfXNldFdhc21JbnB1dChlKXt0aGlzLndhc21JbnB1dD1lLHRoaXMucnVudGltZS5lbnN1cmVSZWFkeSgpLmNhdGNoKCgpPT52b2lkIDApfXNldFdhc21VcmwoZSl7dGhpcy5zZXRXYXNtSW5wdXQoZSl9Z2V0IGFyY2hpdmUoKXtyZXR1cm4gdGhpcy5jdXJyZW50QXJjaGl2ZX1zZXRBcmNoaXZlKGUpe3RoaXMuZnJlZUFyY2hpdmUoKSx0aGlzLmN1cnJlbnRBcmNoaXZlPWV9ZGlzcG9zZUFyY2hpdmUoKXt0aGlzLmZyZWVBcmNoaXZlKCl9Z2V0IHBvaXNvbmVkKCl7cmV0dXJuIHRoaXMucnVudGltZS5wb2lzb25lZH1hc3luYyBlbnN1cmVSZWFkeSgpe2F3YWl0IHRoaXMucnVudGltZS5lbnN1cmVSZWFkeSgpfXJ1bihlKXtyZXR1cm4gdGhpcy5ydW50aW1lLnJ1bihlKX1wb2lzb24oKXt0aGlzLnJ1bnRpbWUucG9pc29uKG5ldyBydShgV0FTTSBwYXJzZXIgd2FzIHJlY3ljbGVkYCkpfWludm9rZUNvbmZpZ3VyZWQoZSl7cmV0dXJuIHRoaXMud2FzbUlucHV0PT09bnVsbD9Qcm9taXNlLnJlamVjdChFcnJvcihgV2FzbVBhcnNlckhvc3Q6IHNldFdhc21JbnB1dCB3YXMgbmV2ZXIgY2FsbGVkYCkpOm91KGUsdGhpcy53YXNtSW5wdXQpfWZyZWVBcmNoaXZlKCl7dGhpcy5jdXJyZW50QXJjaGl2ZSE9PW51bGwmJnRoaXMub3B0aW9ucy5mcmVlQXJjaGl2ZSYmdGhpcy5vcHRpb25zLmZyZWVBcmNoaXZlKHRoaXMuY3VycmVudEFyY2hpdmUpLHRoaXMuY3VycmVudEFyY2hpdmU9bnVsbH1kcm9wUG9pc29uZWRBcmNoaXZlKCl7bGV0IGU9dGhpcy5jdXJyZW50QXJjaGl2ZTt0aGlzLmN1cnJlbnRBcmNoaXZlPW51bGwsYXUoZSl9fTtmdW5jdGlvbiBjdShlKXtyZXR1cm4gaXUoZSk/bmV3IHJ1KGBXQVNNIHBhcnNlciB0cmFwcGVkIGFuZCB3YXMgcmVjeWNsZWQ6ICR7ZSBpbnN0YW5jZW9mIEVycm9yP2UubWVzc2FnZTpTdHJpbmcoZSl9YCk6bnVsbH1mdW5jdGlvbiBsdShlKXtyZXR1cm4gdHlwZW9mIGU9PWBudW1iZXJgJiZOdW1iZXIuaXNTYWZlSW50ZWdlcihlKSYmZT4wfWZ1bmN0aW9uIHV1KGUpe2lmKCFlfHx0eXBlb2YgZSE9YG9iamVjdGB8fEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuITE7bGV0IHQ9ZTtyZXR1cm4gbHUodC5yZXF1aXJlZEJ5dGVzKSYmbHUodC5vZmZlcmVkQnl0ZXMpJiZ0LnJlcXVpcmVkQnl0ZXM+dC5vZmZlcmVkQnl0ZXN9dmFyIGR1PWNsYXNzIGUgZXh0ZW5kcyBSYW5nZUVycm9ye2NvZGU9YG9veG1sLWluc3VmZmljaWVudC1jcmVkaXRgO3JlcXVpcmVkQnl0ZXM7b2ZmZXJlZEJ5dGVzO2NvbnN0cnVjdG9yKHQpe3N1cGVyKGBQdWxsIHVuaXQgcmVxdWlyZXMgJHt0LnJlcXVpcmVkQnl0ZXN9IGJ5dGVzIGJ1dCBjcmVkaXQgaXMgJHt0Lm9mZmVyZWRCeXRlc31gKSx0aGlzLm5hbWU9YFB1bGxTZXNzaW9uSW5zdWZmaWNpZW50Q3JlZGl0RXJyb3JgLHRoaXMucmVxdWlyZWRCeXRlcz10LnJlcXVpcmVkQnl0ZXMsdGhpcy5vZmZlcmVkQnl0ZXM9dC5vZmZlcmVkQnl0ZXMsT2JqZWN0LnNldFByb3RvdHlwZU9mKHRoaXMsZS5wcm90b3R5cGUpfX07ZnVuY3Rpb24gZnUoZSl7aWYoZSBpbnN0YW5jZW9mIGR1KXJldHVybiBlO2xldCB0PWUgaW5zdGFuY2VvZiBFcnJvcj9lLm1lc3NhZ2U6U3RyaW5nKGUpO2lmKCF0LnN0YXJ0c1dpdGgoYE9PWE1MX0lOU1VGRklDSUVOVF9DUkVESVQ6YCkpcmV0dXJuO2xldCBuO3RyeXtuPUpTT04ucGFyc2UodC5zbGljZSgyNikpfWNhdGNoe3JldHVybn1pZighbnx8dHlwZW9mIG4hPWBvYmplY3RgfHxBcnJheS5pc0FycmF5KG4pKXJldHVybjtsZXQgcj1uO2lmKCEoci5jb2RlIT09YG9veG1sLWluc3VmZmljaWVudC1jcmVkaXRgfHwhdXUocikpKXJldHVybiBuZXcgZHUocil9ZnVuY3Rpb24gcHUoZSx0LG4pe2xldCByPWZ1KGUpO2lmKCEoIXJ8fHIub2ZmZXJlZEJ5dGVzIT09dHx8ci5yZXF1aXJlZEJ5dGVzPm4pKXJldHVybiByfWZ1bmN0aW9uIG11KGUsdCxuKXtpZihodShlKSlyZXR1cm4gZS5vZmZlcmVkQnl0ZXM9PT10JiZlLnJlcXVpcmVkQnl0ZXM8PW4/ZS5yZXF1aXJlZEJ5dGVzOnZvaWQgMH1mdW5jdGlvbiBodShlKXtyZXR1cm4gZSBpbnN0YW5jZW9mIGR1fHwhIWUmJnR5cGVvZiBlPT1gb2JqZWN0YCYmZS5jb2RlPT09YG9veG1sLWluc3VmZmljaWVudC1jcmVkaXRgJiZ1dShlKX1jb25zdCBndT1gT09YTUxfUkVTT1VSQ0VfTElNSVQ6YDtmdW5jdGlvbiBfdShlKXtyZXR1cm4gdHlwZW9mIGU9PWBudW1iZXJgJiZOdW1iZXIuaXNTYWZlSW50ZWdlcihlKSYmZT49MH1mdW5jdGlvbiB2dShlKXtpZighZXx8dHlwZW9mIGUhPWBvYmplY3RgfHxBcnJheS5pc0FycmF5KGUpKXJldHVybiExO2xldCB0PWU7cmV0dXJuIF91KHQuYXJjaGl2ZUVudHJ5Q291bnQpJiZfdSh0LmRlY2xhcmVkSW5mbGF0ZWRCeXRlcykmJih0Lmxhcmdlc3RJbmZsYXRlZEVudHJ5Qnl0ZXM9PT12b2lkIDB8fF91KHQubGFyZ2VzdEluZmxhdGVkRW50cnlCeXRlcykpJiZfdSh0LmRpc3RpbmN0SW5mbGF0ZWRCeXRlcykmJl91KHQub3BlcmF0aW9uSW5mbGF0ZWRCeXRlcyl9ZnVuY3Rpb24geXUoZSl7bGV0IHQ7dHJ5e3Q9SlNPTi5wYXJzZShuZXcgVGV4dERlY29kZXIoKS5kZWNvZGUoZSkpfWNhdGNoe3Rocm93IFR5cGVFcnJvcihgT09YTUwgcmVzb3VyY2UgdXNhZ2UgY2hlY2twb2ludCBpcyBub3QgdmFsaWQgSlNPTmApfWlmKCF2dSh0KSl0aHJvdyBUeXBlRXJyb3IoYE9PWE1MIHJlc291cmNlIHVzYWdlIGNoZWNrcG9pbnQgaXMgaW52YWxpZGApO3JldHVybiB0fWZ1bmN0aW9uIGJ1KGUpe3JldHVybiBlPT09YGRvY3hgfHxlPT09YHhsc3hgfHxlPT09YHBwdHhgfWZ1bmN0aW9uIHh1KGUpe3JldHVybiBlPT09YGNvbnRhaW5lcmB8fGU9PT1gZGVjb21wcmVzc2lvbmB8fGU9PT1gcGFyc2luZ2B8fGU9PT1gc2VyaWFsaXphdGlvbmB8fGU9PT1gbGF5b3V0YHx8ZT09PWByZW5kZXJpbmdgfHxlPT09YHdvcmtlcmB9ZnVuY3Rpb24gU3UoZSx0KXtyZXR1cm4gdHlwZW9mIGU9PWBzdHJpbmdgJiZlLmxlbmd0aD4wJiZlLmxlbmd0aDw9dCYmIS9bXHUwMDAwLVx1MDAxZlx1MDA3Zl0vdS50ZXN0KGUpfWZ1bmN0aW9uIEN1KGUpe3JldHVybiBTdShlLDEyOCkmJi9eW2EtejAtOV1bYS16MC05LV0qJC91LnRlc3QoZSl9ZnVuY3Rpb24gd3UoZSl7cmV0dXJuIVN1KGUsNDA5Nil8fGUuc3RhcnRzV2l0aChgL2ApfHxlLnN0YXJ0c1dpdGgoYFxcYCl8fGUuaW5jbHVkZXMoYFxcYCl8fGUuaW5jbHVkZXMoYD9gKXx8ZS5pbmNsdWRlcyhgI2ApfHxlLmluY2x1ZGVzKGA6Ly9gKXx8L15bYS16XTovaXUudGVzdChlKT8hMTplLnNwbGl0KGAvYCkuZXZlcnkoZT0+ZSE9PWBgJiZlIT09YC5gJiZlIT09YC4uYCl9Y29uc3QgVHU9bmV3IE1hcChbW2BhcmNoaXZlLWVudHJ5OmRlY2xhcmVkLWluZmxhdGVkLWJ5dGVzYCx7c3RhZ2U6YGNvbnRhaW5lcmAscGFydDpgcmVxdWlyZWRgfV0sW2BhcmNoaXZlLWVudHJ5OmFjdHVhbC1pbmZsYXRlZC1ieXRlc2Ase3N0YWdlOmBkZWNvbXByZXNzaW9uYCxwYXJ0OmByZXF1aXJlZGB9XSxbYGFyY2hpdmU6ZW50cnktY291bnRgLHtzdGFnZTpgY29udGFpbmVyYCxwYXJ0OmBmb3JiaWRkZW5gfV0sW2BhcmNoaXZlOmNlbnRyYWwtZGlyZWN0b3J5LWJ5dGVzYCx7c3RhZ2U6YGNvbnRhaW5lcmAscGFydDpgZm9yYmlkZGVuYCxjb25maWd1cmFibGU6ITF9XSxbYGFyY2hpdmU6ZGlzdGluY3QtaW5mbGF0ZWQtYnl0ZXNgLHtzdGFnZTpgZGVjb21wcmVzc2lvbmAscGFydDpgcmVxdWlyZWRgfV0sW2B4bWwtZXZlbnQ6Ynl0ZXNgLHtzdGFnZTpgcGFyc2luZ2AscGFydDpgb3B0aW9uYWxgLGNvbmZpZ3VyYWJsZTohMX1dLFtgeG1sLWNvbnRleHQ6Ynl0ZXNgLHtzdGFnZTpgcGFyc2luZ2AscGFydDpgb3B0aW9uYWxgLGNvbmZpZ3VyYWJsZTohMX1dLFtgeG1sLXRyZWU6ZGVwdGhgLHtzdGFnZTpgcGFyc2luZ2AscGFydDpgb3B0aW9uYWxgLGNvbmZpZ3VyYWJsZTohMX1dLFtgd29ya3NoZWV0LXJvdzpwcm9qZWN0ZWQtYnl0ZXNgLHtzdGFnZTpgcGFyc2luZ2AscGFydDpgb3B0aW9uYWxgLGNvbmZpZ3VyYWJsZTohMX1dLFtgd29ya3NoZWV0LXNoZWxsOnByb2plY3RlZC1ieXRlc2Ase3N0YWdlOmBwYXJzaW5nYCxwYXJ0OmBvcHRpb25hbGAsY29uZmlndXJhYmxlOiExfV1dKSxFdT1uZXcgU2V0KFsuLi5UdS5rZXlzKCldLm1hcChlPT5lLnNsaWNlKDAsZS5pbmRleE9mKGA6YCkpKSksRHU9bmV3IFNldChbLi4uVHUua2V5cygpXS5tYXAoZT0+ZS5zbGljZShlLmluZGV4T2YoYDpgKSsxKSkpO2Z1bmN0aW9uIE91KGUpe2lmKCFlfHx0eXBlb2YgZSE9YG9iamVjdGB8fEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuITE7bGV0IHQ9ZTtyZXR1cm4hYnUodC5mb3JtYXQpfHwhU3UodC5vcGVyYXRpb24sMjU2KXx8IUN1KHQucmVzb3VyY2UpfHwhQ3UodC5tZXRyaWMpfHwhX3UodC5saW1pdCl8fCFfdSh0Lm9ic2VydmVkKXx8dHlwZW9mIHQuY29uZmlndXJhYmxlIT1gYm9vbGVhbmB8fCF2dSh0LnVzYWdlKT8hMTohKGBwYXJ0YGluIHQpfHx3dSh0LnBhcnQpfWZ1bmN0aW9uIGt1KGUpe2lmKCFlfHx0eXBlb2YgZSE9YG9iamVjdGB8fEFycmF5LmlzQXJyYXkoZSkpcmV0dXJuITE7bGV0IHQ9ZTtpZigheHUodC5zdGFnZSl8fCFPdSh0LnZpb2xhdGlvbikpcmV0dXJuITE7bGV0IG49dC52aW9sYXRpb24scj1UdS5nZXQoYCR7bi5yZXNvdXJjZX06JHtuLm1ldHJpY31gKTtyZXR1cm4gcj90LnN0YWdlIT09ci5zdGFnZXx8ci5jb25maWd1cmFibGU9PT0hMSYmbi5jb25maWd1cmFibGUhPT0hMT8hMTpyLnBhcnQ9PT1gcmVxdWlyZWRgP24ucGFydCE9PXZvaWQgMDpyLnBhcnQ9PT1gZm9yYmlkZGVuYD9uLnBhcnQ9PT12b2lkIDA6ITA6IShFdS5oYXMobi5yZXNvdXJjZSkmJkR1LmhhcyhuLm1ldHJpYykpfWZ1bmN0aW9uIEF1KGUpe3JldHVybnthcmNoaXZlRW50cnlDb3VudDplLmFyY2hpdmVFbnRyeUNvdW50LGRlY2xhcmVkSW5mbGF0ZWRCeXRlczplLmRlY2xhcmVkSW5mbGF0ZWRCeXRlcywuLi5lLmxhcmdlc3RJbmZsYXRlZEVudHJ5Qnl0ZXM9PT12b2lkIDA/e306e2xhcmdlc3RJbmZsYXRlZEVudHJ5Qnl0ZXM6ZS5sYXJnZXN0SW5mbGF0ZWRFbnRyeUJ5dGVzfSxkaXN0aW5jdEluZmxhdGVkQnl0ZXM6ZS5kaXN0aW5jdEluZmxhdGVkQnl0ZXMsb3BlcmF0aW9uSW5mbGF0ZWRCeXRlczplLm9wZXJhdGlvbkluZmxhdGVkQnl0ZXN9fWZ1bmN0aW9uIGp1KGUpe2lmKCFrdShlKSlyZXR1cm47bGV0IHQ9ZS52aW9sYXRpb24sbj17c3RhZ2U6ZS5zdGFnZSx2aW9sYXRpb246e2Zvcm1hdDp0LmZvcm1hdCxvcGVyYXRpb246dC5vcGVyYXRpb24scmVzb3VyY2U6dC5yZXNvdXJjZSxtZXRyaWM6dC5tZXRyaWMsLi4udC5wYXJ0PT09dm9pZCAwP3t9OntwYXJ0OnQucGFydH0sbGltaXQ6dC5saW1pdCxvYnNlcnZlZDp0Lm9ic2VydmVkLGNvbmZpZ3VyYWJsZTp0LmNvbmZpZ3VyYWJsZSx1c2FnZTpBdSh0LnVzYWdlKX19O3JldHVybiBrdShuKT9uOnZvaWQgMH1mdW5jdGlvbiBNdShlKXtsZXQgdD1lLnZpb2xhdGlvbjtyZXR1cm5gT09YTUwgcmVzb3VyY2UgbGltaXQgZXhjZWVkZWQke3QucGFydD9gIGZvciAke3QucGFydH1gOmBgfTogJHt0Lm1ldHJpY30gJHt0Lm9ic2VydmVkfSA+ICR7dC5saW1pdH1gfWZ1bmN0aW9uIE51KGUpe2xldCB0PWUgaW5zdGFuY2VvZiBFcnJvcj9lLm1lc3NhZ2U6U3RyaW5nKGUpO2lmKCF0LnN0YXJ0c1dpdGgoZ3UpKXJldHVybjtsZXQgbjt0cnl7bj1KU09OLnBhcnNlKHQuc2xpY2UoMjEpKX1jYXRjaHtyZXR1cm59aWYoIW58fHR5cGVvZiBuIT1gb2JqZWN0YClyZXR1cm47bGV0IHI9bjtpZighKHIuY29kZSE9PWBvb3htbC1yZXNvdXJjZS1saW1pdGB8fCFrdShyLmRldGFpbHMpKSlyZXR1cm4gbmV3IEQoTXUoci5kZXRhaWxzKSxyLmRldGFpbHMpfWZ1bmN0aW9uIFB1KGUpe2lmKGUgaW5zdGFuY2VvZiBlcylyZXR1cm57bWVzc2FnZTplLm1lc3NhZ2UsZXJyb3JOYW1lOmUubmFtZSxjb2RlOmUuY29kZSxkZWNvZGVkSW1hZ2U6e21ldHJpYzplLm1ldHJpYyxsaW1pdDplLmxpbWl0LG9ic2VydmVkOmUub2JzZXJ2ZWR9fTtsZXQgdD1mdShlKTtpZih0KXJldHVybnttZXNzYWdlOnQubWVzc2FnZSxlcnJvck5hbWU6dC5uYW1lLGNvZGU6dC5jb2RlLGluc3VmZmljaWVudENyZWRpdDp7cmVxdWlyZWRCeXRlczp0LnJlcXVpcmVkQnl0ZXMsb2ZmZXJlZEJ5dGVzOnQub2ZmZXJlZEJ5dGVzfX07bGV0IG49ZSBpbnN0YW5jZW9mIEV8fGUgaW5zdGFuY2VvZiBEP2U6TnUoZSk7aWYobiBpbnN0YW5jZW9mIEQpe2xldCBlPWp1KG4uZGV0YWlscyk7cmV0dXJuIGU/e21lc3NhZ2U6dHlwZW9mIG4ubWVzc2FnZT09YHN0cmluZ2A/bi5tZXNzYWdlOk11KGUpLGVycm9yTmFtZTpgT294bWxSZXNvdXJjZUxpbWl0RXJyb3JgLGNvZGU6YG9veG1sLXJlc291cmNlLWxpbWl0YCxyZXNvdXJjZUxpbWl0OmV9OnttZXNzYWdlOmBJbnZhbGlkIE9PWE1MIHJlc291cmNlLWxpbWl0IGVycm9yIHBheWxvYWRgLGVycm9yTmFtZTpgRXJyb3JgfX1pZihuIGluc3RhbmNlb2YgRSlyZXR1cm57bWVzc2FnZTp0eXBlb2Ygbi5tZXNzYWdlPT1gc3RyaW5nYD9uLm1lc3NhZ2U6U3RyaW5nKG4ubWVzc2FnZSksZXJyb3JOYW1lOlN1KG4ubmFtZSwxMjgpP24ubmFtZTpgT294bWxFcnJvcmAsLi4uQ3Uobi5jb2RlKT97Y29kZTpuLmNvZGV9Ont9fTtsZXQgcj1lIGluc3RhbmNlb2YgRXJyb3I/ZS5tZXNzYWdlOlN0cmluZyhlKTtpZih0eXBlb2Ygcj09YHN0cmluZ2AmJnIuc3RhcnRzV2l0aChndSkpcmV0dXJue21lc3NhZ2U6YEludmFsaWQgT09YTUwgcmVzb3VyY2UtbGltaXQgcGF5bG9hZGAsZXJyb3JOYW1lOmBFcnJvcmB9O2xldCBpPWUgaW5zdGFuY2VvZiBFcnJvcj9lOkVycm9yKHIpLGE9aTtyZXR1cm57bWVzc2FnZTp0eXBlb2YgaS5tZXNzYWdlPT1gc3RyaW5nYD9pLm1lc3NhZ2U6U3RyaW5nKGkubWVzc2FnZSksZXJyb3JOYW1lOlN1KGkubmFtZSwxMjgpP2kubmFtZTpgRXJyb3JgLC4uLnR5cGVvZiBhLmNvZGU9PWBzdHJpbmdgP3tjb2RlOmEuY29kZX06e319fWZ1bmN0aW9uIEZ1KGUpe3RyeXtyZXR1cm4gUHUoZSl9Y2F0Y2h7cmV0dXJue21lc3NhZ2U6YFdvcmtlciBvcGVyYXRpb24gZmFpbGVkIHdpdGggYW4gdW5yZWFkYWJsZSBlcnJvcmAsZXJyb3JOYW1lOmBFcnJvcmB9fX1jb25zdCBJdT1uZXcgU2V0KFtgZW5jcnlwdGVkYCxgaW52YWxpZC1wYXNzd29yZGAsYHVuc3VwcG9ydGVkLWVuY3J5cHRpb25gLGBsZWdhY3ktYmluYXJ5LWZvcm1hdGAsYG5vdC1vb3htbGBdKTtmdW5jdGlvbiBMdShlKXtpZihlLmNvZGU9PT1gb294bWwtZGVjb2RlZC1pbWFnZS1saW1pdGAmJmUuZGVjb2RlZEltYWdlJiYoZS5kZWNvZGVkSW1hZ2UubWV0cmljPT09YGltYWdlLXBpeGVsc2B8fGUuZGVjb2RlZEltYWdlLm1ldHJpYz09PWBhY3RpdmUtZGVjb2RlZC1ieXRlc2ApJiZfdShlLmRlY29kZWRJbWFnZS5saW1pdCkmJl91KGUuZGVjb2RlZEltYWdlLm9ic2VydmVkKSYmZS5kZWNvZGVkSW1hZ2Uub2JzZXJ2ZWQ+ZS5kZWNvZGVkSW1hZ2UubGltaXQpcmV0dXJuIG5ldyBlcyhlLmRlY29kZWRJbWFnZS5tZXRyaWMsZS5kZWNvZGVkSW1hZ2UubGltaXQsZS5kZWNvZGVkSW1hZ2Uub2JzZXJ2ZWQpO2lmKGUuY29kZT09PWBvb3htbC1pbnN1ZmZpY2llbnQtY3JlZGl0YCYmdXUoZS5pbnN1ZmZpY2llbnRDcmVkaXQpKXJldHVybiBuZXcgZHUoZS5pbnN1ZmZpY2llbnRDcmVkaXQpO2lmKGUuY29kZT09PWBvb3htbC1yZXNvdXJjZS1saW1pdGAmJmt1KGUucmVzb3VyY2VMaW1pdCkpcmV0dXJuIG5ldyBEKGUubWVzc2FnZSxlLnJlc291cmNlTGltaXQpO2lmKGUuY29kZSYmSXUuaGFzKGUuY29kZSkpcmV0dXJuIG5ldyBFKGUuY29kZSxlLm1lc3NhZ2UpO2xldCB0PWUuZXJyb3JOYW1lPT09YFR5cGVFcnJvcmA/VHlwZUVycm9yKGUubWVzc2FnZSk6ZS5lcnJvck5hbWU9PT1gUmFuZ2VFcnJvcmA/UmFuZ2VFcnJvcihlLm1lc3NhZ2UpOkVycm9yKGUubWVzc2FnZSk7cmV0dXJuIGUuZXJyb3JOYW1lJiYodC5uYW1lPWUuZXJyb3JOYW1lKSxlLmNvZGUhPT12b2lkIDAmJk9iamVjdC5hc3NpZ24odCx7Y29kZTplLmNvZGV9KSx0fWZ1bmN0aW9uIFJ1KGUpe3JldHVybiBlLmJ5dGVPZmZzZXQ9PT0wJiZlLmJ5dGVMZW5ndGg9PT1lLmJ1ZmZlci5ieXRlTGVuZ3RoJiZlLmJ1ZmZlciBpbnN0YW5jZW9mIEFycmF5QnVmZmVyP2UuYnVmZmVyOmUuc2xpY2UoKS5idWZmZXJ9dmFyIHp1LEJ1PXQoKCgpPT57enU9bmV3IFVSTChgLi4vbWF0aGpheC1zdGl4Mi5qc2AsaW1wb3J0Lm1ldGEudXJsKS5ocmVmfSkpLFZ1PW4oe2xvYWRNYXRoSmF4OigpPT5xdSxsb2FkTWF0aEpheEZyb21Bc3NldDooKT0+SnUsbWF0aE1MVG9Tdmc6KCk9Pll1LG1hdGhNTFRvU3ZnRnJvbUFzc2V0OigpPT5YdSxyZXNvbHZlTWF0aEpheEFzc2V0VXJsOigpPT5IdX0pO2Z1bmN0aW9uIEh1KCl7cmV0dXJuIG5ldyBVUkwoenUsaW1wb3J0Lm1ldGEudXJsKS5ocmVmfWZ1bmN0aW9uIFV1KGUpe3JldHVybiBlP25ldyBVUkwoZSxpbXBvcnQubWV0YS51cmwpLmhyZWY6SHUoKX1mdW5jdGlvbiBXdShlKXtyZXR1cm4gbmV3IFByb21pc2UoKHQsbik9PntsZXQgcj1kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBzY3JpcHRgKTtyLnNyYz1lLHIuYXN5bmM9ITAsci5vbmxvYWQ9KCk9PnQoKSxyLm9uZXJyb3I9KCk9Pm4oRXJyb3IoYEZhaWxlZCB0byBsb2FkIG1hdGggZW5naW5lIGZyb20gJHtlfWApKSxkb2N1bWVudC5oZWFkLmFwcGVuZENoaWxkKHIpfSl9YXN5bmMgZnVuY3Rpb24gR3UoZSl7YXdhaXQgaW1wb3J0KGUpfWZ1bmN0aW9uIEt1KGUpe3JldHVybiBadXx8KFp1PShhc3luYygpPT57bGV0IHQ9Z2xvYmFsVGhpcy5fX29veG1sU3RpeDI7aWYodClyZXR1cm4gdDtsZXQgbj1VdShlKTt0eXBlb2YgZG9jdW1lbnQ+YHVgP2F3YWl0IEd1KG4pOmF3YWl0IFd1KG4pO2xldCByPWdsb2JhbFRoaXMuX19vb3htbFN0aXgyO2lmKCFyKXRocm93IEVycm9yKGBNYXRoIGVuZ2luZSBmYWlsZWQgdG8gaW5pdGlhbGl6ZWApO3JldHVybiByfSkoKSxadSl9YXN5bmMgZnVuY3Rpb24gcXUoKXthd2FpdCBLdSgpfWFzeW5jIGZ1bmN0aW9uIEp1KGUpe2F3YWl0IEt1KGUpfWFzeW5jIGZ1bmN0aW9uIFl1KGUpe2xldCB0PShhd2FpdCBLdSgpKS5tYXRobWwyc3ZnKGUpO3JldHVybntzdmc6dCwuLi5JbCh0KX19YXN5bmMgZnVuY3Rpb24gWHUoZSx0KXtsZXQgbj0oYXdhaXQgS3UodCkpLm1hdGhtbDJzdmcoZSk7cmV0dXJue3N2ZzpuLC4uLklsKG4pfX12YXIgWnUsUXU9dCgoKCk9PntCdSgpLHpsKCksWnU9bnVsbH0pKTtmdW5jdGlvbiAkdShlKXtzd2l0Y2goZSl7Y2FzZWBjeWxpbmRlcmA6Y2FzZWBjb25lYDpjYXNlYGNvbmVUb01heGA6Y2FzZWBweXJhbWlkYDpjYXNlYHB5cmFtaWRUb01heGA6cmV0dXJuIGU7ZGVmYXVsdDpyZXR1cm5gYm94YH19ZnVuY3Rpb24gZWQoZSx0KXtpZih0Lmxlbmd0aDwzKXJldHVybiBudWxsO2xldCBuPWVbdFswXV07Zm9yKGxldCByPTE7cisxPHQubGVuZ3RoO3IrKylmb3IobGV0IGk9cisxO2k8dC5sZW5ndGg7aSsrKXtsZXQgYT1lW3Rbcl1dLG89ZVt0W2ldXSxzPXt4OmEueC1uLngseTphLnktbi55LGRlcHRoOmEuZGVwdGgtbi5kZXB0aH0sYz17eDpvLngtbi54LHk6by55LW4ueSxkZXB0aDpvLmRlcHRoLW4uZGVwdGh9LGw9e3g6cy55KmMuZGVwdGgtcy5kZXB0aCpjLnkseTpzLmRlcHRoKmMueC1zLngqYy5kZXB0aCxkZXB0aDpzLngqYy55LXMueSpjLnh9LHU9TWF0aC5oeXBvdChsLngsbC55LGwuZGVwdGgpO2lmKHU+MioqLTUyKXJldHVybnt4OmwueC91LHk6bC55L3UsZGVwdGg6bC5kZXB0aC91fX1yZXR1cm4gbnVsbH1mdW5jdGlvbiB0ZChlLHQpe2xldCBuPWUucmVkdWNlKCh0LG4pPT4oe3g6dC54K24ueC9lLmxlbmd0aCx5OnQueStuLnkvZS5sZW5ndGgsZGVwdGg6dC5kZXB0aCtuLmRlcHRoL2UubGVuZ3RofSkse3g6MCx5OjAsZGVwdGg6MH0pO3JldHVybiB0Lm1hcCh0PT57bGV0IHI9ZWQoZSx0LmluZGljZXMpO2lmKCFyKXJldHVybiB0O2xldCBpPXQuaW5kaWNlcy5yZWR1Y2UoKG4scik9Pih7eDpuLngrZVtyXS54L3QuaW5kaWNlcy5sZW5ndGgseTpuLnkrZVtyXS55L3QuaW5kaWNlcy5sZW5ndGgsZGVwdGg6bi5kZXB0aCtlW3JdLmRlcHRoL3QuaW5kaWNlcy5sZW5ndGh9KSx7eDowLHk6MCxkZXB0aDowfSksYT17eDppLngtbi54LHk6aS55LW4ueSxkZXB0aDppLmRlcHRoLW4uZGVwdGh9O3JldHVybiByLngqYS54K3IueSphLnkrci5kZXB0aCphLmRlcHRoPj0wP3Q6ey4uLnQsaW5kaWNlczpbLi4udC5pbmRpY2VzXS5yZXZlcnNlKCl9fSl9ZnVuY3Rpb24gbmQoZSl7bGV0e2hvcml6b250YWw6dCxjcm9zc1N0YXJ0Om4sY3Jvc3NTaXplOnIsYmFzZUNvb3JkOmksZW5kQ29vcmQ6YSxuZWFyRGVwdGg6byxmYXJEZXB0aDpzfT1lO2lmKCFbbixyLGksYSxvLHNdLmV2ZXJ5KE51bWJlci5pc0Zpbml0ZSl8fHI8PTB8fGk9PT1hfHxvPT09cylyZXR1cm4gbnVsbDtsZXQgYz0kdShlLnNoYXBlKSxsPWM9PT1gY3lsaW5kZXJgfHxjPT09YGNvbmVgfHxjPT09YGNvbmVUb01heGAsdT1jIT09YGJveGAmJmMhPT1gY3lsaW5kZXJgLGQ9Yz09PWBjb25lVG9NYXhgfHxjPT09YHB5cmFtaWRUb01heGAsZj1sP01hdGgubWF4KDgsTWF0aC5taW4oNjQsTWF0aC50cnVuYyhlLnJvdW5kU2VnbWVudHM/PzMyKSkpOjQscD1vZChlLmJhc2VTY2FsZT8/KGQ/ZS50b01heEJhc2VTY2FsZT8/MToxKSksbT1vZChlLmVuZFNjYWxlPz8odT9kP2UudG9NYXhFbmRTY2FsZT8/MDowOjEpKTtpZihwPT09MCYmbT09PTApcmV0dXJuIG51bGw7bGV0IGg9bityLzIsZz1yLzIsXz0obytzKS8yLHY9TWF0aC5hYnMocy1vKS8yLHk9W10sYj0oZSxuKT0+e2lmKG49PT0wKXtsZXQgbj15Lmxlbmd0aDtyZXR1cm4geS5wdXNoKHQ/e3g6ZSx5OmgsZGVwdGg6X306e3g6aCx5OmUsZGVwdGg6X30pLFtuXX1sZXQgcj1bXTtmb3IobGV0IGk9MDtpPGY7aSsrKXtsZXQgYT1sP2kvZipNYXRoLlBJKjI6TWF0aC5QSS80K2kvZipNYXRoLlBJKjIsbz1sPzE6TWF0aC5TUVJUMixzPWgrTWF0aC5jb3MoYSkqZypuKm8sYz1fK01hdGguc2luKGEpKnYqbipvO3IucHVzaCh5Lmxlbmd0aCkseS5wdXNoKHQ/e3g6ZSx5OnMsZGVwdGg6Y306e3g6cyx5OmUsZGVwdGg6Y30pfXJldHVybiByfSx4PWIoaSxwKSxTPWIoYSxtKSxDPWwsdz1bXTt4Lmxlbmd0aD4xJiZlLm9taXRCYXNlQ2FwIT09ITAmJncucHVzaCh7aW5kaWNlczp4LHJvbGU6YGJhc2VDYXBgLHNtb290aFN1cmZhY2U6Q30pLFMubGVuZ3RoPjEmJmUub21pdEVuZENhcCE9PSEwJiZ3LnB1c2goe2luZGljZXM6Uyxyb2xlOmBlbmRDYXBgLHNtb290aFN1cmZhY2U6Q30pO2xldCBUPVtdLEU9TWF0aC5tYXgoeC5sZW5ndGgsUy5sZW5ndGgpO2ZvcihsZXQgZT0wO2U8RTtlKyspe2xldCB0PShlKzEpJUUsbj14Lmxlbmd0aD09PTE/eFswXTp4W2VdLHI9eC5sZW5ndGg9PT0xP3hbMF06eFt0XSxpPVMubGVuZ3RoPT09MT9TWzBdOlNbZV0sYT1TLmxlbmd0aD09PTE/U1swXTpTW3RdLG89eC5sZW5ndGg9PT0xP1tuLGEsaV06Uy5sZW5ndGg9PT0xP1tuLHIsaV06W24scixhLGldO3cucHVzaCh7aW5kaWNlczpvLHJvbGU6YHNpZGVgLHNtb290aFN1cmZhY2U6QyxzZWdtZW50SW5kZXg6ZSxiYXNlUmltRWRnZTp4Lmxlbmd0aD4xP1tuLHJdOnZvaWQgMCxlbmRSaW1FZGdlOlMubGVuZ3RoPjE/W2ksYV06dm9pZCAwfSksVC5wdXNoKFtuLGldKX1yZXR1cm57c2hhcGU6Yyx2ZXJ0aWNlczp5LGZhY2VzOnRkKHksdyksc2lsaG91ZXR0ZUVkZ2VzOlR9fWZ1bmN0aW9uIHJkKGUpe2xldHt4MDp0LHgxOm4sbG93ZXIwOnIsbG93ZXIxOmksdXBwZXIwOmEsdXBwZXIxOm8sbmVhckRlcHRoOnMsZmFyRGVwdGg6YyxjYXBTdGFydDpsLGNhcEVuZDp1fT1lO2lmKCFbdCxuLHIsaSxhLG8scyxjXS5ldmVyeShOdW1iZXIuaXNGaW5pdGUpfHx0PT09bnx8cz09PWMpcmV0dXJuIG51bGw7bjx0JiYoW3Qsbl09W24sdF0sW3IsaV09W2kscl0sW2Esb109W28sYV0sW2wsdV09W3UsbF0pO2xldCBkPU1hdGgubWluKHMsYyksZj1NYXRoLm1heChzLGMpLHA9TWF0aC5taW4ocixhKSxtPU1hdGgubWluKGksbyksaD1NYXRoLm1heChyLGEpLGc9TWF0aC5tYXgoaSxvKTtpZihNYXRoLm1heChoLXAsZy1tKTwxZS05KXJldHVybiBudWxsO2xldCBfPVt7eDp0LHk6cCxkZXB0aDpkfSx7eDpuLHk6bSxkZXB0aDpkfSx7eDpuLHk6ZyxkZXB0aDpkfSx7eDp0LHk6aCxkZXB0aDpkfSx7eDp0LHk6cCxkZXB0aDpmfSx7eDpuLHk6bSxkZXB0aDpmfSx7eDpuLHk6ZyxkZXB0aDpmfSx7eDp0LHk6aCxkZXB0aDpmfV07cmV0dXJue3NoYXBlOmBhcmVhU3RyaXBgLHZlcnRpY2VzOl8sZmFjZXM6dGQoXyxbe2luZGljZXM6WzAsMywyLDFdLHJvbGU6YHNpZGVgLHNtb290aFN1cmZhY2U6ITF9LHtpbmRpY2VzOls0LDUsNiw3XSxyb2xlOmBzaWRlYCxzbW9vdGhTdXJmYWNlOiExfSx7aW5kaWNlczpbMCw0LDcsM10scm9sZTpgYmFzZUNhcGAsc21vb3RoU3VyZmFjZTohMX0se2luZGljZXM6WzEsMiw2LDVdLHJvbGU6YGVuZENhcGAsc21vb3RoU3VyZmFjZTohMX0se2luZGljZXM6WzAsMSw1LDRdLHJvbGU6YHNpZGVgLHNtb290aFN1cmZhY2U6ITF9LHtpbmRpY2VzOlszLDcsNiwyXSxyb2xlOmBzaWRlYCxzbW9vdGhTdXJmYWNlOiExfV0uZmlsdGVyKGU9PihlLnJvbGUhPT1gYmFzZUNhcGB8fGwpJiYoZS5yb2xlIT09YGVuZENhcGB8fHUpKSksc2lsaG91ZXR0ZUVkZ2VzOltdfX1mdW5jdGlvbiBpZChlKXtsZXQgdD1lLnVwcGVyMC1lLmxvd2VyMCxuPWUudXBwZXIxLWUubG93ZXIxO2lmKE51bWJlci5pc0Zpbml0ZSh0KSYmTnVtYmVyLmlzRmluaXRlKG4pJiZ0Km48MCl7bGV0IHI9dC8odC1uKSxpPWUueDArKGUueDEtZS54MCkqcixhPWUubG93ZXIwKyhlLmxvd2VyMS1lLmxvd2VyMCkqcjtyZXR1cm5bcmQoey4uLmUseDE6aSxsb3dlcjE6YSx1cHBlcjE6YSxjYXBFbmQ6ITF9KSxyZCh7Li4uZSx4MDppLGxvd2VyMDphLHVwcGVyMDphLGNhcFN0YXJ0OiExfSldLmZpbHRlcihlPT5lIT1udWxsKX1sZXQgcj1yZChlKTtyZXR1cm4gcj9bcl06W119ZnVuY3Rpb24gYWQoZSl7bGV0e2NlbnRlclg6dCxjZW50ZXJZOm4sY2VudGVyRGVwdGg6cixyYWRpdXM6aSxtb2RlbERlcHRoOmEsdGhpY2tuZXNzOm8sc3RhcnRBbmdsZTpzLGVuZEFuZ2xlOmN9PWU7aWYoIVt0LG4scixpLGEsbyxzLGNdLmV2ZXJ5KE51bWJlci5pc0Zpbml0ZSl8fCEoaT4wKXx8IShhPjApfHwhKG8+MCl8fCEoYz5zKSlyZXR1cm4gbnVsbDtsZXQgbD1NYXRoLm1pbihNYXRoLlBJKjIsYy1zKSx1PWw+PU1hdGguUEkqMi0xZS05LGQ9TWF0aC5tYXgoMixNYXRoLm1pbigxMjgsTWF0aC50cnVuYyhlLnNlZ21lbnRzPz9NYXRoLmNlaWwoMzIqbC8oTWF0aC5QSSoyKSkpKSksZj1uLW8vMixwPW4rby8yLG09W3t4OnQseTpmLGRlcHRoOnJ9LHt4OnQseTpwLGRlcHRoOnJ9XSxoPVtdLGc9W10sXz11P2Q6ZCsxO2ZvcihsZXQgZT0wO2U8XztlKyspe2xldCBuPXMrbCplL2Qsbz10K01hdGguY29zKG4pKmksYz1yK01hdGguc2luKG4pKmkvYTtoLnB1c2gobS5sZW5ndGgpLG0ucHVzaCh7eDpvLHk6ZixkZXB0aDpjfSksZy5wdXNoKG0ubGVuZ3RoKSxtLnB1c2goe3g6byx5OnAsZGVwdGg6Y30pfWxldCB2PXU/W3tpbmRpY2VzOlsuLi5oXSxyb2xlOmBiYXNlQ2FwYCxzbW9vdGhTdXJmYWNlOiEwfSx7aW5kaWNlczpbLi4uZ10scm9sZTpgZW5kQ2FwYCxzbW9vdGhTdXJmYWNlOiEwfV06W3tpbmRpY2VzOlswLC4uLmhdLHJvbGU6YGJhc2VDYXBgLHNtb290aFN1cmZhY2U6ITB9LHtpbmRpY2VzOlsxLC4uLmddLHJvbGU6YGVuZENhcGAsc21vb3RoU3VyZmFjZTohMH0se2luZGljZXM6WzAsMSxnWzBdLGhbMF1dLHJvbGU6YGJhc2VDYXBgLHNtb290aFN1cmZhY2U6ITF9LHtpbmRpY2VzOlswLGguYXQoLTEpLGcuYXQoLTEpLDFdLHJvbGU6YGVuZENhcGAsc21vb3RoU3VyZmFjZTohMX1dO2ZvcihsZXQgZT0wO2U8ZDtlKyspe2xldCB0PXU/KGUrMSklZDplKzE7di5wdXNoKHtpbmRpY2VzOltoW2VdLGdbZV0sZ1t0XSxoW3RdXSxyb2xlOmBzaWRlYCxzbW9vdGhTdXJmYWNlOiEwLHNlZ21lbnRJbmRleDplLGJhc2VSaW1FZGdlOltoW2VdLGhbdF1dLGVuZFJpbUVkZ2U6W2dbZV0sZ1t0XV19KX1yZXR1cm57c2hhcGU6YHBpZVNlY3RvcmAsdmVydGljZXM6bSxmYWNlczp0ZChtLHYpLHNpbGhvdWV0dGVFZGdlczpoLnNsaWNlKDAsdT92b2lkIDA6LTEpLm1hcCgoZSx0KT0+W2UsZ1t0XV0pfX12YXIgb2Qsc2Q9dCgoKCk9PntvZD1lPT5NYXRoLm1heCgwLE1hdGgubWluKDEsZSkpfSkpO2Z1bmN0aW9uIGNkKGUsdCl7aWYoIVtlLHRdLmV2ZXJ5KE51bWJlci5pc0Zpbml0ZSkpcmV0dXJuIG51bGw7bGV0IG49dC1lO2lmKG49PT0wKXJldHVybiBlPj0wJiZlPD0xP3tzdGFydFQ6MCxlbmRUOjF9Om51bGw7bGV0IHI9LWUvbixpPSgxLWUpL24sYT1NYXRoLm1heCgwLE1hdGgubWluKHIsaSkpLG89TWF0aC5taW4oMSxNYXRoLm1heChyLGkpKTtyZXR1cm4gYTw9bz97c3RhcnRUOmEsZW5kVDpvfTpudWxsfWZ1bmN0aW9uIGxkKGUsdCxuLHIpe2lmKCFbZSx0LG4scl0uZXZlcnkoTnVtYmVyLmlzRmluaXRlKSlyZXR1cm5bXTtsZXQgaT1bMCwxXSxhPShlLHQpPT57bGV0IG49dC1lO2lmKG4hPT0wKWZvcihsZXQgdCBvZlswLDFdKXtsZXQgcj0odC1lKS9uO3I+MCYmcjwxJiZOdW1iZXIuaXNGaW5pdGUocikmJmkucHVzaChyKX19O2EoZSx0KSxhKG4sciksaS5zb3J0KChlLHQpPT5lLXQpO2xldCBvPWkuZmlsdGVyKChlLHQpPT50PT09MHx8TWF0aC5hYnMoZS1pW3QtMV0pPjFlLTEyKSxzPShlLHQsbik9PmUrKHQtZSkqbixjPWU9Pk1hdGgubWF4KDAsTWF0aC5taW4oMSxlKSksbD1bXTtmb3IobGV0IGk9MDtpKzE8by5sZW5ndGg7aSsrKXtsZXQgYT1vW2ldLHU9b1tpKzFdLGQ9KGErdSkvMixmPWMocyhlLHQsZCkpLHA9YyhzKG4scixkKSk7TWF0aC5hYnMocC1mKTw9MWUtMTJ8fGwucHVzaCh7c3RhcnRUOmEsZW5kVDp1LGxvd2VyU3RhcnQ6YyhzKGUsdCxhKSksbG93ZXJFbmQ6YyhzKGUsdCx1KSksdXBwZXJTdGFydDpjKHMobixyLGEpKSx1cHBlckVuZDpjKHMobixyLHUpKX0pfXJldHVybiBsfWZ1bmN0aW9uIHVkKGUsdCxuLHIpe2xldCBpPVtdLGE9ZT0+e2kubGVuZ3RoPj0xMnx8aS5zb21lKHQ9Pk1hdGguaHlwb3QodC54LWUueCx0LnktZS55KTwxZS03KXx8aS5wdXNoKGUpfSxvPXt4OihNYXRoLm1heChuLm1pblgsci5taW5YKStNYXRoLm1pbihuLm1heFgsci5tYXhYKSkvMix5OihNYXRoLm1heChuLm1pblksci5taW5ZKStNYXRoLm1pbihuLm1heFksci5tYXhZKSkvMn07bWQoZSxvKSYmbWQodCxvKSYmYShvKTtmb3IobGV0IG4gb2YgZSltZCh0LG4pJiZhKG4pO2ZvcihsZXQgbiBvZiB0KW1kKGUsbikmJmEobik7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aCYmaS5sZW5ndGg8MTI7bisrKWZvcihsZXQgcj0wO3I8dC5sZW5ndGgmJmkubGVuZ3RoPDEyO3IrKyl7bGV0IGk9aGQoZVtuXSxlWyhuKzEpJWUubGVuZ3RoXSx0W3JdLHRbKHIrMSkldC5sZW5ndGhdKTtpJiZhKGkpfXJldHVybiBpfWZ1bmN0aW9uIGRkKGUsdCl7bGV0IG49ZS5jYW1lcmFEZXB0aHM7aWYoIW58fG4ubGVuZ3RoIT09ZS5wb2ludHMubGVuZ3RofHxlLnBvaW50cy5sZW5ndGg8MylyZXR1cm4gZS5jYW1lcmFEZXB0aDtsZXQgcj1lLmNhbWVyYVdlaWdodHM/Lmxlbmd0aD09PWUucG9pbnRzLmxlbmd0aD9lLmNhbWVyYVdlaWdodHM6ZS5wb2ludHMubWFwKCgpPT4xKSxpPWUucG9pbnRzWzBdO2ZvcihsZXQgYT0xO2ErMTxlLnBvaW50cy5sZW5ndGg7YSsrKXtsZXQgbz1lLnBvaW50c1thXSxzPWUucG9pbnRzW2ErMV0sYz0oby55LXMueSkqKGkueC1zLngpKyhzLngtby54KSooaS55LXMueSk7aWYoTWF0aC5hYnMoYyk8MWUtMTIpY29udGludWU7bGV0IGw9KChvLnktcy55KSoodC54LXMueCkrKHMueC1vLngpKih0Lnktcy55KSkvYyx1PSgocy55LWkueSkqKHQueC1zLngpKyhpLngtcy54KSoodC55LXMueSkpL2MsZD0xLWwtdTtpZihNYXRoLm1pbihsLHUsZCk8LTFlLTcpY29udGludWU7bGV0IGY9bCpyWzBdK3UqclthXStkKnJbYSsxXTtpZihNYXRoLmFicyhmKT4yKiotNTIpcmV0dXJuKGwqblswXSpyWzBdK3UqblthXSpyW2FdK2QqblthKzFdKnJbYSsxXSkvZn1yZXR1cm4gZS5jYW1lcmFEZXB0aH1mdW5jdGlvbiBmZChlKXtpZihlLmxlbmd0aDwyKXJldHVyblsuLi5lXTtsZXQgdD1bLi4uZS5rZXlzKCldLnNvcnQoKHQsbik9PmVbdF0uY2FtZXJhRGVwdGgtZVtuXS5jYW1lcmFEZXB0aHx8dC1uKSxuPWUubWFwKGU9PnBkKGUucG9pbnRzKSkscj1bLi4uZS5rZXlzKCldLnNvcnQoKGUsdCk9Pm5bZV0ubWluWC1uW3RdLm1pblh8fGUtdCksaT1lLm1hcCgoKT0+bmV3IFNldCksYT1lLm1hcCgoKT0+MCksbz1bXSxzPTA7Zm9yKGxldCBjIG9mIHIpe2ZvcihsZXQgZT1vLmxlbmd0aC0xO2U+PTA7ZS0tKW5bb1tlXV0ubWF4WDxuW2NdLm1pblgtMWUtOSYmby5zcGxpY2UoZSwxKTtmb3IobGV0IHIgb2Ygbyl7aWYoKytzPjJlNSlyZXR1cm4gdC5tYXAodD0+ZVt0XSk7aWYobltyXS5tYXhZPG5bY10ubWluWS0xZS05fHxuW2NdLm1heFk8bltyXS5taW5ZLTFlLTkpY29udGludWU7bGV0IG89dWQoZVtyXS5wb2ludHMsZVtjXS5wb2ludHMsbltyXSxuW2NdKSxsPTA7Zm9yKGxldCB0IG9mIG8pe2xldCBuPWRkKGVbcl0sdCktZGQoZVtjXSx0KSxpPTFlLTgqTWF0aC5tYXgoMSxNYXRoLmFicyhlW3JdLmNhbWVyYURlcHRoKSxNYXRoLmFicyhlW2NdLmNhbWVyYURlcHRoKSk7aWYoTWF0aC5hYnMobik8PWkpY29udGludWU7bGV0IGE9bjwwPy0xOjE7aWYobCE9PTAmJmwhPT1hKXtsPTA7YnJlYWt9bD1hfWlmKGw9PT0wKWNvbnRpbnVlO2xldCB1PWw8MD9yOmMsZD1sPDA/YzpyO2lbdV0uaGFzKGQpfHwoaVt1XS5hZGQoZCksYVtkXSsrKX1vLnB1c2goYyl9bGV0IGM9bmV3IFNldChlLmtleXMoKSksbD1bXTtmb3IoO2Muc2l6ZTspe2xldCBuPXQuZmluZChlPT5jLmhhcyhlKSYmYVtlXT09PTApO2lmKG4/Pz10LmZpbmQoZT0+Yy5oYXMoZSkpLG49PW51bGwpYnJlYWs7Yy5kZWxldGUobiksbC5wdXNoKGVbbl0pO2ZvcihsZXQgZSBvZiBpW25dKWFbZV0tLX1yZXR1cm4gbH12YXIgcGQsbWQsaGQsZ2Q9dCgoKCk9PntwZD1lPT4oe21pblg6TWF0aC5taW4oLi4uZS5tYXAoZT0+ZS54KSksbWF4WDpNYXRoLm1heCguLi5lLm1hcChlPT5lLngpKSxtaW5ZOk1hdGgubWluKC4uLmUubWFwKGU9PmUueSkpLG1heFk6TWF0aC5tYXgoLi4uZS5tYXAoZT0+ZS55KSl9KSxtZD0oZSx0KT0+e2xldCBuPSExO2ZvcihsZXQgcj0wLGk9ZS5sZW5ndGgtMTtyPGUubGVuZ3RoO2k9cisrKXtsZXQgYT1lW3JdLG89ZVtpXSxzPShhLngtdC54KSooby55LXQueSktKGEueS10LnkpKihvLngtdC54KSxjPU1hdGgubWF4KDEsTWF0aC5hYnMoYS54KSxNYXRoLmFicyhhLnkpLE1hdGguYWJzKG8ueCksTWF0aC5hYnMoby55KSk7aWYoTWF0aC5hYnMocyk8PWMqMWUtOSYmdC54Pj1NYXRoLm1pbihhLngsby54KS0xZS05JiZ0Lng8PU1hdGgubWF4KGEueCxvLngpKzFlLTkmJnQueT49TWF0aC5taW4oYS55LG8ueSktMWUtOSYmdC55PD1NYXRoLm1heChhLnksby55KSsxZS05KXJldHVybiEwO2EueT50LnkhPW8ueT50LnkmJnQueDwoby54LWEueCkqKHQueS1hLnkpLyhvLnktYS55KSthLngmJihuPSFuKX1yZXR1cm4gbn0saGQ9KGUsdCxuLHIpPT57bGV0IGk9e3g6dC54LWUueCx5OnQueS1lLnl9LGE9e3g6ci54LW4ueCx5OnIueS1uLnl9LG89aS54KmEueS1pLnkqYS54O2lmKE1hdGguYWJzKG8pPDFlLTEyKXJldHVybiBudWxsO2xldCBzPXt4Om4ueC1lLngseTpuLnktZS55fSxjPShzLngqYS55LXMueSphLngpL28sbD0ocy54KmkueS1zLnkqaS54KS9vO3JldHVybiBjPC0xZS05fHxjPjEuMDAwMDAwMDAxfHxsPC0xZS05fHxsPjEuMDAwMDAwMDAxP251bGw6e3g6ZS54K2kueCpjLHk6ZS55K2kueSpjfX19KSk7ZnVuY3Rpb24gX2QoZSx0LG49MCl7bGV0IHI9dC5maWx0ZXIoZT0+TnVtYmVyLmlzRmluaXRlKGUpJiZlPmJkKTtpZihyLmxlbmd0aD09PTApcmV0dXJuIGUubGVuZ3RoPj0yP1tbLi4uZV1dOltdO3IubGVuZ3RoJTI9PTEmJnIucHVzaCguLi5yKTtsZXQgaT1bXSxhPTAsbz1yWzBdLHM9ITAsYz1yLnJlZHVjZSgoZSx0KT0+ZSt0LDApLGw9Yz5iZCYmTnVtYmVyLmlzRmluaXRlKG4pPyhuJWMrYyklYzowO2Zvcig7bD5iZDspe2xldCBlPU1hdGgubWluKGwsbyk7bC09ZSxvLT1lLG88PWJkJiYoYT0oYSsxKSVyLmxlbmd0aCxvPXJbYV0scz1hJTI9PTApfWxldCB1PW51bGw7Zm9yKGxldCB0PTA7dCsxPGUubGVuZ3RoO3QrKyl7bGV0IG49ZVt0XSxjPWVbdCsxXSxsPU1hdGguaHlwb3QoYy54LW4ueCxjLnktbi55KTtpZighKGw+YmQpKWNvbnRpbnVlO2xldCBkPTA7Zm9yKDtkPGwtYmQ7KXtsZXQgZT1NYXRoLm1pbihvLGwtZCksdD1TZChuLGMsZC9sKSxmPVNkKG4sYywoZCtlKS9sKTtpZihzJiYodT8/PVtdLCh1Lmxlbmd0aD09PTB8fCFDZCh1LmF0KC0xKSx0KSkmJnUucHVzaCh0KSx1LnB1c2goZikpLGQrPWUsby09ZSxvPD1iZCl7aWYocyYmdSYmdS5sZW5ndGg+PTIpe2lmKGkubGVuZ3RoPj0xZTQpcmV0dXJuIG51bGw7aS5wdXNoKHUpfXU9bnVsbCxhPShhKzEpJXIubGVuZ3RoLG89clthXSxzPWElMj09MH19fWlmKHMmJnUmJnUubGVuZ3RoPj0yKXtpZihpLmxlbmd0aD49MWU0KXJldHVybiBudWxsO2kucHVzaCh1KX1pZihpLmxlbmd0aD4xJiZDZChlWzBdLGUuYXQoLTEpKSYmQ2QoaVswXVswXSxlWzBdKSYmQ2QoaS5hdCgtMSkuYXQoLTEpLGUuYXQoLTEpKSl7bGV0IGU9aS5zaGlmdCgpLHQ9aS5wb3AoKTtpLnVuc2hpZnQoWy4uLnQsLi4uZS5zbGljZSgxKV0pfXJldHVybiBpfWZ1bmN0aW9uIHZkKGUsdCxuKXtsZXQgcj1OdW1iZXIuaXNGaW5pdGUobi53aWR0aCk/TWF0aC5tYXgoMCxuLndpZHRoKTowO2lmKCEocj5iZCl8fHQubGVuZ3RoPDMpcmV0dXJuIG51bGw7bGV0IGk9ci8yO2lmKChuLmxpbmVKb2luPz9gbWl0ZXJgKT09PWByb3VuZGApcmV0dXJuIFRkKGUsaSxgam9pbmApO2xldCBhPVtdO2ZvcihsZXQgbiBvZiB0KXtsZXQgdD1uLngtZS54LHI9bi55LWUueSxvPU1hdGguaHlwb3QodCxyKTtpZighKG8+YmQpKWNvbnRpbnVlO2xldCBzPS1yL28qaSxjPXQvbyppO2EucHVzaCh7Li4uZSx4OmUueCtzLHk6ZS55K2N9LHsuLi5lLHg6ZS54LXMseTplLnktY30pfWlmKGEubGVuZ3RoPDMpcmV0dXJuIG51bGw7YS5zb3J0KChlLHQpPT5lLngtdC54fHxlLnktdC55KTtsZXQgbz0oZSx0LG4pPT4odC54LWUueCkqKG4ueS1lLnkpLSh0LnktZS55KSoobi54LWUueCkscz1bXTtmb3IobGV0IGUgb2YgYSl7Zm9yKDtzLmxlbmd0aD49MiYmbyhzLmF0KC0yKSxzLmF0KC0xKSxlKTw9YmQ7KXMucG9wKCk7cy5wdXNoKGUpfWxldCBjPVtdO2ZvcihsZXQgZSBvZlsuLi5hXS5yZXZlcnNlKCkpe2Zvcig7Yy5sZW5ndGg+PTImJm8oYy5hdCgtMiksYy5hdCgtMSksZSk8PWJkOyljLnBvcCgpO2MucHVzaChlKX1sZXQgbD1bLi4ucy5zbGljZSgwLC0xKSwuLi5jLnNsaWNlKDAsLTEpXTtyZXR1cm4gbC5sZW5ndGg+PTM/d2QoYGpvaW5gLGwpOm51bGx9ZnVuY3Rpb24geWQoZSx0KXtsZXQgbj1OdW1iZXIuaXNGaW5pdGUodC53aWR0aCk/TWF0aC5tYXgoMCx0LndpZHRoKTowO2lmKCEobj5iZCl8fGUubGVuZ3RoPDIpcmV0dXJuW107bGV0IHI9bi8yLGk9dC5saW5lQ2FwPz9gYnV0dGAsYT10LmxpbmVKb2luPz9gbWl0ZXJgLG89TWF0aC5tYXgoMSx0Lm1pdGVyTGltaXQ/PzEwKSxzPVtdLGM9X2QoZSx0LmRhc2g/P1tdLHQuZGFzaE9mZnNldCk7aWYoYz09bnVsbClyZXR1cm4gbnVsbDtsZXQgbD1lPT5zLmxlbmd0aD49MWU0PyExOihzLnB1c2goZSksITApO2ZvcihsZXQgbj0wO248Yy5sZW5ndGg7bisrKXtsZXQgcz1jW25dLHU9cy5sZW5ndGg+MiYmQ2Qoc1swXSxzLmF0KC0xKSksZD1uPT09MCYmQ2Qoc1swXSxlWzBdKT90LnN0YXJ0Q2FwPz9pOmksZj1uKzE9PT1jLmxlbmd0aCYmQ2Qocy5hdCgtMSksZS5hdCgtMSkpP3QuZW5kQ2FwPz9pOmkscD1bXTtmb3IobGV0IGU9MDtlKzE8cy5sZW5ndGg7ZSsrKXtsZXQgdD1zW2VdLG49c1tlKzFdLHI9TWF0aC5oeXBvdChuLngtdC54LG4ueS10LnkpO3AucHVzaChyPmJkP3t4OihuLngtdC54KS9yLHk6KG4ueS10LnkpL3J9Om51bGwpfWZvcihsZXQgZT0wO2UrMTxzLmxlbmd0aDtlKyspe2xldCBuPXBbZV07aWYoIW4pY29udGludWU7bGV0IGk9e3g6LW4ueSpyLHk6bi54KnJ9LGE9ZT09PTAsbz1lKzI9PT1zLmxlbmd0aCxjPU1hdGgubWluKC41LHIvMiksbT11fHwhYXx8dC5vdmVybGFwU3RhcnQ9PT0hMCxoPXV8fCFvfHx0Lm92ZXJsYXBFbmQ9PT0hMCxnPSF1JiZhJiZkPT09YHNxdWFyZWA/cjptP2M6MCxfPSF1JiZvJiZmPT09YHNxdWFyZWA/cjpoP2M6MCx2PXsuLi5zW2VdLHg6c1tlXS54LW4ueCpnLHk6c1tlXS55LW4ueSpnfSx5PXsuLi5zW2UrMV0seDpzW2UrMV0ueCtuLngqXyx5OnNbZSsxXS55K24ueSpffTtpZighbCh3ZChgc2VnbWVudGAsW3suLi52LHg6di54K2kueCx5OnYueStpLnl9LHsuLi55LHg6eS54K2kueCx5OnkueStpLnl9LHsuLi55LHg6eS54LWkueCx5OnkueS1pLnl9LHsuLi52LHg6di54LWkueCx5OnYueS1pLnl9XSkpKXJldHVybiBudWxsfWlmKCF1JiZkPT09YHJvdW5kYCYmIWwoVGQoc1swXSxyLGBjYXBgKSl8fCF1JiZmPT09YHJvdW5kYCYmIWwoVGQocy5hdCgtMSkscixgY2FwYCkpKXJldHVybiBudWxsO2xldCBtPShlLHQsbik9PntpZighdHx8IW4pcmV0dXJuITA7bGV0IGk9dC54Km4ueS10Lnkqbi54O2lmKE1hdGguYWJzKGkpPD1iZClyZXR1cm4hMDtpZihhPT09YHJvdW5kYClyZXR1cm4gbChUZChlLHIsYGpvaW5gKSk7bGV0IHM9aT4wPy0xOjEsYz17Li4uZSx4OmUueCstdC55KnIqcyx5OmUueSt0LngqcipzfSx1PXsuLi5lLHg6ZS54Ky1uLnkqcipzLHk6ZS55K24ueCpyKnN9O2lmKGE9PT1gbWl0ZXJgKXtsZXQgaT1FZChjLHQsdSxuKTtpZihpJiZNYXRoLmh5cG90KGkueC1lLngsaS55LWUueSk8PXIqbylyZXR1cm4hIWwod2QoYGpvaW5gLFtjLHsuLi5lLC4uLml9LHVdKSl9cmV0dXJuIGwod2QoYGpvaW5gLFtjLGUsdV0pKX07Zm9yKGxldCBlPTE7ZSsxPHMubGVuZ3RoO2UrKylpZighbShzW2VdLHBbZS0xXSxwW2VdKSlyZXR1cm4gbnVsbDtpZih1JiYhbShzWzBdLHAuYXQoLTEpPz9udWxsLHBbMF0/P251bGwpKXJldHVybiBudWxsfXJldHVybiBzfXZhciBiZCx4ZCxTZCxDZCx3ZCxUZCxFZCxEZD10KCgoKT0+e2JkPTFlLTkseGQ9MWU0LFNkPShlLHQsbik9Pih7eDplLngrKHQueC1lLngpKm4seTplLnkrKHQueS1lLnkpKm4sY2FtZXJhRGVwdGg6ZS5jYW1lcmFEZXB0aCsodC5jYW1lcmFEZXB0aC1lLmNhbWVyYURlcHRoKSpuLGNhbWVyYVdlaWdodDooZS5jYW1lcmFXZWlnaHQ/PzEpKygodC5jYW1lcmFXZWlnaHQ/PzEpLShlLmNhbWVyYVdlaWdodD8/MSkpKm59KSxDZD0oZSx0KT0+TWF0aC5oeXBvdChlLngtdC54LGUueS10LnkpPD1iZCx3ZD0oZSx0KT0+KHtraW5kOmUscG9pbnRzOnQubWFwKCh7eDplLHk6dH0pPT4oe3g6ZSx5OnR9KSksY2FtZXJhRGVwdGhzOnQubWFwKGU9PmUuY2FtZXJhRGVwdGgpLGNhbWVyYVdlaWdodHM6dC5tYXAoZT0+ZS5jYW1lcmFXZWlnaHQ/PzEpLGNhbWVyYURlcHRoOnQucmVkdWNlKChlLHQpPT5lK3QuY2FtZXJhRGVwdGgsMCkvdC5sZW5ndGh9KSxUZD0oZSx0LG4pPT57bGV0IHI9W107Zm9yKGxldCBuPTA7bjwxMjtuKyspe2xldCBpPU1hdGguUEkqMipuLzEyO3IucHVzaCh7Li4uZSx4OmUueCtNYXRoLmNvcyhpKSp0LHk6ZS55K01hdGguc2luKGkpKnR9KX1yZXR1cm4gd2QobixyKX0sRWQ9KGUsdCxuLHIpPT57bGV0IGk9dC54KnIueS10Lnkqci54O2lmKE1hdGguYWJzKGkpPD1iZClyZXR1cm4gbnVsbDtsZXQgYT17eDpuLngtZS54LHk6bi55LWUueX0sbz0oYS54KnIueS1hLnkqci54KS9pO3JldHVybnt4OmUueCt0Lngqbyx5OmUueSt0Lnkqb319fSkpO2Z1bmN0aW9uIE9kKGUpe2xldCB0PVsuLi5lXS5yZXZlcnNlKCk7cmV0dXJuIFBkKGUsdCk8PTA/ZTp0fWZ1bmN0aW9uIGtkKGUpe2xldCB0PU1kKGVbMF0sZS5hdCgtMSkpP2Uuc2xpY2UoMCwtMSk6Wy4uLmVdO2lmKHQubGVuZ3RoPT09MClyZXR1cm5bXTtsZXQgbj0wO2ZvcihsZXQgZT0xO2U8dC5sZW5ndGg7ZSsrKU5kKHRbZV0sdFtuXSk8MCYmKG49ZSk7bGV0IHI9dC5tYXAoKGUscik9PnRbKG4rcikldC5sZW5ndGhdKSxpPXQubWFwKChlLHIpPT50WyhuLXIrdC5sZW5ndGgpJXQubGVuZ3RoXSksYT1QZChyLGkpPD0wP3I6aTtyZXR1cm5bLi4uYSxhWzBdXX1mdW5jdGlvbiBBZChlKXtsZXQgdD1bXSxuPWU9PntsZXQgbj10LmZpbmQodD0+TWQodC5wb2ludCxlKSk7aWYobilyZXR1cm4gTmQoZSxuLnBvaW50KTwwJiYobi5wb2ludD1lKSxuO2xldCByPXtwb2ludDplLGVkZ2VzOltdLG9yZGVyOi0xfTtyZXR1cm4gdC5wdXNoKHIpLHJ9LHI9W107Zm9yKGxldFt0LGldb2YgZSl7aWYoTWQodCxpKSljb250aW51ZTtsZXQgZT1uKHQpLGE9bihpKTtlIT09YSYmci5wdXNoKFtlLGFdKX10LnNvcnQoKGUsdCk9Pk5kKGUucG9pbnQsdC5wb2ludCkpLHQuZm9yRWFjaCgoZSx0KT0+e2Uub3JkZXI9dH0pO2xldCBpPVtdLGE9bmV3IFNldDtmb3IobGV0W2UsdF1vZiByKXtsZXQgbj1lLm9yZGVyPHQub3JkZXI/ZTp0LHI9ZS5vcmRlcjx0Lm9yZGVyP3Q6ZSxvPWAke24ub3JkZXJ9OiR7ci5vcmRlcn1gO2EuaGFzKG8pfHwoYS5hZGQobyksaS5wdXNoKHtmaXJzdDpuLHNlY29uZDpyLGtleTpvfSkpfWkuc29ydCgoZSx0KT0+ZS5rZXkubG9jYWxlQ29tcGFyZSh0LmtleSkpLGkuZm9yRWFjaCgoZSx0KT0+e2UuZmlyc3QuZWRnZXMucHVzaCh0KSxlLnNlY29uZC5lZGdlcy5wdXNoKHQpfSk7Zm9yKGxldCBlIG9mIHQpZS5lZGdlcy5zb3J0KChlLHQpPT5lLXQpO2xldCBvPW5ldyBTZXQscz0oZSx0KT0+e2xldCBuPVtlLnBvaW50XSxyPWUsYT10O2Zvcig7IW8uaGFzKGEpOyl7by5hZGQoYSk7bGV0IGU9aVthXSx0PWUuZmlyc3Q9PT1yP2Uuc2Vjb25kOmUuZmlyc3Q7aWYobi5wdXNoKHQucG9pbnQpLHQuZWRnZXMubGVuZ3RoIT09MilicmVhaztsZXQgcz10LmVkZ2VzLmZpbmQoZT0+IW8uaGFzKGUpKTtpZihzPT09dm9pZCAwKWJyZWFrO3I9dCxhPXN9cmV0dXJuIG59LGM9W107Zm9yKGxldCBlIG9mIHQpaWYoZS5lZGdlcy5sZW5ndGghPT0yKWZvcihsZXQgdCBvZiBlLmVkZ2VzKW8uaGFzKHQpfHxjLnB1c2goT2QocyhlLHQpKSk7Zm9yKGxldCBlPTA7ZTxpLmxlbmd0aDtlKyspe2lmKG8uaGFzKGUpKWNvbnRpbnVlO2xldCB0PWlbZV0sbj10LmZpcnN0Lm9yZGVyPD10LnNlY29uZC5vcmRlcj90LmZpcnN0OnQuc2Vjb25kO2MucHVzaChrZChzKG4sZSkpKX1sZXQgbD10LmZpbHRlcihlPT5lLmVkZ2VzLmxlbmd0aD4yKS5tYXAoZT0+KHtwb2ludDplLnBvaW50LG5laWdoYm91cnM6ZS5lZGdlcy5tYXAodD0+e2xldCBuPWlbdF07cmV0dXJuIG4uZmlyc3Q9PT1lP24uc2Vjb25kLnBvaW50Om4uZmlyc3QucG9pbnR9KS5zb3J0KE5kKX0pKTtyZXR1cm57cGF0aHM6Yy5zb3J0KFBkKSxqdW5jdGlvbnM6bH19dmFyIGpkLE1kLE5kLFBkLEZkPXQoKCgpPT57amQ9MWUtOSxNZD0oZSx0KT0+TWF0aC5oeXBvdChlLngtdC54LGUueS10LnksZS5kZXB0aC10LmRlcHRoKTw9amQsTmQ9KGUsdCk9PmUueC10Lnh8fGUueS10Lnl8fGUuZGVwdGgtdC5kZXB0aCxQZD0oZSx0KT0+e2xldCBuPU1hdGgubWluKGUubGVuZ3RoLHQubGVuZ3RoKTtmb3IobGV0IHI9MDtyPG47cisrKXtsZXQgbj1OZChlW3JdLHRbcl0pO2lmKG4hPT0wKXJldHVybiBufXJldHVybiBlLmxlbmd0aC10Lmxlbmd0aH19KSksSWQ9bih7VEhSRUVfRF9JTVBMRU1FTlRBVElPTl9NQVJLRVI6KCk9PndmLFRIUkVFX0RfUk9VTkRfTUVTSF9GQUNFX1dFSUdIVDooKT0+RGYsYnVja2V0VGhyZWVEU3RhY2tJdGVtczooKT0+UmQscmVuZGVyU2ltcGxlVGhyZWVEQ2hhcnQ6KCk9PkNmLHRocmVlRE1lc2hPdXRsaW5lV2lkdGhQeDooKT0+TGQsdGhyZWVEUGllU2xpY2VBbmdsZXM6KCk9PmNmLHRocmVlRFdhbGxHZW9tZXRyeTooKT0+bGZ9KTtmdW5jdGlvbiBMZChlLHQpe2xldCBuPU51bWJlci5pc0Zpbml0ZSh0KSYmdD4wP3QvdHQ6MSxyPU51bWJlci5pc0Zpbml0ZShlKSYmZT49MD9lL2V0OjA7cmV0dXJuIE1hdGgubWF4KC4yNSxyKSpufWZ1bmN0aW9uIFJkKGUsdCl7bGV0IG49TnVtYmVyLmlzU2FmZUludGVnZXIodCkmJnQ+MD90OjAscj1BcnJheS5mcm9tKHtsZW5ndGg6bn0sKCk9PltdKTtmb3IobGV0IHQgb2YgZSl7bGV0IGU9dC5jYXRlZ29yeUluZGV4O051bWJlci5pc1NhZmVJbnRlZ2VyKGUpJiZlPj0wJiZlPG4mJnJbZV0ucHVzaCh0KX1yZXR1cm4gcn1mdW5jdGlvbiB6ZChlLHQpe2lmKHQ/LmxpbmVIaWRkZW4hPW51bGx8fHQ/LmxpbmVDb2xvciE9bnVsbHx8dD8ubGluZVdpZHRoRW11IT1udWxsfHx0Py5saW5lRGFzaCE9bnVsbClyZXR1cm4gdC5saW5lSGlkZGVuIT09ITA7bGV0IG49ZS5jaGFydGV4U3R5bGU7cmV0dXJuKGUubGluZUhpZGRlbiE9bnVsbHx8ZS5saW5lQ29sb3IhPW51bGx8fGUubGluZVdpZHRoRW11IT1udWxsfHxuPy5saW5lSGlkZGVuIT1udWxsfHxuPy5saW5lTm9TdHlsZSE9bnVsbHx8bj8ubGluZUNvbG9ycyE9bnVsbHx8bj8ubGluZVdpZHRoRW11IT1udWxsfHxuPy5saW5lRGFzaCE9bnVsbHx8bj8ubGluZUNhcCE9bnVsbHx8bj8ubGluZUpvaW4hPW51bGwpJiZlLmxpbmVIaWRkZW4hPT0hMCYmbj8ubGluZUhpZGRlbiE9PSEwfWZ1bmN0aW9uIEJkKGUsdCl7bGV0IG49ZS5jYW1lcmFOb3JtYWwodCk7aWYoIW4pcmV0dXJuIDE7bGV0IHI9e3g6LS4yLHk6LjI1LHo6MX0saT1NYXRoLmh5cG90KHIueCxyLnksci56KSxhPU1hdGgubWF4KDAsKG4ueCpyLngrbi55KnIueStuLnoqci56KS9pKTtyZXR1cm4gTWF0aC5tYXgoLjc4LE1hdGgubWluKDEsLjc4Ky4yNCphKSl9ZnVuY3Rpb24gVmQoZSx0KXtpZih0Lmxlbmd0aCl7ZS5iZWdpblBhdGgoKSxlLm1vdmVUbyh0WzBdLngsdFswXS55KTtmb3IobGV0IG49MTtuPHQubGVuZ3RoO24rKyllLmxpbmVUbyh0W25dLngsdFtuXS55KTtlLmNsb3NlUGF0aCgpfX1mdW5jdGlvbiBIZChlLHQsbixyKXtqZihuKXx8KFZkKGUsdCksZS5maWxsU3R5bGU9bixlLmZpbGwoKSxyPjAmJihWZChlLHQpLGUuZmlsbFN0eWxlPWByZ2JhKDAsMCwwLCR7cn0pYCxlLmZpbGwoKSkpfWZ1bmN0aW9uIFVkKGUsdCxuLHIsaSxhLG8scyxjLGwsdSxkKXtyZXR1cm4gaWQoe3gwOnQseDE6bixsb3dlcjA6cixsb3dlcjE6aSx1cHBlcjA6YSx1cHBlcjE6byxuZWFyRGVwdGg6cyxmYXJEZXB0aDpjLGNhcFN0YXJ0OnUsY2FwRW5kOmR9KS5mbGF0TWFwKHQ9PkdkKGUsdCxsKS5tYXAoZT0+KHsuLi5lLG91dGxpbmU6ITEsb3V0bGluZVNlZ21lbnRzOnZvaWQgMH0pKSl9ZnVuY3Rpb24gV2QoZSx0LG4scixpLGEsbyxzLGMsbCx1LGQsZixwLG09ITEsaD0hMSxnLF8pe2lmKCFbcixpLGEsbyxzLGMsbCx1XS5ldmVyeShOdW1iZXIuaXNGaW5pdGUpfHxhPD0wfHxvPD0wfHxzPT09YylyZXR1cm5bXTtsZXQgdj1uZCh7c2hhcGU6dCxob3Jpem9udGFsOm4sY3Jvc3NTdGFydDpuP2k6cixjcm9zc1NpemU6bj9vOmEsYmFzZUNvb3JkOnMsZW5kQ29vcmQ6YyxuZWFyRGVwdGg6bCxmYXJEZXB0aDp1LGJhc2VTY2FsZTpmLGVuZFNjYWxlOnAsb21pdEJhc2VDYXA6bSxvbWl0RW5kQ2FwOmh9KTtyZXR1cm4gdj9HZChlLHYsZCxnLF8pOltdfWZ1bmN0aW9uIEdkKGUsdCxuLHIsaSxhPSExKXtpZihpPy5leGNlZWRlZClyZXR1cm5bXTtsZXQgbz10LmZhY2VzLm1hcChyPT57bGV0IGk9ci5pbmRpY2VzLm1hcChlPT50LnZlcnRpY2VzW2VdKSxhPWUuY2FtZXJhRmFjaW5nKGkpO2lmKCFhKXJldHVybnttZXNoRmFjZTpyLGZhY2luZzphLGZhY2U6bnVsbH07bGV0IG89aS5tYXAodD0+ZS5wcm9qZWN0KHQueCx0LnksdC5kZXB0aCkpLHM9by5yZWR1Y2UoKGUsdCxuKT0+e2xldCByPW9bKG4rMSklby5sZW5ndGhdO3JldHVybiBlK3QueCpyLnktdC55KnIueH0sMCk7cmV0dXJuIU51bWJlci5pc0Zpbml0ZShzKXx8TWF0aC5hYnMocyk8MWUtNz97bWVzaEZhY2U6cixmYWNpbmc6YSxmYWNlOm51bGx9OnttZXNoRmFjZTpyLGZhY2luZzphLGZhY2U6e3BvaW50czpvLGNvbG9yOlVuKG4sQmQoZSxpKSksc2hhZGU6MCxjYW1lcmFEZXB0aDppLnJlZHVjZSgodCxuKT0+dCtlLmNhbWVyYURlcHRoKG4ueCxuLnksbi5kZXB0aCksMCkvaS5sZW5ndGgsY2FtZXJhRGVwdGhzOmkubWFwKHQ9PmUuY2FtZXJhRGVwdGgodC54LHQueSx0LmRlcHRoKSksY2FtZXJhV2VpZ2h0czppLm1hcCh0PT5lLmNhbWVyYVByb2plY3Rpb25XZWlnaHQodC54LHQueSx0LmRlcHRoKSksb3V0bGluZTohMX19fSkscz1hP1tdOm8ubWFwKGU9PmUuZmFjZSkuZmlsdGVyKGU9PmUhPW51bGwpO2lmKGkpe2lmKHMubGVuZ3RoPmkucmVtYWluaW5nKXJldHVybiBpLmV4Y2VlZGVkPSEwLFtdO2kucmVtYWluaW5nLT1zLmxlbmd0aH1sZXQgYz1uZXcgTWFwLGw9KGUsdCk9PntpZihlPT09dClyZXR1cm47bGV0IG49ZTx0P2Ake2V9OiR7dH1gOmAke3R9OiR7ZX1gO2MuaGFzKG4pfHxjLnNldChuLFtlLHRdKX07Zm9yKGxldCBlIG9mIG8pe2lmKCFlLmZhY2luZ3x8IWUuZmFjZSljb250aW51ZTtsZXR7aW5kaWNlczp0LHNtb290aFN1cmZhY2U6bixyb2xlOnJ9PWUubWVzaEZhY2U7aWYoIShuJiZyPT09YHNpZGVgKSlmb3IobGV0IGU9MDtlPHQubGVuZ3RoO2UrKylsKHRbZV0sdFsoZSsxKSV0Lmxlbmd0aF0pfWxldCB1PW8uZmlsdGVyKGU9PmUubWVzaEZhY2Uucm9sZT09PWBzaWRlYCkuc29ydCgoZSx0KT0+KGUubWVzaEZhY2Uuc2VnbWVudEluZGV4Pz8wKS0odC5tZXNoRmFjZS5zZWdtZW50SW5kZXg/PzApKTtpZih0LnNpbGhvdWV0dGVFZGdlcy5sZW5ndGg9PT11Lmxlbmd0aCYmdS5sZW5ndGg+MClmb3IobGV0IGU9MDtlPHUubGVuZ3RoO2UrKyl7bGV0IG49dVsoZSt1Lmxlbmd0aC0xKSV1Lmxlbmd0aF0scj11W2VdO2lmKG4uZmFjaW5nPT09ci5mYWNpbmd8fCEoci5mYWNpbmc/ci5mYWNlOm4uZmFjZSkpY29udGludWU7bGV0W2ksYV09dC5zaWxob3VldHRlRWRnZXNbZV07bChpLGEpfWxldCBkPW8uc29tZShlPT5lLm1lc2hGYWNlLnJvbGU9PT1gYmFzZUNhcGAmJmUuZmFjaW5nJiZlLmZhY2UhPW51bGwpLGY9by5zb21lKGU9PmUubWVzaEZhY2Uucm9sZT09PWBlbmRDYXBgJiZlLmZhY2luZyYmZS5mYWNlIT1udWxsKTtmb3IobGV0IGUgb2YgdSl7aWYoIWUuZmFjaW5nfHwhZS5mYWNlKWNvbnRpbnVlO2xldCB0PVtkP3ZvaWQgMDplLm1lc2hGYWNlLmJhc2VSaW1FZGdlLGY/dm9pZCAwOmUubWVzaEZhY2UuZW5kUmltRWRnZV0uZmlsdGVyKGU9PmUhPW51bGwpO2ZvcihsZXRbZSxuXW9mIHQpbChlLG4pfWxldCBwPUFkKFsuLi5jLnZhbHVlcygpXS5tYXAoKFtlLG5dKT0+W3QudmVydGljZXNbZV0sdC52ZXJ0aWNlc1tuXV0pKTtpZighcilyZXR1cm4gcztsZXQgbT0oZSx0KT0+TWF0aC5oeXBvdChlLngtdC54LGUueS10LnksZS5kZXB0aC10LmRlcHRoKTw9MWUtOSxoPWU9PnAuanVuY3Rpb25zLnNvbWUodD0+bSh0LnBvaW50LGUpKTtmb3IobGV0IHQgb2YgcC5wYXRocyl7bGV0IG49dC5tYXAodD0+ZS5wcm9qZWN0KHQueCx0LnksdC5kZXB0aCkpLGE9dC5tYXAodD0+ZS5jYW1lcmFEZXB0aCh0LngsdC55LHQuZGVwdGgpKSxvPXQubWFwKHQ9PmUuY2FtZXJhUHJvamVjdGlvbldlaWdodCh0LngsdC55LHQuZGVwdGgpKSxjPXlkKG4ubWFwKChlLHQpPT4oey4uLmUsY2FtZXJhRGVwdGg6YVt0XSxjYW1lcmFXZWlnaHQ6b1t0XX0pKSx7d2lkdGg6ci53aWR0aCxkYXNoOnIuZGFzaCxsaW5lQ2FwOnIuY2FwLHN0YXJ0Q2FwOmgodFswXSk/YGJ1dHRgOnIuY2FwLGVuZENhcDpoKHQuYXQoLTEpKT9gYnV0dGA6ci5jYXAsb3ZlcmxhcFN0YXJ0OmgodFswXSksb3ZlcmxhcEVuZDpoKHQuYXQoLTEpKSxsaW5lSm9pbjpyLmpvaW59KTtpZighY3x8aSYmYy5sZW5ndGg+aS5yZW1haW5pbmcpcmV0dXJuIGkmJihpLmV4Y2VlZGVkPSEwKSxbXTtpJiYoaS5yZW1haW5pbmctPWMubGVuZ3RoKSxzLnB1c2goLi4uYy5tYXAoZT0+e2xldCB0PTFlLTYqTWF0aC5tYXgoMSxNYXRoLmFicyhlLmNhbWVyYURlcHRoKSk7cmV0dXJue3BvaW50czplLnBvaW50cyxjb2xvcjpyLmNvbG9yLHNoYWRlOjAsY2FtZXJhRGVwdGg6ZS5jYW1lcmFEZXB0aCt0LGNhbWVyYURlcHRoczplLmNhbWVyYURlcHRocz8ubWFwKGU9PmUrdCksY2FtZXJhV2VpZ2h0czplLmNhbWVyYVdlaWdodHMsb3V0bGluZTohMX19KSl9Zm9yKGxldCB0IG9mIHAuanVuY3Rpb25zKXtsZXQgbj12ZCh7Li4uZS5wcm9qZWN0KHQucG9pbnQueCx0LnBvaW50LnksdC5wb2ludC5kZXB0aCksY2FtZXJhRGVwdGg6ZS5jYW1lcmFEZXB0aCh0LnBvaW50LngsdC5wb2ludC55LHQucG9pbnQuZGVwdGgpLGNhbWVyYVdlaWdodDplLmNhbWVyYVByb2plY3Rpb25XZWlnaHQodC5wb2ludC54LHQucG9pbnQueSx0LnBvaW50LmRlcHRoKX0sdC5uZWlnaGJvdXJzLm1hcCh0PT4oey4uLmUucHJvamVjdCh0LngsdC55LHQuZGVwdGgpLGNhbWVyYURlcHRoOmUuY2FtZXJhRGVwdGgodC54LHQueSx0LmRlcHRoKSxjYW1lcmFXZWlnaHQ6ZS5jYW1lcmFQcm9qZWN0aW9uV2VpZ2h0KHQueCx0LnksdC5kZXB0aCl9KSkse3dpZHRoOnIud2lkdGgsbGluZUpvaW46ci5qb2lufSk7aWYoIW4pY29udGludWU7aWYoaSYmaS5yZW1haW5pbmc8MSlyZXR1cm4gaS5leGNlZWRlZD0hMCxbXTtpJiYtLWkucmVtYWluaW5nO2xldCBhPTFlLTYqTWF0aC5tYXgoMSxNYXRoLmFicyhuLmNhbWVyYURlcHRoKSk7cy5wdXNoKHtwb2ludHM6bi5wb2ludHMsY29sb3I6ci5jb2xvcixzaGFkZTowLGNhbWVyYURlcHRoOm4uY2FtZXJhRGVwdGgrYSxjYW1lcmFEZXB0aHM6bi5jYW1lcmFEZXB0aHM/Lm1hcChlPT5lK2EpLGNhbWVyYVdlaWdodHM6bi5jYW1lcmFXZWlnaHRzLG91dGxpbmU6ITF9KX1yZXR1cm4gc31mdW5jdGlvbiBLZChlLHQsbixyLGksYSxvKXtpZighdC5sZW5ndGh8fG8uZXhjZWVkZWQpcmV0dXJuW107bGV0IHM9Wy4uLnRdLnNvcnQoKGUsdCk9PmUuc3RhcnQtdC5zdGFydCksYz1uLWkvMixsPW4raS8yLHU9c1swXSxkPWUuY2FtZXJhRGVwdGgodS5jZW50ZXJYLGMsdS5jZW50ZXJEZXB0aCk+PWUuY2FtZXJhRGVwdGgodS5jZW50ZXJYLGwsdS5jZW50ZXJEZXB0aCk/YzpsLGY9ZD09PWM/bDpjLHA9KHQsbixpKT0+KHt4OnQuY2VudGVyWCtNYXRoLmNvcyhuKSpyLHk6aSxkZXB0aDp0LmNlbnRlckRlcHRoK01hdGguc2luKG4pKnIvZS5tb2RlbERlcHRofSksbT1lPT4oe3g6ZS5jZW50ZXJYLHk6ZCxkZXB0aDplLmNlbnRlckRlcHRofSksaD1bXSxnPSh0LG49ITEpPT57aWYodC5sZW5ndGg8Mnx8by5leGNlZWRlZClyZXR1cm47bGV0IHI9dFswXSxpPXQuYXQoLTEpLHM9TWF0aC5oeXBvdChyLngtaS54LHIueS1pLnksci5kZXB0aC1pLmRlcHRoKTw9MWUtOSxjPXlkKChuJiYhcz9bLi4udCxyXTpbLi4udF0pLm1hcCh0PT4oey4uLmUucHJvamVjdCh0LngsdC55LHQuZGVwdGgpLGNhbWVyYURlcHRoOmUuY2FtZXJhRGVwdGgodC54LHQueSx0LmRlcHRoKSxjYW1lcmFXZWlnaHQ6ZS5jYW1lcmFQcm9qZWN0aW9uV2VpZ2h0KHQueCx0LnksdC5kZXB0aCl9KSkse3dpZHRoOmEud2lkdGgsZGFzaDphLmRhc2gsbGluZUNhcDphLmNhcCxzdGFydENhcDpgYnV0dGAsZW5kQ2FwOmBidXR0YCxsaW5lSm9pbjphLmpvaW59KTtpZighY3x8Yy5sZW5ndGg+by5yZW1haW5pbmcpe28uZXhjZWVkZWQ9ITA7cmV0dXJufW8ucmVtYWluaW5nLT1jLmxlbmd0aDtmb3IobGV0IGUgb2YgYyl7bGV0IHQ9MWUtNipNYXRoLm1heCgxLE1hdGguYWJzKGUuY2FtZXJhRGVwdGgpKTtoLnB1c2goe3BvaW50czplLnBvaW50cyxjb2xvcjphLmNvbG9yLHNoYWRlOjAsY2FtZXJhRGVwdGg6ZS5jYW1lcmFEZXB0aCt0LGNhbWVyYURlcHRoczplLmNhbWVyYURlcHRocz8ubWFwKGU9PmUrdCksY2FtZXJhV2VpZ2h0czplLmNhbWVyYVdlaWdodHMsb3V0bGluZTohMX0pfX0sXz1bXSx2PVtdLHk9W10sYj1uZXcgU2V0LHg9ZT0+e2xldCB0PU1hdGguUEkqMixuPShlJXQrdCkldDtyZXR1cm4objwxZS04fHx0LW48MWUtOD8wOm4pLnRvRml4ZWQoOCl9LFM9bmV3IE1hcDtmb3IobGV0IHQgb2Ygcyl7Uy5zZXQoeCh0LnN0YXJ0KSx7c2xpY2U6dCxhbmdsZTp0LnN0YXJ0fSksUy5zZXQoeCh0LmVuZCkse3NsaWNlOnQsYW5nbGU6dC5lbmR9KTtmb3IobGV0IG49MDtuPD10LnNlZ21lbnRzO24rKyl7bGV0IHI9dC5zdGFydCsodC5lbmQtdC5zdGFydCkqbi90LnNlZ21lbnRzLGk9cCh0LHIsZCk7aWYoKCFfLmxlbmd0aHx8TWF0aC5oeXBvdChfLmF0KC0xKS54LWkueCxfLmF0KC0xKS55LWkueSxfLmF0KC0xKS5kZXB0aC1pLmRlcHRoKT4xZS05KSYmXy5wdXNoKGkpLG49PT10LnNlZ21lbnRzKWNvbnRpbnVlO2xldCBhPXQuc3RhcnQrKHQuZW5kLXQuc3RhcnQpKihuKzEpL3Quc2VnbWVudHMsbz1wKHQscixjKSxzPXAodCxyLGwpLHU9cCh0LGEsbCksbT1wKHQsYSxjKTtpZihlLmNhbWVyYUZhY2luZyhbbyxzLHUsbV0pKXtsZXQgZT1wKHQscixmKSxuPXAodCxhLGYpO3kubGVuZ3RofHx5LnB1c2goZSkseS5wdXNoKG4pLGIuYWRkKHgocikpLGIuYWRkKHgoYSkpfWVsc2UgeS5sZW5ndGgmJih2LnB1c2goeSkseT1bXSl9fWlmKHkubGVuZ3RoJiZ2LnB1c2goeSksdi5sZW5ndGg+MSl7bGV0IGU9dlswXSx0PXYuYXQoLTEpLG49ZVswXSxyPXQuYXQoLTEpO01hdGguaHlwb3Qobi54LXIueCxuLnktci55LG4uZGVwdGgtci5kZXB0aCk8PTFlLTkmJih2WzBdPVsuLi50LC4uLmUuc2xpY2UoMSldLHYucG9wKCkpfWcoXywhMCk7bGV0IEM9bmV3IE1hcDtmb3IobGV0e3NsaWNlOmUsYW5nbGU6dH1vZiBTLnZhbHVlcygpKWcoW20oZSkscChlLHQsZCldKSxiLmhhcyh4KHQpKSYmQy5zZXQoeCh0KSx7c2xpY2U6ZSxhbmdsZTp0fSk7Zm9yKGxldCB0IG9mIHYpe2codCk7Zm9yKGxldCBuIG9mW3RbMF0sdC5hdCgtMSldKXtsZXQgdD1NYXRoLmF0YW4yKChuLmRlcHRoLXUuY2VudGVyRGVwdGgpKmUubW9kZWxEZXB0aCxuLngtdS5jZW50ZXJYKTtDLnNldCh4KHQpLHtzbGljZTp1LGFuZ2xlOnR9KX19Zm9yKGxldHtzbGljZTplLGFuZ2xlOnR9b2YgQy52YWx1ZXMoKSlnKFtwKGUsdCxkKSxwKGUsdCxmKV0pO3JldHVybiBofWZ1bmN0aW9uIHFkKGUsdCl7SGQoZSx0LnBvaW50cyx0LmNvbG9yLHQuc2hhZGUpLHQub3V0bGluZSYmKGUuc3Ryb2tlU3R5bGU9dC5vdXRsaW5lQ29sb3I/P2ByZ2JhKDAsMCwwLDAuNDIpYCxlLmxpbmVXaWR0aD10Lm91dGxpbmVXaWR0aD8/Ljc1LGUuc2V0TGluZURhc2goT24odC5vdXRsaW5lRGFzaD8/YHNvbGlkYCxlLmxpbmVXaWR0aCkpLGUubGluZUNhcD10Lm91dGxpbmVDYXA/P2BidXR0YCxlLmxpbmVKb2luPXQub3V0bGluZUpvaW4/P2BtaXRlcmAsdC5vdXRsaW5lJiYoVmQoZSx0LnBvaW50cyksZS5zdHJva2UoKSksZS5zZXRMaW5lRGFzaChbXSkpfWZ1bmN0aW9uIEpkKGUsdCxuKXt0LnBvaW50cy5sZW5ndGg8M3x8amYobil8fChWZChlLHQucG9pbnRzKSxlLmZpbGxTdHlsZT1uLGUuZmlsbCgpKX1mdW5jdGlvbiBZZChlLHQpe2UuZmlsbFN0eWxlPWAjODg4YCxlLmZvbnQ9YDEycHggc2Fucy1zZXJpZmAsZS50ZXh0QWxpZ249YGNlbnRlcmAsZS50ZXh0QmFzZWxpbmU9YG1pZGRsZWAsZS5maWxsVGV4dChgKHRvbyBtYW55IGRhdGEgcG9pbnRzKWAsdC54K3Qudy8yLHQueSt0LmgvMil9ZnVuY3Rpb24gWGQoZSl7bGV0IHQ9ZS5jYXRBeGlzTGFiZWxSb3RhdGlvbjtyZXR1cm4gdD09bnVsbD9udWxsOiFOdW1iZXIuaXNGaW5pdGUodCl8fE1hdGguYWJzKHQpPjU0ZTU/MDp0LzZlNCpNYXRoLlBJLzE4MH1mdW5jdGlvbiBaZChlLHQsbixyLGksYT0xLG89Nil7aWYoaXx8cj09PTApe2UudGV4dEFsaWduPWk/YHJpZ2h0YDpgY2VudGVyYCxlLnRleHRCYXNlbGluZT1pP2BtaWRkbGVgOmE8MD9gYm90dG9tYDpgdG9wYCxlLmZpbGxUZXh0KHQsbi54KyhpPy1vOjApLG4ueSsoaT8wOmEqbykpO3JldHVybn1lLnNhdmUoKSxlLnRyYW5zbGF0ZShuLngsbi55K2EqbyksZS5yb3RhdGUociksZS50ZXh0QWxpZ249YTwwP2BsZWZ0YDpgcmlnaHRgLGUudGV4dEJhc2VsaW5lPWBtaWRkbGVgLGUuZmlsbFRleHQodCwwLDApLGUucmVzdG9yZSgpfWZ1bmN0aW9uIFFkKGUsdCxuLHIsaSxhLG8pe2lmKCEocj4wKXx8IU51bWJlci5pc0Zpbml0ZSh0LngpfHwhTnVtYmVyLmlzRmluaXRlKHQueSkpcmV0dXJuO2xldCBzPXIvMjtzd2l0Y2goZS5iZWdpblBhdGgoKSxuKXtjYXNlYHNxdWFyZWA6ZS5yZWN0KHQueC1zLHQueS1zLHIscik7YnJlYWs7Y2FzZWBkaWFtb25kYDplLm1vdmVUbyh0LngsdC55LXMpLGUubGluZVRvKHQueCtzLHQueSksZS5saW5lVG8odC54LHQueStzKSxlLmxpbmVUbyh0Lngtcyx0LnkpLGUuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZWB0cmlhbmdsZWA6ZS5tb3ZlVG8odC54LHQueS1zKSxlLmxpbmVUbyh0Lngrcyx0LnkrcyksZS5saW5lVG8odC54LXMsdC55K3MpLGUuY2xvc2VQYXRoKCk7YnJlYWs7Y2FzZWB4YDpjYXNlYHBsdXNgOmNhc2VgZGFzaGA6e2lmKG49PT1gZGFzaGApe2UubW92ZVRvKHQueC1zLHQueSksZS5saW5lVG8odC54K3MsdC55KSxlLnN0cm9rZVN0eWxlPWEsZS5saW5lV2lkdGg9byxlLnN0cm9rZSgpO3JldHVybn1sZXQgcj1uPT09YHhgO2UubW92ZVRvKHQueC1zLHQueSsocj8tczowKSksZS5saW5lVG8odC54K3MsdC55KyhyP3M6MCkpLGUubW92ZVRvKHQueCsocj8tczowKSx0LnkrcyksZS5saW5lVG8odC54KyhyP3M6MCksdC55LXMpLGUuc3Ryb2tlU3R5bGU9YSxlLmxpbmVXaWR0aD1vLGUuc3Ryb2tlKCk7cmV0dXJufWNhc2Vgc3RhcmA6Zm9yKGxldCBuPTA7bjwxMDtuKyspe2xldCByPS1NYXRoLlBJLzIrbipNYXRoLlBJLzUsaT1uJTI9PTA/czpzKi40LGE9dC54K01hdGguY29zKHIpKmksbz10LnkrTWF0aC5zaW4ocikqaTtuP2UubGluZVRvKGEsbyk6ZS5tb3ZlVG8oYSxvKX1lLmNsb3NlUGF0aCgpO2JyZWFrO2Nhc2VgZG90YDplLmFyYyh0LngsdC55LE1hdGgubWF4KDEscyouMzUpLDAsTWF0aC5QSSoyKTticmVhaztjYXNlYHBpY3R1cmVgOnJldHVybjtkZWZhdWx0OmUuYXJjKHQueCx0LnkscywwLE1hdGguUEkqMik7YnJlYWt9aSE9PWB0cmFuc3BhcmVudGAmJihlLmZpbGxTdHlsZT1pLGUuZmlsbCgpKSxlLnN0cm9rZVN0eWxlPWEsZS5saW5lV2lkdGg9byxlLnN0cm9rZSgpfWZ1bmN0aW9uICRkKGUsdCxuLHIsaSxhLG8scyxjLGw9MCx1LGQsZj1gdGAscD1vLG09ITAsaCl7bGV0IGc9ZDtpZihnPy5kZWxldGVkKXJldHVybjtsZXQgXz1uLnNlcmllc0RhdGFMYWJlbHMsdj1nPy5zaG93VmFsPz9fPy5zaG93VmFsPz90LnNob3dEYXRhTGFiZWxzLHk9Zz8uc2hvd0NhdE5hbWU/P18/LnNob3dDYXROYW1lPz8hMSxiPWc/LnNob3dTZXJOYW1lPz9fPy5zaG93U2VyTmFtZT8/ITEseD1nPy5zaG93UGVyY2VudD8/Xz8uc2hvd1BlcmNlbnQ/PyExLFM9Zz8udGV4dCxDPWFuKHtjdXN0b21UZXh0OlMsc2hvd0NhdGVnb3J5Onksc2hvd1NlcmllczpiLHNob3dWYWx1ZTp2LHNob3dQZXJjZW50OngsY2F0ZWdvcnk6bi5jYXRlZ29yaWVzPy5baV0/P3QuY2F0ZWdvcmllc1tpXT8/YCR7aSsxfWAsc2VyaWVzTmFtZTpuLm5hbWV8fGBTZXJpZXMgJHtyKzF9YCxzb3VyY2VWYWx1ZTphLHZhbHVlRGl2aXNvcjpoPy5kaXZpc29yLHBlcmNlbnRSYXRpbzp1IT1udWxsJiZOdW1iZXIuaXNGaW5pdGUodSk/dTp2b2lkIDAsZm9ybWF0Q29kZTpnPy5mb3JtYXRDb2RlPz9fPy5mb3JtYXRDb2RlPz90LmRhdGFMYWJlbEZvcm1hdENvZGU/P24udmFsRm9ybWF0Q29kZSxwZXJjZW50Rm9ybWF0Q29kZTpnPy5mb3JtYXRDb2RlPz9fPy5mb3JtYXRDb2RlPz90LmRhdGFMYWJlbEZvcm1hdENvZGU/P2AwJWAsZGF0ZTE5MDQ6dC5kYXRlMTkwNCxzZXBhcmF0b3I6Zz8uc2VwYXJhdG9yPz9fPy5zZXBhcmF0b3J9KTtpZighQylyZXR1cm47bGV0IHc9aGUoZz8uZm9udFNpemVIcHQ/P18/LmZvbnRTaXplSHB0Pz90LmRhdGFMYWJlbEZvbnRTaXplSHB0LGMpPz85KmMsVD1nPy5mb250Qm9sZD8/Xz8uZm9udEJvbGQ/P3QuZGF0YUxhYmVsRm9udEJvbGQ/PyExLEU9QWYodCxnPy5mb250RmFjZT8/Xz8uZm9udEZhY2U/P3QuZGF0YUxhYmVsRm9udEZhY2UpO2UuZm9udD1gJHtUP2Bib2xkIGA6YGB9JHt3fXB4ICR7RX1gO2xldCBEPWAjJHtnPy5mb250Q29sb3I/P18/LmZvbnRDb2xvcj8/bi5sYWJlbENvbG9yPz90LmRhdGFMYWJlbEZvbnRDb2xvcj8/YDExMTExMWB9YCxPPVMmJmc/LnJpY2hSdW5zPy5sZW5ndGg/UXQoZSx7cnVuczpnLnJpY2hSdW5zLHB0VG9QeDpjLGZvbnRGYW1pbHk6RSxmYWxsYmFja0JvbGQ6VCxmb250RmFtaWx5Rm9yRmFjZTplPT5BZih0LGUpfSx3LEQpOm51bGwsaz1PP1tdOmhuKEMsTWF0aC5tYXgodyxzLncqLjQ1KSxNYXRoLm1heCh3KjEuMixzLmgqLjM1KSx3KjEuMix0PT5lLm1lYXN1cmVUZXh0KHQpLndpZHRoKTtpZighTyYmIWsubGVuZ3RoKXJldHVybjtsZXQgQT1PPy53aWR0aD8/TWF0aC5tYXgoLi4uay5tYXAodD0+ZS5tZWFzdXJlVGV4dCh0KS53aWR0aCkpLGo9Tz8uaGVpZ2h0Pz9rLmxlbmd0aCp3KjEuMixNPWZuKHtraW5kOmBwb2ludGAseDpvLngseTpvLnkscG9zaXRpb246Zz8ucG9zaXRpb24/P18/LnBvc2l0aW9uPz90LmRhdGFMYWJlbFBvc2l0aW9uPz9mLG1hcmtlckdhcDpsfSxzLHt3OkEsaDpqfSx3LGc/Lm1hbnVhbExheW91dCxzKTtpZighTSlyZXR1cm47bGV0IE49Zz8ubGFiZWxCb3g/P18/LmxhYmVsQm94O2lmKF8/LnNob3dMZWFkZXJMaW5lcyYmbSYmKGUuYmVnaW5QYXRoKCksZS5tb3ZlVG8ocC54LHAueSksZS5saW5lVG8oTWF0aC5tYXgoTS5yZWN0LngsTWF0aC5taW4ocC54LE0ucmVjdC54K00ucmVjdC53KSksTWF0aC5tYXgoTS5yZWN0LnksTWF0aC5taW4ocC55LE0ucmVjdC55K00ucmVjdC5oKSkpLGUuc3Ryb2tlU3R5bGU9YCMke18ubGVhZGVyTGluZUNvbG9yPz9gODA4MDgwYH1gLGUubGluZVdpZHRoPV8ubGVhZGVyTGluZVdpZHRoRW11PT1udWxsPy43NSpjOk1hdGgubWF4KC4yNSxfLmxlYWRlckxpbmVXaWR0aEVtdS9ldCpjKSxlLnN0cm9rZSgpKSxOJiYoTi5maWxsJiYoZS5maWxsU3R5bGU9YCMke04uZmlsbH1gLGUuZmlsbFJlY3QoTS5yZWN0LngsTS5yZWN0LnksTS5yZWN0LncsTS5yZWN0LmgpKSxOLmJvcmRlckNvbG9yJiYoZS5zdHJva2VTdHlsZT1gIyR7Ti5ib3JkZXJDb2xvcn1gLGUubGluZVdpZHRoPU4uYm9yZGVyV2lkdGhFbXU9PW51bGw/Ljc1KmM6TWF0aC5tYXgoLjI1LE4uYm9yZGVyV2lkdGhFbXUvZXQqYyksZS5zdHJva2VSZWN0KE0ucmVjdC54LE0ucmVjdC55LE0ucmVjdC53LE0ucmVjdC5oKSkpLGUuc2F2ZSgpLGUuYmVnaW5QYXRoKCksZS5yZWN0KE0uY2xpcC54LE0uY2xpcC55LE0uY2xpcC53LE0uY2xpcC5oKSxlLmNsaXAoKSxPKXskdChlLE8sTS54LE0ueSxNLnRleHRBbGlnbixNLnRleHRCYXNlbGluZSksZS5yZXN0b3JlKCk7cmV0dXJufWUuZmlsbFN0eWxlPUQsZS50ZXh0QWxpZ249TS50ZXh0QWxpZ24sZS50ZXh0QmFzZWxpbmU9YG1pZGRsZWA7bGV0IFA9dyoxLjIsRj1NLnktKGsubGVuZ3RoLTEpKlAvMjtrLmZvckVhY2goKHQsbik9PmUuZmlsbFRleHQodCxNLngsRituKlApKSxlLnJlc3RvcmUoKX1mdW5jdGlvbiBlZihlLHQsbil7aWYobj8uZGVsZXRlZClyZXR1cm4hMTtpZihuPy50ZXh0KXJldHVybiEwO2xldCByPXQuc2VyaWVzRGF0YUxhYmVscztyZXR1cm4obj8uc2hvd1ZhbD8/cj8uc2hvd1ZhbD8/ZS5zaG93RGF0YUxhYmVscyl8fChuPy5zaG93Q2F0TmFtZT8/cj8uc2hvd0NhdE5hbWU/PyExKXx8KG4/LnNob3dTZXJOYW1lPz9yPy5zaG93U2VyTmFtZT8/ITEpfHwobj8uc2hvd1BlcmNlbnQ/P3I/LnNob3dQZXJjZW50Pz8hMSl9ZnVuY3Rpb24gdGYoZSx0LG4scixpKXtsZXQgYT1DZSh0LG4uaCxyKTtpZih0LnRpdGxlKXtlLmZvbnQ9YCR7dC50aXRsZUZvbnRCb2xkPT09ITE/YGA6YGJvbGQgYH0ke2EuZm9udFB4fXB4ICR7a2YodC50aXRsZUZvbnRGYWNlKX1gLGUuZmlsbFN0eWxlPXQudGl0bGVGb250Q29sb3I/YCMke3QudGl0bGVGb250Q29sb3J9YDpgIzExMTExMWAsZS50ZXh0QWxpZ249YGNlbnRlcmAsZS50ZXh0QmFzZWxpbmU9YHRvcGA7bGV0IHI9ZS5tZWFzdXJlVGV4dCh0LnRpdGxlKS53aWR0aCxpPXt4Om4ueCsobi53LXIpLzIseTpuLnkrYS50b3BQYWQsdzpyLGg6TWF0aC5tYXgoMSxhLmZvbnRQeCl9LG89dC50aXRsZU1hbnVhbExheW91dD9PZSh7Li4udC50aXRsZU1hbnVhbExheW91dCx3OnZvaWQgMCxoOnZvaWQgMH0sbixpKTpudWxsO2UuZmlsbFRleHQodC50aXRsZSxvP28ueCtvLncvMjpuLngrbi53LzIsbz8ueT8/aS55KX1sZXQgbz1oZSh0LmxlZ2VuZEZvbnRTaXplSHB0LHIpPz85KnI7ZS5zYXZlKCksZS5mb250PWAke3QubGVnZW5kRm9udEJvbGQ/YGJvbGQgYDpgYH0ke299cHggJHtrZih0LmxlZ2VuZEZvbnRGYWNlKX1gO2xldCBzPXQuY2hhcnRUeXBlPT09YHBpZWA/dC5zZXJpZXNbMF0/LmNhdGVnb3JpZXM/Lmxlbmd0aD90LnNlcmllc1swXS5jYXRlZ29yaWVzOnQuY2F0ZWdvcmllczp0LnNlcmllcy5tYXAoKGUsdCk9PmUubmFtZXx8YFNlcmllcyAke3QrMX1gKSxjPXZlKHQsbi53LG4uaCwuMjMse2l0ZW1XaWR0aHM6cy5tYXAodD0+NypyKzQrZS5tZWFzdXJlVGV4dCh0KS53aWR0aCkscm93SGVpZ2h0Ok1hdGgubWF4KG8qMS40NSwxMiksaXRlbUdhcDoxMixob3Jpem9udGFsUGFkZGluZzo4LHZlcnRpY2FsUGFkZGluZzo0fSk7ZS5yZXN0b3JlKCk7bGV0IGw9eWUoYyksdT1TZSh0LG4udyxuLmgsciksZD1pPT09YGhvcml6b250YWxgP3QuY2F0QXhpc1RpdGxlP3UuY2F0Rm9udFB4K1gobi53KSs0OjA6aT09PWB2ZXJ0aWNhbGA/dS52YWxCYW5kVzowLGY9aT09PWBob3Jpem9udGFsYD90LnZhbEF4aXNUaXRsZT91LnZhbEZvbnRQeCtYKG4uaCkrNDowOmk9PT1gdmVydGljYWxgP3UuY2F0QmFuZEg6MCxwPWtlKHQsbi54LG4ueSxuLncsbi5oLHIse3RpdGxlQmFuZDphLGxlZ2VuZFNpZGVSZXNlcnZlRnJhYzouMjMsbGVnZW5kUmVzZXJ2ZTpjLHBhZDp7dDphLmJhbmRIK2wubGVnVG9wSCtuLmgqLjA0LHI6bC5sZWdSaWdodFcrbi53Ki4wNSxiOmwubGVnQm90dG9tSCtuLmgqLjE5K2YsbDpsLmxlZ0xlZnRXK24udyouMTMrZH0saG9ub3JQbG90QXJlYU1hbnVhbExheW91dDohMCxtYW51YWxPdXRlckluc2V0czp7dDphLmJhbmRILHI6bC5sZWdSaWdodFcsYjpsLmxlZ0JvdHRvbUgrZixsOmwubGVnTGVmdFcrZH19KSxtPXt4OnAucGxvdFJlY3QucHgwLHk6cC5wbG90UmVjdC5weTAsdzpNYXRoLm1heCgxLHAucGxvdFJlY3QucHcpLGg6TWF0aC5tYXgoMSxwLnBsb3RSZWN0LnBoKX0saD1jP2Muc2lkZT09PWByYD97eDpuLngrbi53LWMucmVzZXJ2ZVcseTptLnksdzpjLnJlc2VydmVXLGg6bS5ofTpjLnNpZGU9PT1gbGA/e3g6bi54LHk6bS55LHc6Yy5yZXNlcnZlVyxoOm0uaH06Yy5zaWRlPT09YHRgP3t4Om4ueCs0LHk6bi55K2EuYmFuZEgsdzpNYXRoLm1heCgxLG4udy04KSxoOmMucmVzZXJ2ZUh9Ont4Om4ueCs0LHk6bi55K24uaC1jLnJlc2VydmVILHc6TWF0aC5tYXgoMSxuLnctOCksaDpjLnJlc2VydmVIfTpudWxsO3JldHVybntwbG90Om0sbGVnZW5kOihoJiZ0LmxlZ2VuZE1hbnVhbExheW91dD9PZSh0LmxlZ2VuZE1hbnVhbExheW91dCxuLGgpOm51bGwpPz9ofX1mdW5jdGlvbiBuZihlLHQsbixyLGksYSxvLHMsYyxsLHUsZCxmLHApe2Uuc2F2ZSgpLGUuZm9udD1gJHtsP2BpdGFsaWMgYDpgYH0ke2M/YGJvbGQgYDpgYH0ke2F9cHggJHtvfWAsZS5maWxsU3R5bGU9cz9gIyR7c31gOmAjNTU1YDtsZXQgbT1mP3Q6T3QoZSx0LHApLGg9eGUoaSx1LGQpLGc9cjtpZihmKXtsZXQgdD1lLm1lYXN1cmVUZXh0KG0pLndpZHRoLGk9TWF0aC5hYnMoTWF0aC5jb3MoaCkpLG89TWF0aC5hYnMoTWF0aC5zaW4oaCkpLHM9e3g6ci54LSh0KmkrYSpvKS8yLHk6ci55LSh0Km8rYSppKS8yLHc6dCppK2EqbyxoOnQqbythKml9LGM9T2Uoey4uLmYsdzp2b2lkIDAsaDp2b2lkIDB9LG4scyk7YyYmKGc9e3g6Yy54K2Mudy8yLHk6Yy55K2MuaC8yfSl9ZS50cmFuc2xhdGUoZy54LGcueSksaCYmZS5yb3RhdGUoaCksZS50ZXh0QWxpZ249YGNlbnRlcmAsZS50ZXh0QmFzZWxpbmU9YG1pZGRsZWAsZS5maWxsVGV4dChtLDAsMCksZS5yZXN0b3JlKCl9ZnVuY3Rpb24gcmYoZSx0LG4scixpLGEpe2lmKHQudmFsQXhpc1RpdGxlKXtsZXQgbz1iZSh0LnZhbEF4aXNUaXRsZUZvbnRTaXplSHB0LGEpLHM9aT9gaG9yaXpvbnRhbGA6YGxlZnRgO25mKGUsdC52YWxBeGlzVGl0bGUsbixpP3t4OnIueCtyLncvMix5OnIueStyLmgrWChuLmgpK28vMn06e3g6ci54LVgobi53KS1vLzIseTpyLnkrci5oLzJ9LHMsbyxBZih0LHQudmFsQXhpc1RpdGxlRm9udEZhY2UsYG1ham9yYCksdC52YWxBeGlzVGl0bGVGb250Q29sb3IsdC52YWxBeGlzVGl0bGVGb250Qm9sZD8/ITAsdC52YWxBeGlzVGl0bGVGb250SXRhbGljPz8hMSx0LnZhbEF4aXNUaXRsZVJvdGF0aW9uLHQudmFsQXhpc1RpdGxlVmVydGljYWxNb2RlLHQudmFsQXhpc1RpdGxlTWFudWFsTGF5b3V0LGk/ci53OnIuaCl9aWYodC5jYXRBeGlzVGl0bGUpe2xldCBvPWJlKHQuY2F0QXhpc1RpdGxlRm9udFNpemVIcHQsYSkscz1pP2BsZWZ0YDpgaG9yaXpvbnRhbGA7bmYoZSx0LmNhdEF4aXNUaXRsZSxuLGk/e3g6ci54LVgobi53KS1vLzIseTpyLnkrci5oLzJ9Ont4OnIueCtyLncvMix5OnIueStyLmgrWChuLmgpK28vMn0scyxvLEFmKHQsdC5jYXRBeGlzVGl0bGVGb250RmFjZSxgbWFqb3JgKSx0LmNhdEF4aXNUaXRsZUZvbnRDb2xvcix0LmNhdEF4aXNUaXRsZUZvbnRCb2xkPz8hMCx0LmNhdEF4aXNUaXRsZUZvbnRJdGFsaWM/PyExLHQuY2F0QXhpc1RpdGxlUm90YXRpb24sdC5jYXRBeGlzVGl0bGVWZXJ0aWNhbE1vZGUsdC5jYXRBeGlzVGl0bGVNYW51YWxMYXlvdXQsaT9yLmg6ci53KX19ZnVuY3Rpb24gYWYoZSx0LG4scixpLGEsbyxzLGMsbCl7bGV0IHU9dC50aHJlZUQ/LnNlcmllc0F4aXM7aWYoIXV8fHUuaGlkZGVufHx0LnRocmVlRD8uYmFyR3JvdXBpbmchPT1gc3RhbmRhcmRgfHx0LnNlcmllcy5sZW5ndGg9PT0wKXJldHVybjtsZXQgZD15Zih0LHIsaSxhLG8scyxjKSxmPWxmKHIpLHA9Yz09PWB2ZXJ0aWNhbGA/Zi5zZXJpZXNBeGlzWDpkLmF4aXNYLG09Yz09PWBob3Jpem9udGFsYD9mLmZsb29yWT09PXIuZnJvbnQueT9yLmZyb250Lnkrci5mcm9udC5oOnIuZnJvbnQueTpmLmZsb29yWSxoPXIucHJvamVjdChwLG0sci50b3BvbG9neS5uZWFyRGVwdGgpLGc9ci5wcm9qZWN0KHAsbSxyLnRvcG9sb2d5LmZhckRlcHRoKSxfPU1hdGguaHlwb3QoZy54LWgueCxnLnktaC55KTtpZighKF8+MWUtNikpcmV0dXJuO2xldCB2PXt4OihnLngtaC54KS9fLHk6KGcueS1oLnkpL199LHk9e3g6LXYueSx5OnYueH0sYj1yLnByb2plY3Qoci5mcm9udC54K3IuZnJvbnQudy8yLHIuZnJvbnQueStyLmZyb250LmgvMiwuNSkseD17eDooaC54K2cueCkvMix5OihoLnkrZy55KS8yfTsoeC54LWIueCkqeS54Kyh4LnktYi55KSp5Lnk8MCYmKHk9e3g6LXkueCx5Oi15Lnl9KSwodS50aWNrTGFiZWxQb3M9PT1gbG93YCYmeS55PDB8fHUudGlja0xhYmVsUG9zPT09YGhpZ2hgJiZ5Lnk+MCkmJih5PXt4Oi15LngseToteS55fSksdS5saW5lSGlkZGVufHwoZGYoZSx1Zih1LmxpbmVDb2xvcix1LmxpbmVXaWR0aEVtdSxudWxsLGwsYDg5ODk4OWAsMSkpLGUuYmVnaW5QYXRoKCksZS5tb3ZlVG8oaC54LGgueSksZS5saW5lVG8oZy54LGcueSksZS5zdHJva2UoKSk7bGV0IFM9TWF0aC5tYXgoMSxNYXRoLmZsb29yKHUudGlja01hcmtTa2lwPz8xKSksQz1NYXRoLm1heCgxLE1hdGguZmxvb3IodS50aWNrTGFiZWxTa2lwPz8xKSksdz11Lm1ham9yVGlja01hcms/P2BvdXRgLFQ9aGUodS5mb250U2l6ZUhwdCxsKT8/OSpsO2UuZm9udD1gJHt1LmZvbnRJdGFsaWM/YGl0YWxpYyBgOmBgfSR7dS5mb250Qm9sZD9gYm9sZCBgOmBgfSR7VH1weCAke0FmKHQsdS5mb250RmFjZSl9YCxlLmZpbGxTdHlsZT11LmZvbnRDb2xvcj9gIyR7dS5mb250Q29sb3J9YDpgIzU5NTk1OWAsZS50ZXh0QWxpZ249TWF0aC5hYnMoeS54KTwuMj9gY2VudGVyYDp5Lng8MD9gcmlnaHRgOmBsZWZ0YCxlLnRleHRCYXNlbGluZT1NYXRoLmFicyh5LnkpPC4yP2BtaWRkbGVgOnkueTwwP2Bib3R0b21gOmB0b3BgO2ZvcihsZXQgbj0wO248dC5zZXJpZXMubGVuZ3RoO24rKyl7bGV0IGk9ci5zZXJpZXNEZXB0aChuLHQuc2VyaWVzLmxlbmd0aCwhMSksYT11Lm9yaWVudGF0aW9uPT09YG1heE1pbmA/MS1pOmksbz1yLnByb2plY3QocCxtLGEpO2lmKCF1LmxpbmVIaWRkZW4mJm4lUz09PTAmJnchPT1gbm9uZWApe2xldCB0PTYqbCxuPXc9PT1gY3Jvc3NgP3QvMjp3PT09YG91dGA/dDowLHI9dz09PWBjcm9zc2A/dC8yOnc9PT1gaW5gP3Q6MDtlLmJlZ2luUGF0aCgpLGUubW92ZVRvKG8ueCt5LngqbixvLnkreS55Km4pLGUubGluZVRvKG8ueC15LngqcixvLnkteS55KnIpLGUuc3Ryb2tlKCl9dS50aWNrTGFiZWxQb3MhPT1gbm9uZWAmJm4lQz09PTAmJmUuZmlsbFRleHQodC5zZXJpZXNbbl0ubmFtZXx8YFNlcmllcyAke24rMX1gLG8ueCt5LngqKDYqbCszKSxvLnkreS55Kig2KmwrMykpfWlmKGUuc2V0TGluZURhc2goW10pLHUudGl0bGUpe2xldCBpPWJlKHUudGl0bGVGb250U2l6ZUhwdCxsKTtuZihlLHUudGl0bGUsbix7eDp4LngreS54KihUK2krMTIpLHk6eC55K3kueSooVCtpKzEyKX0sYGhvcml6b250YWxgLGksQWYodCx1LnRpdGxlRm9udEZhY2UsYG1ham9yYCksdS50aXRsZUZvbnRDb2xvcix1LnRpdGxlRm9udEJvbGQ/PyEwLHUudGl0bGVGb250SXRhbGljPz8hMSx1LnRpdGxlUm90YXRpb24sdS50aXRsZVZlcnRpY2FsTW9kZSx1LnRpdGxlTWFudWFsTGF5b3V0LE1hdGgubWF4KHIuZnJvbnQudyxyLmZyb250LmgpKX19ZnVuY3Rpb24gb2YoZSx0LG4scixpPSExKXtpZighbilyZXR1cm47Y24oZSx0LG4scik7bGV0IGE9bmV3IE1hcCh0LnNlcmllc1swXT8uZGF0YVBvaW50T3ZlcnJpZGVzPy5tYXAoZT0+W2UuaWR4LGVdKT8/W10pLG89aT8odC5zZXJpZXNbMF0/LmNhdGVnb3JpZXM/Lmxlbmd0aD90LnNlcmllc1swXS5jYXRlZ29yaWVzOnQuY2F0ZWdvcmllcykubWFwKChlLG4pPT57bGV0IHI9dC5zZXJpZXNbMF0/LmRhdGFQb2ludENvbG9ycz8uW25dO3JldHVybntsYWJlbDplLGNvbG9yOnI9PT1gMDAwMDAwMDBgP2B0cmFuc3BhcmVudGA6cj9gIyR7cn1gOk9mKG4pLHNlcmllczp0LnNlcmllc1swXSxwb2ludDphLmdldChuKX19KTp0LnNlcmllcy5tYXAoKGUsdCk9Pih7bGFiZWw6ZS5uYW1lfHxgU2VyaWVzICR7dCsxfWAsY29sb3I6T2YodCxlKSxzZXJpZXM6ZSxwb2ludDp2b2lkIDB9KSkscz1oZSh0LmxlZ2VuZEZvbnRTaXplSHB0LHIpPz85KnI7ZS5mb250PWAke3QubGVnZW5kRm9udEJvbGQ/YGJvbGQgYDpgYH0ke3N9cHggJHtrZih0LmxlZ2VuZEZvbnRGYWNlKX1gLGUudGV4dEFsaWduPWBsZWZ0YCxlLnRleHRCYXNlbGluZT1gbWlkZGxlYDtsZXQgYz1NYXRoLm1heChzKjEuNDUsMTIpLGw9TWF0aC5taW4oNypyLGMqLjcpO2lmKHQubGVnZW5kUG9zPT09YHRgfHx0LmxlZ2VuZFBvcz09PWBiYHx8dC5sZWdlbmRNYW51YWxMYXlvdXQhPW51bGwmJm4udz49bi5oKXtsZXQgYT1vLm1hcCh0PT5sKzQrZS5tZWFzdXJlVGV4dCh0LmxhYmVsKS53aWR0aCkscz1tZShhLE1hdGgubWF4KDEsbi53LTgpLDEyKS5zbGljZSgwLE1hdGgubWF4KDAsTWF0aC5mbG9vcigobi5oLTQrMWUtNikvYykpKSx1PW4ueSsyK2MvMjtmb3IobGV0IGQgb2Ygcyl7bGV0IHM9ZC5tYXAoZT0+TWF0aC5taW4obi53LGFbZV0pKSxmPXMucmVkdWNlKChlLHQpPT5lK3QsMCkrTWF0aC5tYXgoMCxkLmxlbmd0aC0xKSoxMixwPW4ueCtNYXRoLm1heCg0LChuLnctZikvMik7Zm9yKGxldCBuPTA7bjxkLmxlbmd0aDtuKyspe2xldCBhPW9bZFtuXV0sYz1NYXRoLm1heCgwLHNbbl0tbC00KTtpZighaSYmdC5jaGFydFR5cGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhgbGluZWApJiZhLnNlcmllcz8ubGluZUhpZGRlbiE9PSEwKXtsZXQgdD1hLnNlcmllcz8ubGluZVdpZHRoRW11PT1udWxsP01hdGgubWF4KDEsMipyKTpNYXRoLm1heCguNSxhLnNlcmllcy5saW5lV2lkdGhFbXUvZXQqcik7ZS5iZWdpblBhdGgoKSxlLm1vdmVUbyhwLHUpLGUubGluZVRvKHArbCx1KSxlLnN0cm9rZVN0eWxlPWEuc2VyaWVzPy5saW5lQ29sb3I/YCMke2Euc2VyaWVzLmxpbmVDb2xvcn1gOlVuKGEuY29sb3IsLjcpLGUubGluZVdpZHRoPXQsZS5zZXRMaW5lRGFzaChPbihhLnNlcmllcz8uY2hhcnRleFN0eWxlPy5saW5lRGFzaD8/YHNvbGlkYCx0KSksZS5zdHJva2UoKSxlLnNldExpbmVEYXNoKFtdKX1lbHNle2EuY29sb3IhPT1gdHJhbnNwYXJlbnRgJiYoZS5maWxsU3R5bGU9YS5jb2xvcixlLmZpbGxSZWN0KHAsdS1sLzIsbCxsKSk7bGV0IHQ9YS5wb2ludD8ubGluZUhpZGRlbj8/YS5zZXJpZXM/LmxpbmVIaWRkZW4sbj1hLnBvaW50Py5saW5lQ29sb3I/P2Euc2VyaWVzPy5saW5lQ29sb3I7dCE9PSEwJiZuJiYoZS5zdHJva2VTdHlsZT1gIyR7bn1gLGUubGluZVdpZHRoPShhLnBvaW50Py5saW5lV2lkdGhFbXU/P2Euc2VyaWVzPy5saW5lV2lkdGhFbXUpPT1udWxsPy43NSpyOk1hdGgubWF4KC4yNSwoYS5wb2ludD8ubGluZVdpZHRoRW11Pz9hLnNlcmllcz8ubGluZVdpZHRoRW11Pz8wKS9ldCpyKSxlLnNldExpbmVEYXNoKE9uKGEucG9pbnQ/LmxpbmVEYXNoPz9hLnNlcmllcz8uY2hhcnRleFN0eWxlPy5saW5lRGFzaD8/YHNvbGlkYCxlLmxpbmVXaWR0aCkpLGUuc3Ryb2tlUmVjdChwLHUtbC8yLGwsbCksZS5zZXRMaW5lRGFzaChbXSkpfWUuZmlsbFN0eWxlPXQubGVnZW5kRm9udENvbG9yP2AjJHt0LmxlZ2VuZEZvbnRDb2xvcn1gOmAjNTk1OTU5YCxlLmZpbGxUZXh0KE90KGUsYS5sYWJlbCxjKSxwK2wrNCx1KSxwKz1zW25dKzEyfXUrPWN9cmV0dXJufWxldCB1PW4ueTtmb3IobGV0IGE9MDthPG8ubGVuZ3RoO2ErKyl7bGV0IGQ9b1thXSxmPW4ueCs4K2wscD1NYXRoLm1heCgwLG4ueCtuLnctNC1mKSxtPU1hdGgubWF4KHMqMS4yLDEwKSxoPWhuKGQubGFiZWwscCxtKihpPzE6MiksbSx0PT5lLm1lYXN1cmVUZXh0KHQpLndpZHRoKTtpZihoLmxlbmd0aD09PTApY29udGludWU7bGV0IGc9TWF0aC5tYXgoYyxoLmxlbmd0aCptKzIpO2lmKHUrZz5uLnkrbi5oKzFlLTYpYnJlYWs7bGV0IF89dStnLzI7aWYoIWkmJnQuY2hhcnRUeXBlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoYGxpbmVgKSl7bGV0IHQ9ZC5zZXJpZXM/LmxpbmVXaWR0aEVtdT09bnVsbD9NYXRoLm1heCgxLDIqcik6TWF0aC5tYXgoLjUsZC5zZXJpZXMubGluZVdpZHRoRW11L2V0KnIpO2Quc2VyaWVzPy5saW5lSGlkZGVuIT09ITAmJihlLmJlZ2luUGF0aCgpLGUubW92ZVRvKG4ueCs0LF8pLGUubGluZVRvKG4ueCs0K2wsXyksZS5zdHJva2VTdHlsZT1kLnNlcmllcz8ubGluZUNvbG9yP2AjJHtkLnNlcmllcy5saW5lQ29sb3J9YDpVbihkLmNvbG9yLC43KSxlLmxpbmVXaWR0aD10LGUuc2V0TGluZURhc2goT24oZC5zZXJpZXM/LmNoYXJ0ZXhTdHlsZT8ubGluZURhc2g/P2Bzb2xpZGAsdCkpLGUuc3Ryb2tlKCksZS5zZXRMaW5lRGFzaChbXSkpfWVsc2V7ZC5jb2xvciE9PWB0cmFuc3BhcmVudGAmJihlLmZpbGxTdHlsZT1kLmNvbG9yLGUuZmlsbFJlY3Qobi54KzQsXy1sLzIsbCxsKSk7bGV0IHQ9ZC5wb2ludD8ubGluZUhpZGRlbj8/ZC5zZXJpZXM/LmxpbmVIaWRkZW4saT1kLnBvaW50Py5saW5lQ29sb3I/P2Quc2VyaWVzPy5saW5lQ29sb3I7dCE9PSEwJiZpJiYoZS5zdHJva2VTdHlsZT1gIyR7aX1gLGUubGluZVdpZHRoPShkLnBvaW50Py5saW5lV2lkdGhFbXU/P2Quc2VyaWVzPy5saW5lV2lkdGhFbXUpPT1udWxsPy43NSpyOk1hdGgubWF4KC4yNSwoZC5wb2ludD8ubGluZVdpZHRoRW11Pz9kLnNlcmllcz8ubGluZVdpZHRoRW11Pz8wKS9ldCpyKSxlLnNldExpbmVEYXNoKE9uKGQucG9pbnQ/LmxpbmVEYXNoPz9kLnNlcmllcz8uY2hhcnRleFN0eWxlPy5saW5lRGFzaD8/YHNvbGlkYCxlLmxpbmVXaWR0aCkpLGUuc3Ryb2tlUmVjdChuLngrNCxfLWwvMixsLGwpLGUuc2V0TGluZURhc2goW10pKX1lLmZpbGxTdHlsZT10LmxlZ2VuZEZvbnRDb2xvcj9gIyR7dC5sZWdlbmRGb250Q29sb3J9YDpgIzU5NTk1OWA7bGV0IHY9Xy0oaC5sZW5ndGgtMSkqbS8yO2guZm9yRWFjaCgodCxuKT0+ZS5maWxsVGV4dCh0LGYsdituKm0pKSx1Kz1nfX1mdW5jdGlvbiBzZihlLHQsbixyLGksYSl7bGV0IG89aT8xMDA6MSxzPWUudmFsQXhpc01pbm9yVGlja01hcms/P2Bub25lYDtyZXR1cm4gWGUoe2RhdGFNaW46dCxkYXRhTWF4Om4sZXhwbGljaXRNaW46ZS52YWxNaW49PW51bGw/aT90Om51bGw6ZS52YWxNaW4qbyxleHBsaWNpdE1heDplLnZhbE1heD09bnVsbD9pP246bnVsbDplLnZhbE1heCpvLG1ham9yVW5pdDplLnZhbEF4aXNNYWpvclVuaXQ9PW51bGw/bnVsbDplLnZhbEF4aXNNYWpvclVuaXQqbyxtaW5vclVuaXQ6ZS52YWxBeGlzTWlub3JVbml0PT1udWxsP251bGw6ZS52YWxBeGlzTWlub3JVbml0Km8sYXhpc0xlblB0OnIsYXhpc09yaWVudGF0aW9uOmEsbG9nQmFzZTplLnZhbEF4aXNMb2dCYXNlLHJldmVyc2VkOmUudmFsQXhpc09yaWVudGF0aW9uPT09YG1heE1pbmAsbmVlZE1pbm9yOmUudmFsQXhpc01pbm9yR3JpZGxpbmVzPT09ITB8fHMhPT1gbm9uZWB9KX1mdW5jdGlvbiBjZihlLHQsbil7bGV0IHI9ZSE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKGUpPyhlJTM2MCszNjApJTM2MDowLGk9TnVtYmVyLmlzRmluaXRlKHQpP01hdGgubWF4KDAsTWF0aC5taW4oMSx0KSk6MCxhPU51bWJlci5pc0Zpbml0ZShuKT9NYXRoLm1heCgwLE1hdGgubWluKDEtaSxuKSk6MCxvPU1hdGguUEkvMi0ocipNYXRoLlBJLzE4MCtpKk1hdGguUEkqMikscz1vLWEqTWF0aC5QSSoyO3JldHVybntzdGFydDpNYXRoLm1pbihvLHMpLGVuZDpNYXRoLm1heChvLHMpLG1pZGRsZToobytzKS8yLGxlYWRpbmc6b319ZnVuY3Rpb24gbGYoZSl7bGV0e2Zyb250OnR9PWUsbj10Lngscj10LngrdC53LGk9ZS50b3BvbG9neS5mYXJYPT09YG1pbmA/bjpyLGE9aT09PW4/cjpuLG89ZS50b3BvbG9neS5heGlzWT09PWBtaW5gP3QueTp0LnkrdC5oLHM9bz09PXQueT90LnkrdC5oOnQueSx7bmVhckRlcHRoOmMsZmFyRGVwdGg6bH09ZS50b3BvbG9neSx1PWUucHJvamVjdChuLG8sYyksZD1lLnByb2plY3QocixvLGMpLGY9ZS5wcm9qZWN0KHIsbyxsKSxwPWUucHJvamVjdChuLG8sbCksbT1lLnByb2plY3QobixzLGwpLGg9ZS5wcm9qZWN0KHIscyxsKSxnPWUucHJvamVjdChpLG8sYyksXz1lLnByb2plY3QoaSxvLGwpLHY9ZS5wcm9qZWN0KGkscyxsKSx5PWUucHJvamVjdChpLHMsYyk7cmV0dXJue2Zsb29yOlt1LGQsZixwXSxzaWRlV2FsbDpbZyxfLHYseV0sYmFja1dhbGw6W3AsZixoLG1dLHNpZGVYOmksc2VyaWVzQXhpc1g6YSxmbG9vclk6byxvcHBvc2l0ZUZsb29yWTpzLG5lYXJEZXB0aDpjLGZhckRlcHRoOmx9fWZ1bmN0aW9uIHVmKGUsdCxuLHIsaT1gQTZBNkE2YCxhPS43NSl7bGV0IG89dCE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKHQpJiZ0Pj0wP01hdGgubWF4KC4yNSx0L2V0KnIpOmEqcjtyZXR1cm57Y29sb3I6YCMke2U/P2l9YCx3aWR0aDpvLGRhc2g6T24obj8/YHNvbGlkYCxvKX19ZnVuY3Rpb24gZGYoZSx0KXtlLnN0cm9rZVN0eWxlPXQuY29sb3IsZS5saW5lV2lkdGg9dC53aWR0aCxlLnNldExpbmVEYXNoKHQuZGFzaCl9ZnVuY3Rpb24gZmYoZSx0LG4scixpLGEsbyxzLGMpe2xldHtmcm9udDpsfT1uLHU9bC54LGQ9bC54K2wudyxmPWxmKG4pLHtzaWRlWDpwLGZsb29yWTptLG9wcG9zaXRlRmxvb3JZOmgsbmVhckRlcHRoOmcsZmFyRGVwdGg6X309Zix2PSh0LG4pPT57bj8uZmlsbEhpZGRlbj09PSEwfHwhbj8uZmlsbENvbG9yfHxIZChlLHQsYCMke24uZmlsbENvbG9yfWAsMCl9O3YoZi5mbG9vcix0LnRocmVlRD8uZmxvb3IpLHYoZi5zaWRlV2FsbCx0LnRocmVlRD8uc2lkZVdhbGwpLHYoZi5iYWNrV2FsbCx0LnRocmVlRD8uYmFja1dhbGwpO2xldCB5PSh0LGEpPT57ZGYoZSxhKTtmb3IobGV0IGEgb2YgdClpZihpPT09YGhvcml6b250YWxgKXtsZXQgdD1sLngrci5mcmFjdGlvbihhKSpsLncsaT1uLnByb2plY3QodCxtLF8pLG89bi5wcm9qZWN0KHQsaCxfKTtlLmJlZ2luUGF0aCgpLGUubW92ZVRvKGkueCxpLnkpLGUubGluZVRvKG8ueCxvLnkpLGUuc3Ryb2tlKCl9ZWxzZXtsZXQgdD1sLnkrbC5oLXIuZnJhY3Rpb24oYSkqbC5oLGk9bi5wcm9qZWN0KHAsdCxnKSxvPW4ucHJvamVjdChwLHQsXykscz1uLnByb2plY3QocD09PXU/ZDp1LHQsXyk7ZS5iZWdpblBhdGgoKSxlLm1vdmVUbyhpLngsaS55KSxlLmxpbmVUbyhvLngsby55KSxlLnN0cm9rZSgpLGUuYmVnaW5QYXRoKCksZS5tb3ZlVG8oby54LG8ueSksZS5saW5lVG8ocy54LHMueSksZS5zdHJva2UoKX19O3QudmFsQXhpc01pbm9yR3JpZGxpbmVzPT09ITAmJnkoci5taW5vclRpY2tzLHVmKHQudmFsQXhpc01pbm9yR3JpZGxpbmVDb2xvcix0LnZhbEF4aXNNaW5vckdyaWRsaW5lV2lkdGhFbXUsdC52YWxBeGlzTWlub3JHcmlkbGluZURhc2gsYyxgRDlEOUQ5YCwuNSkpLHQudmFsQXhpc01ham9yR3JpZGxpbmVzIT09ITEmJnkoci5tYWpvclRpY2tzLHVmKHQudmFsQXhpc0dyaWRsaW5lQ29sb3IsdC52YWxBeGlzR3JpZGxpbmVXaWR0aEVtdSx0LnZhbEF4aXNHcmlkbGluZURhc2gsYyxgODk4OTg5YCwxKSksZGYoZSx1ZihudWxsLG51bGwsbnVsbCxjLGA4OTg5ODlgLDEpKTtmb3IobGV0IHQ9MDt0PGE7dCsrKWlmKGk9PT1gdmVydGljYWxgKXtsZXQgcj1sLngranQodCxhLG8scykqbC53LGk9bi5wcm9qZWN0KHIsbSxnKSxjPW4ucHJvamVjdChyLG0sXyk7ZS5iZWdpblBhdGgoKSxlLm1vdmVUbyhpLngsaS55KSxlLmxpbmVUbyhjLngsYy55KSxlLnN0cm9rZSgpfWVsc2V7bGV0IHI9bC55K2p0KHQsYSxvLHMpKmwuaCxpPW4ucHJvamVjdChwLHIsZyksYz1uLnByb2plY3QocCxyLF8pO2UuYmVnaW5QYXRoKCksZS5tb3ZlVG8oaS54LGkueSksZS5saW5lVG8oYy54LGMueSksZS5zdHJva2UoKX1sZXQgYj0odCxuKT0+e2lmKCEobj8ubGluZUhpZGRlbj09PSEwfHx0Lmxlbmd0aDwyKSl7ZGYoZSx1ZihuPy5saW5lQ29sb3Isbj8ubGluZVdpZHRoRW11LG4/LmxpbmVEYXNoLGMsYDg5ODk4OWAsMSkpLGUuYmVnaW5QYXRoKCksZS5tb3ZlVG8odFswXS54LHRbMF0ueSk7Zm9yKGxldCBuPTE7bjx0Lmxlbmd0aDtuKyspZS5saW5lVG8odFtuXS54LHRbbl0ueSk7ZS5saW5lVG8odFswXS54LHRbMF0ueSksZS5jbG9zZVBhdGgoKSxlLnN0cm9rZSgpfX07YihmLmZsb29yLHQudGhyZWVEPy5mbG9vciksYihmLnNpZGVXYWxsLHQudGhyZWVEPy5zaWRlV2FsbCksYihmLmJhY2tXYWxsLHQudGhyZWVEPy5iYWNrV2FsbCksZS5zZXRMaW5lRGFzaChbXSl9ZnVuY3Rpb24gcGYoZSx0LG4scixpLGEsbyxzLGMpe2xldCBsPXlmKHQsbixyLGksYSxvLGMpLHU9Yz09PWB2ZXJ0aWNhbGA/IXQuY2F0QXhpc0hpZGRlbiYmIXQuY2F0QXhpc0xpbmVIaWRkZW46IXQudmFsQXhpc0hpZGRlbiYmIXQudmFsQXhpc0xpbmVIaWRkZW4sZD1jPT09YHZlcnRpY2FsYD8hdC52YWxBeGlzSGlkZGVuJiYhdC52YWxBeGlzTGluZUhpZGRlbjohdC5jYXRBeGlzSGlkZGVuJiYhdC5jYXRBeGlzTGluZUhpZGRlbjt1JiYoZGYoZSx1ZihjPT09YHZlcnRpY2FsYD90LmNhdEF4aXNMaW5lQ29sb3I6dC52YWxBeGlzTGluZUNvbG9yLGM9PT1gdmVydGljYWxgP3QuY2F0QXhpc0xpbmVXaWR0aEVtdTp0LnZhbEF4aXNMaW5lV2lkdGhFbXUsbnVsbCxzLGA4OTg5ODlgLDEpKSxlLmJlZ2luUGF0aCgpLGUubW92ZVRvKGwuaG9yaXpvbnRhbFN0YXJ0LngsbC5ob3Jpem9udGFsU3RhcnQueSksZS5saW5lVG8obC5ob3Jpem9udGFsRW5kLngsbC5ob3Jpem9udGFsRW5kLnkpLGUuc3Ryb2tlKCkpLGQmJihkZihlLHVmKGM9PT1gdmVydGljYWxgP3QudmFsQXhpc0xpbmVDb2xvcjp0LmNhdEF4aXNMaW5lQ29sb3IsYz09PWB2ZXJ0aWNhbGA/dC52YWxBeGlzTGluZVdpZHRoRW11OnQuY2F0QXhpc0xpbmVXaWR0aEVtdSxudWxsLHMsYDg5ODk4OWAsMSkpLGUuYmVnaW5QYXRoKCksZS5tb3ZlVG8obC52ZXJ0aWNhbFN0YXJ0LngsbC52ZXJ0aWNhbFN0YXJ0LnkpLGUubGluZVRvKGwudmVydGljYWxFbmQueCxsLnZlcnRpY2FsRW5kLnkpLGUuc3Ryb2tlKCkpLGUuc2V0TGluZURhc2goW10pfWZ1bmN0aW9uIG1mKGUsdCxuLHIpe2xldCBpPXt4OihlLngrdC54KS8yLHk6KGUueSt0LnkpLzJ9O3JldHVybiByPT09YGhvcml6b250YWxgP3t4OmkueDw9bi54Py0xOjEseTowfTp7eDowLHk6aS55PD1uLnk/LTE6MX19ZnVuY3Rpb24gaGYoZSx0LG4scixpLGEsbyxzLGMpe2lmKCF0fHx0PT09YG5vbmVgKXJldHVybjtsZXQgbD1tZihyLGksYSxvKSx1PWdmKHMsYyksZD10PT09YGNyb3NzYD91LzI6dSxmPXQ9PT1gb3V0YHx8dD09PWBjcm9zc2A/ZDowLHA9dD09PWBpbmB8fHQ9PT1gY3Jvc3NgP2Q6MDtlLmJlZ2luUGF0aCgpLGUubW92ZVRvKG4ueCtsLngqZixuLnkrbC55KmYpLGUubGluZVRvKG4ueC1sLngqcCxuLnktbC55KnApLGUuc3Ryb2tlKCl9ZnVuY3Rpb24gZ2YoZSx0KXtyZXR1cm4oZT09PWBtaW5vcmA/NDo2KSp0fWZ1bmN0aW9uIF9mKGUsdCxuKXtpZihlIT09YG91dGAmJmUhPT1gY3Jvc3NgKXJldHVybiAwO2xldCByPWdmKHQsbik7cmV0dXJuIGU9PT1gY3Jvc3NgP3IvMjpyfWZ1bmN0aW9uIHZmKGUsdCxuLHIpe2lmKHQpcmV0dXJuIHI7bGV0IGk9X2YoZSxgbWFqb3JgLG4pO3JldHVybiBNYXRoLm1heChyLGkrMypuKX1mdW5jdGlvbiB5ZihlLHQsbixyLGksYSxvKXtsZXR7ZnJvbnQ6c309dCxjPWU9Pk1hdGgubWF4KDAsTWF0aC5taW4oMSxlKSksbD10LnRvcG9sb2d5LmF4aXNYPT09YG1pbmA/cy54OnMueCtzLncsdT10LnRvcG9sb2d5LmF4aXNZPT09YG1pbmA/cy55OnMueStzLmgsZD0oKT0+e2lmKGUuY2F0QXhpc0Nyb3NzZXNBdCE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKGUuY2F0QXhpc0Nyb3NzZXNBdCkpe2xldCB0PWUuY2hhcnRUeXBlLmVuZHNXaXRoKGBQY3RgKT9lLmNhdEF4aXNDcm9zc2VzQXQqMTAwOmUuY2F0QXhpc0Nyb3NzZXNBdDtyZXR1cm4gYyhuLmZyYWN0aW9uKHQpKX1sZXQgdD1lLmNhdEF4aXNDcm9zc2VzPz9gYXV0b1plcm9gO3JldHVybiBjKHQ9PT1gbWluYD9uLmZyYWN0aW9uKG4ubWluKTp0PT09YG1heGA/bi5mcmFjdGlvbihuLm1heCk6bi5mcmFjdGlvbigwKSl9LGY9KCk9PntsZXQgdD1lLnZhbEF4aXNDcm9zc2VzQXQ7aWYodCE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKHQpKXJldHVybiBqdCh0LTEscixpLGEpO2xldCBuPWUudmFsQXhpc0Nyb3NzZXM7aWYobiE9PWBtaW5gJiZuIT09YG1heGApcmV0dXJuIG51bGw7bGV0IG89KyhuPT09YG1heGApO3JldHVybiBhPzEtbzpvfSxwPWQoKSxtPWYoKSxoPW89PT1gaG9yaXpvbnRhbGA/cy54K3Aqcy53Om09PW51bGw/bDpzLngrbSpzLncsZz1vPT09YHZlcnRpY2FsYD9zLnkrcy5oLXAqcy5oOm09PW51bGw/dTpzLnkrbSpzLmgsXz10LnRvcG9sb2d5Lm5lYXJEZXB0aDtyZXR1cm57YXhpc1g6aCxheGlzWTpnLGRlcHRoOl8saG9yaXpvbnRhbFN0YXJ0OnQucHJvamVjdChzLngsZyxfKSxob3Jpem9udGFsRW5kOnQucHJvamVjdChzLngrcy53LGcsXyksdmVydGljYWxTdGFydDp0LnByb2plY3QoaCxzLnkrcy5oLF8pLHZlcnRpY2FsRW5kOnQucHJvamVjdChoLHMueSxfKX19ZnVuY3Rpb24gYmYoZSx0LG4scixpLGEsbyxzLGMpe2xldHtmcm9udDpsfT1uLHU9eWYodCxuLHIsaSxhLG8scykse2F4aXNYOmQsYXhpc1k6ZixkZXB0aDpwfT11LG09bi5wcm9qZWN0KGwueCtsLncvMixsLnkrbC5oLzIscCksaD10LnZhbEF4aXNNaW5vclRpY2tNYXJrPz9gbm9uZWA7aWYoIXQudmFsQXhpc0hpZGRlbiYmIXQudmFsQXhpc0xpbmVIaWRkZW4pe2RmKGUsdWYodC52YWxBeGlzTGluZUNvbG9yLHQudmFsQXhpc0xpbmVXaWR0aEVtdSxudWxsLGMsYDg5ODk4OWAsMSkpO2xldCBpPWU9PnM9PT1gaG9yaXpvbnRhbGA/bi5wcm9qZWN0KGwueCtyLmZyYWN0aW9uKGUpKmwudyxmLHApOm4ucHJvamVjdChkLGwueStsLmgtci5mcmFjdGlvbihlKSpsLmgscCksYT1zPT09YGhvcml6b250YWxgP3UuaG9yaXpvbnRhbFN0YXJ0OnUudmVydGljYWxTdGFydCxvPXM9PT1gaG9yaXpvbnRhbGA/dS5ob3Jpem9udGFsRW5kOnUudmVydGljYWxFbmQ7Zm9yKGxldCBuIG9mIHIubWFqb3JUaWNrcyloZihlLHQudmFsQXhpc01ham9yVGlja01hcmssaShuKSxhLG8sbSxzPT09YHZlcnRpY2FsYD9gaG9yaXpvbnRhbGA6YHZlcnRpY2FsYCxgbWFqb3JgLGMpO2ZvcihsZXQgdCBvZiByLm1pbm9yVGlja3MpaGYoZSxoLGkodCksYSxvLG0scz09PWB2ZXJ0aWNhbGA/YGhvcml6b250YWxgOmB2ZXJ0aWNhbGAsYG1pbm9yYCxjKX1pZighdC5jYXRBeGlzSGlkZGVuJiYhdC5jYXRBeGlzTGluZUhpZGRlbil7ZGYoZSx1Zih0LmNhdEF4aXNMaW5lQ29sb3IsdC5jYXRBeGlzTGluZVdpZHRoRW11LG51bGwsYyxgODk4OTg5YCwxKSk7bGV0IHI9cz09PWB2ZXJ0aWNhbGA/dS5ob3Jpem9udGFsU3RhcnQ6dS52ZXJ0aWNhbFN0YXJ0LGg9cz09PWB2ZXJ0aWNhbGA/dS5ob3Jpem9udGFsRW5kOnUudmVydGljYWxFbmQsZz1NYXRoLm1heCgxLE1hdGguZmxvb3IodC5jYXRBeGlzVGlja01hcmtTa2lwPz8xKSk7Zm9yKGxldCB1PTA7dTxpO3UrPWcpe2xldCBnPWp0KHUsaSxhLG8pLF89cz09PWB2ZXJ0aWNhbGA/bi5wcm9qZWN0KGwueCtnKmwudyxmLHApOm4ucHJvamVjdChkLGwueStnKmwuaCxwKTtoZihlLHQuY2F0QXhpc01ham9yVGlja01hcmssXyxyLGgsbSxzPT09YHZlcnRpY2FsYD9gdmVydGljYWxgOmBob3Jpem9udGFsYCxgbWFqb3JgLGMpfWxldCBfPXQuY2F0QXhpc01pbm9yVW5pdDtpZih0LmNhdEF4aXNNaW5vclRpY2tNYXJrJiZ0LmNhdEF4aXNNaW5vclRpY2tNYXJrIT09YG5vbmVgJiZfIT1udWxsJiZOdW1iZXIuaXNGaW5pdGUoXykmJl8+MCl7bGV0IHU9dC5jYXRBeGlzTWFqb3JVbml0IT1udWxsJiZOdW1iZXIuaXNGaW5pdGUodC5jYXRBeGlzTWFqb3JVbml0KSYmdC5jYXRBeGlzTWFqb3JVbml0PjA/dC5jYXRBeGlzTWFqb3JVbml0Omcsdj1NYXRoLm1pbig1MTIsTWF0aC5jZWlsKGkvXykpO2ZvcihsZXQgZz0xO2c8djtnKyspe2xldCB2PWcqXztpZighKHY8aSkpYnJlYWs7aWYoTWF0aC5hYnModi91LU1hdGgucm91bmQodi91KSk8MWUtOSljb250aW51ZTtsZXQgeT1qdCh2LGksYSxvKSxiPXM9PT1gdmVydGljYWxgP24ucHJvamVjdChsLngreSpsLncsZixwKTpuLnByb2plY3QoZCxsLnkreSpsLmgscCk7aGYoZSx0LmNhdEF4aXNNaW5vclRpY2tNYXJrLGIscixoLG0scz09PWB2ZXJ0aWNhbGA/YHZlcnRpY2FsYDpgaG9yaXpvbnRhbGAsYG1pbm9yYCxjKX19fWUuc2V0TGluZURhc2goW10pfWZ1bmN0aW9uIHhmKGUsdCxuLHIpe2lmKCF0LnRocmVlRClyZXR1cm4hMTtsZXQgaT10LmNoYXJ0VHlwZT09PWBjbHVzdGVyZWRCYXJgfHx0LmNoYXJ0VHlwZT09PWBjbHVzdGVyZWRCYXJIYHx8dC5jaGFydFR5cGUuc3RhcnRzV2l0aChgc3RhY2tlZEJhcmApLGE9dC5jaGFydFR5cGUuZW5kc1dpdGgoYEhgKXx8dC5jaGFydFR5cGUuaW5jbHVkZXMoYEJhckhgKSxvPXQuY2hhcnRUeXBlLnN0YXJ0c1dpdGgoYHN0YWNrZWRgKSxzPWkmJiFvJiZ0LnRocmVlRC5iYXJHcm91cGluZz09PWBzdGFuZGFyZGAse3Bsb3Q6YyxsZWdlbmQ6bH09dGYoZSx0LG4scixhP2Bob3Jpem9udGFsYDpgdmVydGljYWxgKSx1PSRuKHQudGhyZWVELGMse3NjZW5lRGVwdGhTY2FsZTppP3M/LjY1Oi4xOi40LHBlcnNwZWN0aXZlVGFuZ2VudEdhaW46cz8xOjJ9KTtpZighdSlyZXR1cm4hMDtsZXQgZD10LmNoYXJ0VHlwZS5lbmRzV2l0aChgUGN0YCksZj10LnNlcmllcy5maW5kKGU9PihlLmNhdGVnb3JpZXM/Lmxlbmd0aD8/MCk+MCk/LmNhdGVnb3JpZXM/P3QuY2F0ZWdvcmllcyxwPU1hdGgubWF4KDEsZi5sZW5ndGgsLi4udC5zZXJpZXMubWFwKGU9PmUudmFsdWVzLmxlbmd0aCkpLG09dC5jYXRBeGlzT3JpZW50YXRpb249PT1gbWF4TWluYCxoPXQuY2F0QXhpc0Nyb3NzQmV0d2Vlbj09PWBiZXR3ZWVuYCxnPXQuZGlzcEJsYW5rc0FzPz9gZ2FwYCxfPXQudmFsQXhpc0xvZ0Jhc2UhPW51bGwmJk51bWJlci5pc0Zpbml0ZSh0LnZhbEF4aXNMb2dCYXNlKSYmdC52YWxBeGlzTG9nQmFzZT49Mix2PShlLG4pPT57bGV0IHI9dC5zZXJpZXNbZV0/LnZhbHVlc1tuXTtyZXR1cm4gciE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKHIpJiYoIV98fHI+MCl8fHI9PW51bGwmJihvfHxnPT09YHplcm9gKX0seT0oZSxuKT0+e2xldCByPXQuc2VyaWVzW2VdPy52YWx1ZXNbbl0/PzA7aWYoIU51bWJlci5pc0Zpbml0ZShyKSlyZXR1cm4gMDtpZighZClyZXR1cm4gcjtsZXQgaT0wO2ZvcihsZXQgZSBvZiB0LnNlcmllcyl7bGV0IHQ9ZS52YWx1ZXNbbl07dCE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKHQpJiYoaT1NYXRoLm1heChpLE1hdGguYWJzKHQpKSl9aWYoIShpPjApKXJldHVybiAwO2xldCBhPTA7Zm9yKGxldCBlIG9mIHQuc2VyaWVzKXtsZXQgdD1lLnZhbHVlc1tuXTt0IT1udWxsJiZOdW1iZXIuaXNGaW5pdGUodCkmJihhKz1NYXRoLmFicyh0KS9pKX1yZXR1cm4gYT4wP3IvaS9hKjEwMDowfSxiPShlLHQpPT57bGV0IG49ZSt0O3JldHVybiBOdW1iZXIuaXNGaW5pdGUobik/bjp0PDA/LU51bWJlci5NQVhfVkFMVUU6TnVtYmVyLk1BWF9WQUxVRX0seD0wLFM9MDtpZihvKXtmb3IobGV0IGU9MDtlPHA7ZSsrKXtsZXQgbj0wLHI9MDtmb3IobGV0IGk9MDtpPHQuc2VyaWVzLmxlbmd0aDtpKyspe2xldCB0PXkoaSxlKTt0Pj0wP249YihuLHQpOnI9YihyLHQpfXg9TWF0aC5taW4oeCxyKSxTPU1hdGgubWF4KFMsbil9ZCYmKHg9eDwwPy0xMDA6MCxTPVM+MD8xMDA6MCx4PT09MCYmUz09PTAmJihTPTEpKX1lbHNle2xldCBlPUllKHQuc2VyaWVzLmZsYXRNYXAoZT0+ZS52YWx1ZXMpLmZpbHRlcihlPT5lIT1udWxsJiZOdW1iZXIuaXNGaW5pdGUoZSkmJighX3x8ZT4wKSksXz97bWluOjEsbWF4OjEwfTp7bWluOjAsbWF4OjF9KTt4PV8/ZS5taW46TWF0aC5taW4oMCxlLm1pbiksUz1fP2UubWF4Ok1hdGgubWF4KDAsZS5tYXgpfWxldCBDPXNmKHQseCxTLChhP3UuZnJvbnQudzp1LmZyb250LmgpL3IsZCxhP2Bob3Jpem9udGFsYDpgdmVydGljYWxgKSx3PWU9Pk51bWJlci5pc0Zpbml0ZShlKT9NYXRoLm1heChDLm1pbixNYXRoLm1pbihDLm1heCxlKSk6Qy5taW47ZmYoZSx0LHUsQyxhP2Bob3Jpem9udGFsYDpgdmVydGljYWxgLHAsaCxtLHIpO2xldHtmcm9udDpUfT11LEU9TWF0aC5tYXgoMSx0LnNlcmllcy5sZW5ndGgpLEQ9W10sTz10LnNlcmllcy5tYXAoZT0+bmV3IE1hcChlLmRhdGFQb2ludE92ZXJyaWRlcz8ubWFwKGU9PltlLmlkeCxlXSk/P1tdKSksaz10LnNlcmllcy5tYXAoZT0+bmV3IE1hcChlLmRhdGFMYWJlbE92ZXJyaWRlcz8ubWFwKGU9PltlLmlkeCxlXSk/P1tdKSk7aWYoaSl7bGV0IGk9dS5wcmlzbUludGVydmFsKDAsMSwhMCksYz1bXSxsPUFycmF5KHApLmZpbGwoMCksZj1BcnJheShwKS5maWxsKDApLGg9KGE/VC5oOlQudykvcCxnPXQuYmFyR2FwV2lkdGghPW51bGwmJk51bWJlci5pc0Zpbml0ZSh0LmJhckdhcFdpZHRoKSYmdC5iYXJHYXBXaWR0aD49MD90LmJhckdhcFdpZHRoOjE1MDtmb3IobGV0IGU9MDtlPHQuc2VyaWVzLmxlbmd0aDtlKyspe2xldCBuPXQuc2VyaWVzW2VdLHg9cz91LnByaXNtSW50ZXJ2YWwoZSxFLCExKTppLFM9WG4oaCxnLHM/MDplLHM/MTpFLG98fHMpO2ZvcihsZXQgaT0wO2k8cDtpKyspe2lmKCF2KGUsaSkpY29udGludWU7bGV0IHM9eShlLGkpLHU9T1tlXS5nZXQoaSksZz11Py5maWxsSGlkZGVuPT09ITA/YHRyYW5zcGFyZW50YDp1Py5jb2xvcj8/bi5kYXRhUG9pbnRDb2xvcnM/LltpXSxFPWc9PT1gMDAwMDAwMDBgP2B0cmFuc3BhcmVudGA6Zz9gIyR7Z31gOm4uY29sb3I9PT1gMDAwMDAwMDBgP2B0cmFuc3BhcmVudGA6T2YoZSxuKSxEPXpkKG4sdSksaz11Py5saW5lQ29sb3I/P24ubGluZUNvbG9yLEE9dT8ubGluZVdpZHRoRW11Pz9uLmxpbmVXaWR0aEVtdSxqPXU/LmxpbmVEYXNoPz9uLmNoYXJ0ZXhTdHlsZT8ubGluZURhc2g/P2Bzb2xpZGAsTT1uLmNoYXJ0ZXhTdHlsZT8ubGluZUNhcD09PWBybmRgP2Byb3VuZGA6bi5jaGFydGV4U3R5bGU/LmxpbmVDYXA9PT1gc3FgP2BzcXVhcmVgOmBidXR0YCxOPW4uY2hhcnRleFN0eWxlPy5saW5lSm9pbj09PWByb3VuZGB8fG4uY2hhcnRleFN0eWxlPy5saW5lSm9pbj09PWBiZXZlbGA/bi5jaGFydGV4U3R5bGUubGluZUpvaW46YG1pdGVyYCxQPW8/cz49MD9sW2ldOmZbaV06MCxGPWIoUCxzKTtvJiYocz49MD9sW2ldPUY6ZltpXT1GKTtsZXQgST13KFApLEw9dyhGKSxSPW4udGhyZWVEU2hhcGU/P3QudGhyZWVELnNoYXBlPz9gYm94YCx6PVI9PT1gY29uZWB8fFI9PT1gcHlyYW1pZGAsZWU9Uj09PWBjb25lVG9NYXhgfHxSPT09YHB5cmFtaWRUb01heGAsQj1lPT57aWYoIXopcmV0dXJuIDE7bGV0IHQ9XyYmIShQPjApP0MubWluOlAsbj1DLmZyYWN0aW9uKHQpLHI9Qy5mcmFjdGlvbihGKSxpPUMuZnJhY3Rpb24oZSksYT1yLW47cmV0dXJuIGE9PT0wfHwhTnVtYmVyLmlzRmluaXRlKGEpfHwhTnVtYmVyLmlzRmluaXRlKGktbik/KyhlPT09dCk6TWF0aC5tYXgoMCxNYXRoLm1pbigxLDEtKGktbikvYSkpfSxWPWU9PntpZighZWUpcmV0dXJuIDE7bGV0IHQ9Rj49UD9DLm1heDpDLm1pbixuPV8/Qy5taW46MCxyPUMuZnJhY3Rpb24odCksaT1DLmZyYWN0aW9uKG4pLGE9Qy5mcmFjdGlvbihlKSxvPU1hdGguYWJzKHItaSk7cmV0dXJuIShvPjApfHwhW3IsaSxhXS5ldmVyeShOdW1iZXIuaXNGaW5pdGUpP1puKGUsQy5taW4sQy5tYXgpOk1hdGgubWF4KDAsTWF0aC5taW4oMSxNYXRoLmFicyhyLWEpL28pKX0sSD1lZT9WKEkpOkIoSSksVT1lZT9WKEwpOkIoTCk7aWYoYSl7bGV0IHQ9VC54K0MuZnJhY3Rpb24oSSkqVC53LG49VC54K0MuZnJhY3Rpb24oTCkqVC53LGE9bT9wLTEtaTppLG89VC55K2EqaCtTLm9mZnNldDtjLnB1c2goe3g6TWF0aC5taW4odCxuKSx5Om8sd2lkdGg6TWF0aC5hYnMobi10KSxoZWlnaHQ6Uy5zaXplLG5lYXJEZXB0aDp4Lm5lYXIsZmFyRGVwdGg6eC5mYXIsY2F0ZWdvcnlJbmRleDppLHNlcmllc0luZGV4OmUsY29sb3I6RSxzaGFwZTpSLGJhc2VDb29yZDp0LGVuZENvb3JkOm4sYmFzZVNjYWxlOkgsZW5kU2NhbGU6VSxvbWl0QmFzZUNhcDohMSxvbWl0RW5kQ2FwOiExLG91dGxpbmU6RCxvdXRsaW5lQ29sb3I6az9gIyR7a31gOmByZ2JhKDAsMCwwLDAuNDIpYCxvdXRsaW5lV2lkdGg6QT09bnVsbD8uNzUqci90dDpMZChBLHIpLG91dGxpbmVEYXNoOmosb3V0bGluZUNhcDpNLG91dGxpbmVKb2luOk4sbGFiZWxWYWx1ZTpkP3MvMTAwOnN9KX1lbHNle2xldCB0PVQueStULmgtQy5mcmFjdGlvbihJKSpULmgsbj1ULnkrVC5oLUMuZnJhY3Rpb24oTCkqVC5oLGE9bT9wLTEtaTppLG89VC54K2EqaCtTLm9mZnNldDtjLnB1c2goe3g6byx5Ok1hdGgubWluKHQsbiksd2lkdGg6Uy5zaXplLGhlaWdodDpNYXRoLmFicyhuLXQpLG5lYXJEZXB0aDp4Lm5lYXIsZmFyRGVwdGg6eC5mYXIsY2F0ZWdvcnlJbmRleDppLHNlcmllc0luZGV4OmUsY29sb3I6RSxzaGFwZTpSLGJhc2VDb29yZDp0LGVuZENvb3JkOm4sYmFzZVNjYWxlOkgsZW5kU2NhbGU6VSxvbWl0QmFzZUNhcDohMSxvbWl0RW5kQ2FwOiExLG91dGxpbmU6RCxvdXRsaW5lQ29sb3I6az9gIyR7a31gOmByZ2JhKDAsMCwwLDAuNDIpYCxvdXRsaW5lV2lkdGg6QT09bnVsbD8uNzUqci90dDpMZChBLHIpLG91dGxpbmVEYXNoOmosb3V0bGluZUNhcDpNLG91dGxpbmVKb2luOk4sbGFiZWxWYWx1ZTpkP3MvMTAwOnN9KX19fWlmKG8pe2xldCBlPVJkKGMscCk7Zm9yKGxldCB0PTA7dDxwO3QrKyl7bGV0IG49ZVt0XTtmb3IobGV0IGUgb2ZbLTEsMV0pe2xldCB0PW4uZmlsdGVyKHQ9Pk1hdGguc2lnbih0LmxhYmVsVmFsdWUpPT09ZSYmIWpmKHQuY29sb3IpJiZNYXRoLmFicyh0LmVuZENvb3JkLXQuYmFzZUNvb3JkKT4xZS05KS5zb3J0KChlLHQpPT5lLnNlcmllc0luZGV4LXQuc2VyaWVzSW5kZXgpO2ZvcihsZXQgZT0wO2UrMTx0Lmxlbmd0aDtlKyspe2xldCBuPXRbZV0scj10W2UrMV0saT0xZS04Kk1hdGgubWF4KDEsTWF0aC5hYnMobi5lbmRDb29yZCksTWF0aC5hYnMoci5iYXNlQ29vcmQpKTtuLnNoYXBlIT09ci5zaGFwZXx8TWF0aC5hYnMobi5lbmRDb29yZC1yLmJhc2VDb29yZCk+aXx8TWF0aC5hYnMobi5lbmRTY2FsZS1yLmJhc2VTY2FsZSk+MWUtOXx8bi5uZWFyRGVwdGghPT1yLm5lYXJEZXB0aHx8bi5mYXJEZXB0aCE9PXIuZmFyRGVwdGh8fChuLm9taXRFbmRDYXA9ITAsci5vbWl0QmFzZUNhcD0hMCl9fWxldCByPW4uZmluZChlPT5lLmxhYmVsVmFsdWU+MCYmIWpmKGUuY29sb3IpKSxpPW4uZmluZChlPT5lLmxhYmVsVmFsdWU8MCYmIWpmKGUuY29sb3IpKTtpZihyJiZpKXtsZXQgZT0xZS04Kk1hdGgubWF4KDEsTWF0aC5hYnMoci5iYXNlQ29vcmQpLE1hdGguYWJzKGkuYmFzZUNvb3JkKSk7ci5zaGFwZT09PWkuc2hhcGUmJk1hdGguYWJzKHIuYmFzZUNvb3JkLWkuYmFzZUNvb3JkKTw9ZSYmTWF0aC5hYnMoci5iYXNlU2NhbGUtaS5iYXNlU2NhbGUpPD0xZS05JiZyLm5lYXJEZXB0aD09PWkubmVhckRlcHRoJiZyLmZhckRlcHRoPT09aS5mYXJEZXB0aCYmKHIub21pdEJhc2VDYXA9ITAsaS5vbWl0QmFzZUNhcD0hMCl9fX1sZXQgeD17cmVtYWluaW5nOnhkLGV4Y2VlZGVkOiExfSxTPWMuZmxhdE1hcChlPT5XZCh1LGUuc2hhcGUsYSxlLngsZS55LGUud2lkdGgsZS5oZWlnaHQsZS5iYXNlQ29vcmQsZS5lbmRDb29yZCxlLm5lYXJEZXB0aCxlLmZhckRlcHRoLGUuY29sb3IsZS5iYXNlU2NhbGUsZS5lbmRTY2FsZSxlLm9taXRCYXNlQ2FwLGUub21pdEVuZENhcCxlLm91dGxpbmUmJmUub3V0bGluZUNvbG9yP3tjb2xvcjplLm91dGxpbmVDb2xvcix3aWR0aDplLm91dGxpbmVXaWR0aCxkYXNoOk9uKGUub3V0bGluZURhc2gsZS5vdXRsaW5lV2lkdGgpLGNhcDplLm91dGxpbmVDYXAsam9pbjplLm91dGxpbmVKb2lufTp2b2lkIDAseCkpO2lmKHguZXhjZWVkZWQpcmV0dXJuIFlkKGUsbiksITA7Zm9yKGxldCB0IG9mIGZkKFMpKXFkKGUsdCk7Zm9yKGxldCBpIG9mIGMpe2xldCBvPXQuc2VyaWVzW2kuc2VyaWVzSW5kZXhdLHM9YT91LnByb2plY3QoaS5lbmRDb29yZCxpLnkraS5oZWlnaHQvMiwoaS5uZWFyRGVwdGgraS5mYXJEZXB0aCkvMik6dS5wcm9qZWN0KGkueCtpLndpZHRoLzIsaS5lbmRDb29yZCwoaS5uZWFyRGVwdGgraS5mYXJEZXB0aCkvMiksYz1rW2kuc2VyaWVzSW5kZXhdLmdldChpLmNhdGVnb3J5SW5kZXgpO2VmKHQsbyxjKSYmRC5wdXNoKCgpPT4kZChlLHQsbyxpLnNlcmllc0luZGV4LGkuY2F0ZWdvcnlJbmRleCxpLmxhYmVsVmFsdWUscyxuLHIsMCx2b2lkIDAsYyxgdGAscywhMCx0LnZhbEF4aXNEaXNwbGF5VW5pdHMpKX19ZWxzZXtsZXQgaT10LnNlcmllcy5tYXAoKCk9PkFycmF5KHApLmZpbGwoMCkpLGE9dC5zZXJpZXMubWFwKCgpPT5BcnJheShwKS5maWxsKDApKTtpZihvKXtsZXQgZT1BcnJheShwKS5maWxsKDApLG49QXJyYXkocCkuZmlsbCgwKTtmb3IobGV0IHI9MDtyPHQuc2VyaWVzLmxlbmd0aDtyKyspZm9yKGxldCB0PTA7dDxwO3QrKyl7bGV0IG89eShyLHQpLHM9bz49MD9lW3RdOm5bdF07aVtyXVt0XT1zLGFbcl1bdF09YihzLG8pLG8+PTA/ZVt0XT1iKGVbdF0sbyk6blt0XT1iKG5bdF0sbyl9fWxldCBzPWU9PntsZXQgdD11LnNlcmllc0RlcHRoKGUsRSxvKSxuPTAscj0wO2ZvcihsZXQgaT0wO2k8cDtpKyspe2lmKCF2KGUsaSkpY29udGludWU7bGV0IHM9bz9hW2VdW2ldOnkoZSxpKSxjPVQueCtqdChpLHAsaCxtKSpULncsbD1ULnkrVC5oLUMuZnJhY3Rpb24odyhzKSkqVC5oO24rPXUuY2FtZXJhRGVwdGgoYyxsLHQpLHIrK31yZXR1cm4gcj4wP24vcjotMS8wfSxjPXQuc2VyaWVzLm1hcCgoZSx0KT0+dCkuc29ydCgoZSx0KT0+cyhlKS1zKHQpfHx0LWUpLGw9W10sZj1bXSxfPSExO2ZvcihsZXQgcyBvZiBjKXtpZihfKWJyZWFrO2xldCBjPXQuc2VyaWVzW3NdLGI9T2YocyxjKSx4PW8/dS5wcmlzbUludGVydmFsKDAsMSwhMCk6dS5wcmlzbUludGVydmFsKHMsRSwhMSksUz1ULngrVC53LzIsdz1ULnkrVC5oLzIsQT11LmNhbWVyYURlcHRoKFMsdyx4Lm5lYXIpPj11LmNhbWVyYURlcHRoKFMsdyx4LmZhcik/eC5uZWFyOnguZmFyLGo9W10sTT1bXSxOPVtdLFA9W10sRj1bXSxJPVtdLEw9W10sUj1bXSx6PVtdLGVlPVtdO2ZvcihsZXQgZT0wO2U8cDtlKyspe2lmKCF2KHMsZSkpe2oucHVzaChudWxsKSxNLnB1c2gobnVsbCksTi5wdXNoKG51bGwpLFAucHVzaChudWxsKSxGLnB1c2gobnVsbCksSS5wdXNoKG51bGwpLEwucHVzaChudWxsKSxSLnB1c2gobnVsbCksei5wdXNoKG51bGwpLGVlLnB1c2gobnVsbCk7Y29udGludWV9bGV0IG49bz9hW3NdW2VdOnkocyxlKSxyPW8/aVtzXVtlXTowLGM9VC54K2p0KGUscCxoLG0pKlQudyxsPUMuZnJhY3Rpb24obiksZD1DLmZyYWN0aW9uKHIpLGY9TnVtYmVyLmlzRmluaXRlKGQpP2Q6cjw9Qy5taW4/MDoxLGc9TnVtYmVyLmlzRmluaXRlKGwpJiZsPj0wJiZsPD0xLF89TnVtYmVyLmlzRmluaXRlKGwpP01hdGgubWF4KDAsTWF0aC5taW4oMSxsKSk6bjw9Qy5taW4/MDoxLGI9VC55K1QuaC1fKlQuaCx4PVQueStULmgtTWF0aC5tYXgoMCxNYXRoLm1pbigxLGYpKSpULmg7ai5wdXNoKHQuY2hhcnRUeXBlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoYGFyZWFgKXx8Zz91LnByb2plY3QoYyxiLEEpOm51bGwpLE0ucHVzaCh1LnByb2plY3QoYyx4LEEpKSxOLnB1c2goZz91LmNhbWVyYURlcHRoKGMsYixBKTpudWxsKSxQLnB1c2godS5jYW1lcmFEZXB0aChjLHgsQSkpLEYucHVzaChuKSxJLnB1c2goYyksTC5wdXNoKGIpLFIucHVzaCh4KSx6LnB1c2gobCksZWUucHVzaChmKX1sZXQgQj1bXSxWPW51bGw7Zm9yKGxldCBlPTA7ZTxqLmxlbmd0aDtlKyspe2xldCB0PWpbZV0sbj1NW2VdO2lmKCF0fHwhbil7Zz09PWBnYXBgJiYoViYmQi5wdXNoKFYpLFY9bnVsbCk7Y29udGludWV9Vj8/PXt1cHBlcjpbXSxsb3dlcjpbXSx1cHBlckRlcHRoczpbXSxsb3dlckRlcHRoczpbXSxpbmRpY2VzOltdLHNjZW5lWHM6W10sdXBwZXJZczpbXSxsb3dlcllzOltdLHVwcGVyRnJhY3Rpb25zOltdLGxvd2VyRnJhY3Rpb25zOltdfSxWLnVwcGVyLnB1c2godCksVi5sb3dlci5wdXNoKG4pLFYudXBwZXJEZXB0aHMucHVzaChOW2VdPz8wKSxWLmxvd2VyRGVwdGhzLnB1c2goUFtlXT8/MCksVi5pbmRpY2VzLnB1c2goZSksVi5zY2VuZVhzLnB1c2goSVtlXT8/MCksVi51cHBlcllzLnB1c2goTFtlXT8/MCksVi5sb3dlcllzLnB1c2goUltlXT8/MCksVi51cHBlckZyYWN0aW9ucy5wdXNoKHpbZV0/PzApLFYubG93ZXJGcmFjdGlvbnMucHVzaChlZVtlXT8/MCl9ViYmQi5wdXNoKFYpO2xldCBIPVtdO2lmKHQuY2hhcnRUeXBlLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoYGFyZWFgKSlmb3IobGV0IHQgb2YgQil7bGV0IG49bnVsbDtmb3IobGV0IHI9MDtyKzE8dC51cHBlci5sZW5ndGg7cisrKXtsZXQgaT1sZCh0Lmxvd2VyRnJhY3Rpb25zW3JdLHQubG93ZXJGcmFjdGlvbnNbcisxXSx0LnVwcGVyRnJhY3Rpb25zW3JdLHQudXBwZXJGcmFjdGlvbnNbcisxXSk7Zm9yKGxldCBhPTA7YTxpLmxlbmd0aDthKyspe2xldCBvPWlbYV0scz10LnNjZW5lWHNbcl0rKHQuc2NlbmVYc1tyKzFdLXQuc2NlbmVYc1tyXSkqby5zdGFydFQsYz10LnNjZW5lWHNbcl0rKHQuc2NlbmVYc1tyKzFdLXQuc2NlbmVYc1tyXSkqby5lbmRULGQ9VC55K1QuaC1vLmxvd2VyU3RhcnQqVC5oLGY9VC55K1QuaC1vLmxvd2VyRW5kKlQuaCxwPVQueStULmgtby51cHBlclN0YXJ0KlQuaCxtPVQueStULmgtby51cHBlckVuZCpULmgsaD17Li4udS5wcm9qZWN0KHMscCxBKSxjYW1lcmFEZXB0aDp1LmNhbWVyYURlcHRoKHMscCxBKSxjYW1lcmFXZWlnaHQ6dS5jYW1lcmFQcm9qZWN0aW9uV2VpZ2h0KHMscCxBKX0sZz17Li4udS5wcm9qZWN0KGMsbSxBKSxjYW1lcmFEZXB0aDp1LmNhbWVyYURlcHRoKGMsbSxBKSxjYW1lcmFXZWlnaHQ6dS5jYW1lcmFQcm9qZWN0aW9uV2VpZ2h0KGMsbSxBKX07biE9bnVsbCYmTWF0aC5oeXBvdChuLmF0KC0xKS54LWgueCxuLmF0KC0xKS55LWgueSk8PTFlLTg/bi5wdXNoKGcpOihuJiZuLmxlbmd0aD49MiYmSC5wdXNoKG4pLG49W2gsZ10pO2xldCB2PVVkKHUscyxjLGQsZixwLG0seC5uZWFyLHguZmFyLGIscj09PTAmJmE9PT0wJiZvLnN0YXJ0VD09PTAscisyPT09dC51cHBlci5sZW5ndGgmJmErMT09PWkubGVuZ3RoJiZvLmVuZFQ9PT0xKTtmb3IobGV0IHQgb2Ygdil7aWYobC5sZW5ndGg+PTFlNCl7Xz0hMDticmVha31sLnB1c2goe3BvaW50czp0LnBvaW50cyxjYW1lcmFEZXB0aDp0LmNhbWVyYURlcHRoLGNhbWVyYURlcHRoczp0LmNhbWVyYURlcHRocyxjYW1lcmFXZWlnaHRzOnQuY2FtZXJhV2VpZ2h0cyxsYXllcjowLHBhaW50OigpPT5xZChlLHQpfSl9aWYoXylicmVha31pZihfKWJyZWFrfWlmKG4mJm4ubGVuZ3RoPj0yJiZILnB1c2gobiksXylicmVha31sZXQgVT1bXTtpZighdC5jaGFydFR5cGUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyhgYXJlYWApKXtsZXQgZT1bXSx0PW51bGw7Zm9yKGxldCBuPTA7bjxwO24rKyl7bGV0IHI9RltuXSxpPXI9PW51bGw/TmFOOkMuZnJhY3Rpb24ocik7aWYocj09bnVsbHx8IU51bWJlci5pc0Zpbml0ZShpKSl7Zz09PWBnYXBgJiZ0JiYoZS5wdXNoKHQpLHQ9bnVsbCk7Y29udGludWV9dD8/PVtdLHQucHVzaCh7eDpULngranQobixwLGgsbSkqVC53LGZyYWN0aW9uOml9KX10JiZlLnB1c2godCk7bGV0IG49ZT0+e2xldCB0PU1hdGgubWF4KDAsTWF0aC5taW4oMSxlLmZyYWN0aW9uKSksbj1ULnkrVC5oLXQqVC5oO3JldHVybnsuLi51LnByb2plY3QoZS54LG4sQSksY2FtZXJhRGVwdGg6dS5jYW1lcmFEZXB0aChlLngsbixBKSxjYW1lcmFXZWlnaHQ6dS5jYW1lcmFQcm9qZWN0aW9uV2VpZ2h0KGUueCxuLEEpfX0scj1lPT57ZSYmZS5wYXRoLmxlbmd0aD49MiYmVS5wdXNoKGUpfTtmb3IobGV0IHQgb2YgZSl7aWYodC5sZW5ndGg8Miljb250aW51ZTtsZXQgZT1bdFswXV07Zm9yKGxldCBuPTA7bisxPHQubGVuZ3RoO24rKyl7bGV0IHI9dFtuLTFdPz90W25dLGk9dFtuXSxhPXRbbisxXSxvPXRbbisyXT8/YTtpZihjLnNtb290aCE9PSEwfHx0Lmxlbmd0aDwzKXtlLnB1c2goYSk7Y29udGludWV9bGV0IHM9e3g6aS54KyhhLngtci54KS82LGZyYWN0aW9uOmkuZnJhY3Rpb24rKGEuZnJhY3Rpb24tci5mcmFjdGlvbikvNn0sbD17eDphLngtKG8ueC1pLngpLzYsZnJhY3Rpb246YS5mcmFjdGlvbi0oby5mcmFjdGlvbi1pLmZyYWN0aW9uKS82fTtmb3IobGV0IHQ9MTt0PD0xMjt0Kyspe2xldCBuPXQvMTIscj0xLW47ZS5wdXNoKHt4OnIqcipyKmkueCszKnIqcipuKnMueCszKnIqbipuKmwueCtuKm4qbiphLngsZnJhY3Rpb246cipyKnIqaS5mcmFjdGlvbiszKnIqcipuKnMuZnJhY3Rpb24rMypyKm4qbipsLmZyYWN0aW9uK24qbipuKmEuZnJhY3Rpb259KX19bGV0IGk9bnVsbCxhPTA7Zm9yKGxldCB0PTA7dCsxPGUubGVuZ3RoO3QrKyl7bGV0IG89ZVt0XSxzPWVbdCsxXSxjPWU9PnUucHJvamVjdChlLngsVC55K1QuaC1lLmZyYWN0aW9uKlQuaCxBKSxsPWMobyksZD1jKHMpLGY9TWF0aC5oeXBvdChkLngtbC54LGQueS1sLnkpLHA9TnVtYmVyLmlzRmluaXRlKGYpP2Y6TWF0aC5oeXBvdChzLngtby54LChzLmZyYWN0aW9uLW8uZnJhY3Rpb24pKlQuaCksbT1jZChvLmZyYWN0aW9uLHMuZnJhY3Rpb24pO2lmKCFtfHxtLmVuZFQtbS5zdGFydFQ8PTFlLTEyKXtyKGkpLGk9bnVsbCxhKz1wO2NvbnRpbnVlfWxldCBoPWU9Pih7eDpvLngrKHMueC1vLngpKmUsZnJhY3Rpb246by5mcmFjdGlvbisocy5mcmFjdGlvbi1vLmZyYWN0aW9uKSplfSksZz1jKGgobS5zdGFydFQpKSxfPU1hdGguaHlwb3QoZy54LWwueCxnLnktbC55KSx2PW4oaChtLnN0YXJ0VCkpLHk9bihoKG0uZW5kVCkpO2khPW51bGwmJk1hdGguaHlwb3QoaS5wYXRoLmF0KC0xKS54LXYueCxpLnBhdGguYXQoLTEpLnktdi55KTw9MWUtOD8oaS5wYXRoLnB1c2goeSksaS5lbmRDbGlwcGVkPXQrMTxlLmxlbmd0aC0xfHxtLmVuZFQ8MSk6KHIoaSksaT17cGF0aDpbdix5XSxzdGFydENsaXBwZWQ6dD4wfHxtLnN0YXJ0VD4wLGVuZENsaXBwZWQ6dCsxPGUubGVuZ3RoLTF8fG0uZW5kVDwxLGRhc2hPZmZzZXQ6YSsoTnVtYmVyLmlzRmluaXRlKF8pP186cCptLnN0YXJ0VCl9KSxhKz1wfXIoaSl9fWxldCB0ZT10LmNoYXJ0VHlwZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGBhcmVhYCksVz1jLmxpbmVIaWRkZW4hPW51bGx8fGMubGluZUNvbG9yIT1udWxsfHxjLmxpbmVXaWR0aEVtdSE9bnVsbHx8Yy5jaGFydGV4U3R5bGU/LmxpbmVIaWRkZW4hPW51bGx8fGMuY2hhcnRleFN0eWxlPy5saW5lQ29sb3JzPy5zb21lKEJvb2xlYW4pfHxjLmNoYXJ0ZXhTdHlsZT8ubGluZVdpZHRoRW11IT1udWxsfHxjLmNoYXJ0ZXhTdHlsZT8ubGluZURhc2ghPW51bGx8fGMuY2hhcnRleFN0eWxlPy5saW5lQ2FwIT1udWxsfHxjLmNoYXJ0ZXhTdHlsZT8ubGluZUpvaW4hPW51bGw7aWYoYy5saW5lSGlkZGVuIT09ITAmJighdGV8fFcpKXtsZXQgdD1jLmxpbmVDb2xvcj9gIyR7Yy5saW5lQ29sb3J9YDpVbihiLC43KSxuPWMubGluZVdpZHRoRW11P01hdGgubWF4KC41LGMubGluZVdpZHRoRW11L2V0KSpyOnRlPy43NSpyOk1hdGgubWF4KDEsMipyKSxpPU9uKGMuY2hhcnRleFN0eWxlPy5saW5lRGFzaD8/YHNvbGlkYCxuKSxhPWMuY2hhcnRleFN0eWxlPy5saW5lQ2FwPT09YHJuZGA/YHJvdW5kYDpjLmNoYXJ0ZXhTdHlsZT8ubGluZUNhcD09PWBzcWA/YHNxdWFyZWA6YGJ1dHRgLG89Yy5jaGFydGV4U3R5bGU/LmxpbmVKb2luPT09YHJvdW5kYHx8Yy5jaGFydGV4U3R5bGU/LmxpbmVKb2luPT09YGJldmVsYD9jLmNoYXJ0ZXhTdHlsZS5saW5lSm9pbjpgbWl0ZXJgLHM9KHIscyxjPXMsdT0wKT0+e2xldCBkPXlkKHIse3dpZHRoOm4sZGFzaDppLGRhc2hPZmZzZXQ6dSxsaW5lQ2FwOmEsc3RhcnRDYXA6cyxlbmRDYXA6YyxsaW5lSm9pbjpvfSk7aWYoZD09bnVsbCl7Xz0hMDtyZXR1cm59aWYobC5sZW5ndGgrZC5sZW5ndGg+MWU0KXtfPSEwO3JldHVybn1mb3IobGV0IG4gb2YgZClsLnB1c2goe3BvaW50czpuLnBvaW50cyxjYW1lcmFEZXB0aDpuLmNhbWVyYURlcHRoLGNhbWVyYURlcHRoczpuLmNhbWVyYURlcHRocyxjYW1lcmFXZWlnaHRzOm4uY2FtZXJhV2VpZ2h0cyxsYXllcjoxLHBhaW50OigpPT5KZChlLG4sdCl9KX07aWYodGUpZm9yKGxldCBlIG9mIEgpcyhlLGEpO2Vsc2UgZm9yKGxldCBlIG9mIFUpcyhlLnBhdGgsZS5zdGFydENsaXBwZWQ/YGJ1dHRgOmEsZS5lbmRDbGlwcGVkP2BidXR0YDphLGUuZGFzaE9mZnNldCl9bGV0IG5lPWMuZGF0YVBvaW50T3ZlcnJpZGVzPy5zb21lKGU9PmUubWFya2VyU3ltYm9sIT1udWxsJiZlLm1hcmtlclN5bWJvbCE9PWBub25lYCk9PT0hMDtpZih0LmNoYXJ0VHlwZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGBsaW5lYCkmJihjLnNob3dNYXJrZXI9PT0hMHx8bmUpKWZvcihsZXQgdD0wO3Q8ai5sZW5ndGg7dCsrKXtsZXQgbj1qW3RdO2lmKCFuKWNvbnRpbnVlO2xldCBpPU9bc10uZ2V0KHQpLGE9aT8ubWFya2VyU3ltYm9sPz8oYy5zaG93TWFya2VyPT09ITA/Yy5tYXJrZXJTeW1ib2w/P2BjaXJjbGVgOmBub25lYCk7aWYoYT09PWBub25lYCljb250aW51ZTtsZXQgbz1pPy5tYXJrZXJTaXplPz9jLm1hcmtlclNpemU/PzUsbD1pPy5tYXJrZXJGaWxsPz9jLm1hcmtlckZpbGw/P2MuY29sb3I/P1RmW3MlVGYubGVuZ3RoXSx1PWk/Lm1hcmtlckxpbmU/P2MubWFya2VyTGluZT8/Yy5saW5lQ29sb3I/P2MuY29sb3I/P1RmW3MlVGYubGVuZ3RoXSxkPShpPy5tYXJrZXJMaW5lV2lkdGhFbXU/P2MubWFya2VyTGluZVdpZHRoRW11KT09bnVsbD9NYXRoLm1heCguNzUsYy5saW5lV2lkdGhFbXU9PW51bGw/cjpjLmxpbmVXaWR0aEVtdS9ldCpyKTpNYXRoLm1heCguMjUsKGk/Lm1hcmtlckxpbmVXaWR0aEVtdT8/Yy5tYXJrZXJMaW5lV2lkdGhFbXU/PzApL2V0KnIpO2YucHVzaCgoKT0+UWQoZSxuLGEsTWF0aC5tYXgoMixvKSpyLGw9PT1gMDAwMDAwMDBgP2B0cmFuc3BhcmVudGA6YCMke2x9YCxgIyR7dX1gLGQpKX1mb3IobGV0IGk9MDtpPGoubGVuZ3RoO2krKyl7bGV0IGE9altpXTtpZighYSljb250aW51ZTtsZXQgbz15KHMsaSksbD1PW3NdLmdldChpKSx1PWw/Lm1hcmtlclNpemU/P2MubWFya2VyU2l6ZT8/NSxmPWtbc10uZ2V0KGkpO2VmKHQsYyxmKSYmRC5wdXNoKCgpPT4kZChlLHQsYyxzLGksZD9vLzEwMDpvLGEsbixyLGMuc2hvd01hcmtlcj09PSEwfHxsPy5tYXJrZXJTeW1ib2whPW51bGw/dSpyLzI6MCx2b2lkIDAsZixgdGAsYSwhMCx0LnZhbEF4aXNEaXNwbGF5VW5pdHMpKX19aWYoXylyZXR1cm4gWWQoZSxuKSwhMDtmb3IobGV0IGUgb2YgZmQobCkpZS5wYWludCgpO2ZvcihsZXQgZSBvZiBmKWUoKX1wZihlLHQsdSxDLHAsaCxtLHIsYT9gaG9yaXpvbnRhbGA6YHZlcnRpY2FsYCksYmYoZSx0LHUsQyxwLGgsbSxhP2Bob3Jpem9udGFsYDpgdmVydGljYWxgLHIpLGFmKGUsdCxuLHUsQyxwLGgsbSxhP2Bob3Jpem9udGFsYDpgdmVydGljYWxgLHIpO2xldCBBPXlmKHQsdSxDLHAsaCxtLGE/YGhvcml6b250YWxgOmB2ZXJ0aWNhbGApLGo9KGUsdCk9PntpZih0IT09YGxvd2AmJnQhPT1gaGlnaGApcmV0dXJuIEE7bGV0IG49dS50b3BvbG9neS5uZWFyRGVwdGgscj1BLmF4aXNYLGk9QS5heGlzWTtpZihlPT09YHZhbHVlYD09PWEpe2xldCBlPVQueSxyPVQueStULmgsYT11LnByb2plY3QoVC54K1Qudy8yLGUsbiksbz11LnByb2plY3QoVC54K1Qudy8yLHIsbikscz1hLnk+PW8ueT9lOnI7aT10PT09YGxvd2A/czpzPT09ZT9yOmV9ZWxzZXtsZXQgZT1ULngsaT1ULngrVC53LGE9dS5wcm9qZWN0KGUsVC55K1QuaC8yLG4pLG89dS5wcm9qZWN0KGksVC55K1QuaC8yLG4pLHM9YS54PD1vLng/ZTppO3I9dD09PWBsb3dgP3M6cz09PWU/aTplfXJldHVybntheGlzWDpyLGF4aXNZOmksZGVwdGg6bixob3Jpem9udGFsU3RhcnQ6dS5wcm9qZWN0KFQueCxpLG4pLGhvcml6b250YWxFbmQ6dS5wcm9qZWN0KFQueCtULncsaSxuKSx2ZXJ0aWNhbFN0YXJ0OnUucHJvamVjdChyLFQueStULmgsbiksdmVydGljYWxFbmQ6dS5wcm9qZWN0KHIsVC55LG4pfX0sTT1qKGB2YWx1ZWAsdC52YWxBeGlzVGlja0xhYmVsUG9zKSxOPWooYGNhdGVnb3J5YCx0LmNhdEF4aXNUaWNrTGFiZWxQb3MpLFA9aGUodC52YWxBeGlzRm9udFNpemVIcHQscik/PzkqcjtpZihlLmZvbnQ9YCR7dC52YWxBeGlzRm9udEl0YWxpYz9gaXRhbGljIGA6YGB9JHt0LnZhbEF4aXNGb250Qm9sZD9gYm9sZCBgOmBgfSR7UH1weCAke2tmKHQudmFsQXhpc0ZvbnRGYWNlKX1gLGUuZmlsbFN0eWxlPXQudmFsQXhpc0ZvbnRDb2xvcj9gIyR7dC52YWxBeGlzRm9udENvbG9yfWA6YCM1OTU5NTlgLGUudGV4dEFsaWduPWE/YGNlbnRlcmA6YHJpZ2h0YCxlLnRleHRCYXNlbGluZT1hP2B0b3BgOmBtaWRkbGVgLCF0LnZhbEF4aXNIaWRkZW4mJnQudmFsQXhpc1RpY2tMYWJlbFBvcyE9PWBub25lYCl7bGV0e2F4aXNYOm4sYXhpc1k6aSxkZXB0aDpvfT1NLHM9dS5wcm9qZWN0KFQueCtULncvMixULnkrVC5oLzIsbyksYz1tZihhP00uaG9yaXpvbnRhbFN0YXJ0Ok0udmVydGljYWxTdGFydCxhP00uaG9yaXpvbnRhbEVuZDpNLnZlcnRpY2FsRW5kLHMsYT9gdmVydGljYWxgOmBob3Jpem9udGFsYCk7ZS50ZXh0QWxpZ249TWF0aC5hYnMoYy54KTwuMj9gY2VudGVyYDpjLng8MD9gcmlnaHRgOmBsZWZ0YCxlLnRleHRCYXNlbGluZT1NYXRoLmFicyhjLnkpPC4yP2BtaWRkbGVgOmMueTwwP2Bib3R0b21gOmB0b3BgO2xldCBsPXZmKHQudmFsQXhpc01ham9yVGlja01hcmssdC52YWxBeGlzTGluZUhpZGRlbixyLDUpLGY9dC52YWxBeGlzRGlzcGxheVVuaXRzPy5kaXZpc29yO2ZvcihsZXQgciBvZiBDLm1ham9yVGlja3Mpe2xldCBzPWE/dS5wcm9qZWN0KFQueCtDLmZyYWN0aW9uKHIpKlQudyxpLG8pOnUucHJvamVjdChuLFQueStULmgtQy5mcmFjdGlvbihyKSpULmgsbyk7ZS5maWxsVGV4dCh5dChkP3IvMTAwOmYhPW51bGwmJk51bWJlci5pc0Zpbml0ZShmKSYmZj4wP3IvZjpyLGQ/dC52YWxBeGlzRm9ybWF0Q29kZT8/YDAlYDp0LnZhbEF4aXNGb3JtYXRDb2RlLHQuZGF0ZTE5MDQpLHMueCtjLngqbCxzLnkrYy55KmwpfX1sZXQgRj1oZSh0LmNhdEF4aXNGb250U2l6ZUhwdCxyKT8/OSpyO2lmKGUuZm9udD1gJHt0LmNhdEF4aXNGb250SXRhbGljP2BpdGFsaWMgYDpgYH0ke3QuY2F0QXhpc0ZvbnRCb2xkP2Bib2xkIGA6YGB9JHtGfXB4ICR7a2YodC5jYXRBeGlzRm9udEZhY2UpfWAsZS5maWxsU3R5bGU9dC5jYXRBeGlzRm9udENvbG9yP2AjJHt0LmNhdEF4aXNGb250Q29sb3J9YDpgIzU5NTk1OWAsIXQuY2F0QXhpc0hpZGRlbiYmdC5jYXRBeGlzVGlja0xhYmVsUG9zIT09YG5vbmVgKXtsZXQgbj12Zih0LmNhdEF4aXNNYWpvclRpY2tNYXJrLHQuY2F0QXhpc0xpbmVIaWRkZW4sciw2KSxpPUFycmF5LmZyb20oe2xlbmd0aDpwfSwoZSxuKT0+YnQoU3RyaW5nKGZbbl0/P24rMSksdC5jYXRBeGlzRm9ybWF0Q29kZSx0LmRhdGUxOTA0KSksbz1YZCh0KTtpZihvPT1udWxsJiYobz0wLCFhJiZwPjEpKXtsZXQgdD0xLzAsbj1udWxsLHI9Ti5heGlzWTtmb3IobGV0IGU9MDtlPHA7ZSsrKXtsZXQgaT1qdChlLHAsaCxtKSxhPXUucHJvamVjdChULngraSpULncscix1LnRvcG9sb2d5Lm5lYXJEZXB0aCk7biYmKHQ9TWF0aC5taW4odCxNYXRoLmh5cG90KGEueC1uLngsYS55LW4ueSkpKSxuPWF9TWF0aC5tYXgoMCwuLi5pLm1hcCh0PT5lLm1lYXN1cmVUZXh0KHQpLndpZHRoKSk+dCouOSYmKG89LU1hdGguUEkvNCl9bGV0IHM9TWF0aC5tYXgoMSxNYXRoLmZsb29yKHQuY2F0QXhpc1RpY2tMYWJlbFNraXA/PzEpKTtmb3IobGV0IHQ9MDt0PHA7dCs9cyl7bGV0IHI9anQodCxwLGgsbSkse2F4aXNYOnMsYXhpc1k6YyxkZXB0aDpsfT1OLGQ9YT91LnByb2plY3QocyxULnkranQodCxwLGgsbSkqVC5oLGwpOnUucHJvamVjdChULngrcipULncsYyxsKTtpZihhKXtsZXQgcj11LnByb2plY3QocyxULnkrVC5oLzIsbCksYT11LnByb2plY3QoVC54K1Qudy8yLFQueStULmgvMixsKSxvPXIueDw9YS54O2UudGV4dEFsaWduPW8/YHJpZ2h0YDpgbGVmdGAsZS50ZXh0QmFzZWxpbmU9YG1pZGRsZWAsZS5maWxsVGV4dChpW3RdLGQueCsobz8tbjpuKSxkLnkpfWVsc2V7bGV0IHI9dS5wcm9qZWN0KFQueCtULncvMixULnkrVC5oLzIsbCkscz1tZihOLmhvcml6b250YWxTdGFydCxOLmhvcml6b250YWxFbmQscixgdmVydGljYWxgKTtaZChlLGlbdF0sZCxvLGEscy55PDA/LTE6MSxuKX19fXJmKGUsdCxuLGMsYSxyKTtmb3IobGV0IGUgb2YgRCllKCk7cmV0dXJuIG9mKGUsdCxsLHIpLCEwfWZ1bmN0aW9uIFNmKGUsdCxuLHIpe2lmKCF0LnRocmVlRHx8dC5jaGFydFR5cGUhPT1gcGllYClyZXR1cm4hMTtsZXQgaT10LnNlcmllc1swXTtpZighaSlyZXR1cm4hMDtsZXQgYT1pLnZhbHVlcy5mbGF0TWFwKChlLHQpPT5lIT1udWxsJiZOdW1iZXIuaXNGaW5pdGUoZSk/W3tpbmRleDp0LHZhbHVlOk1hdGguYWJzKGUpfV06W10pLG89MDtmb3IobGV0IGUgb2YgYSlvPU1hdGgubWF4KG8sZS52YWx1ZSk7aWYoIShvPjApKXJldHVybiEwO2xldCBzPWEucmVkdWNlKChlLHQpPT5lK3QudmFsdWUvbywwKTtpZighKHM+MCl8fCFOdW1iZXIuaXNGaW5pdGUocykpcmV0dXJuITA7bGV0e3Bsb3Q6YyxsZWdlbmQ6bH09dGYoZSx0LG4scixgcmFkaWFsYCksdT0kbih7Li4udC50aHJlZUQscm90YXRpb25ZOnQudGhyZWVELnJvdGF0aW9uWT8/MCxkZXB0aFBlcmNlbnQ6MTAwfSxjLHtzY2VuZURlcHRoU2NhbGU6MSxzY2VuZUhlaWdodFNjYWxlOi4xNX0pO2lmKCF1KXJldHVybiEwO2xldCBkPW5ldyBNYXAoaS5kYXRhUG9pbnRPdmVycmlkZXM/Lm1hcChlPT5bZS5pZHgsZV0pPz9bXSksZj0wO2ZvcihsZXQgZSBvZiBkLnZhbHVlcygpKWUuZXhwbG9zaW9uIT1udWxsJiZOdW1iZXIuaXNGaW5pdGUoZS5leHBsb3Npb24pJiYoZj1NYXRoLm1heChmLE1hdGgubWF4KDAsTWF0aC5taW4oMTAwLGUuZXhwbG9zaW9uKSkvMTAwKSk7bGV0e3NjZW5lOnB9PXUsbT1NYXRoLm1pbihwLncqLjQ1LygxK2YpLHUubW9kZWxEZXB0aCouNDUvKDErZikscC5oLy40NSk7aWYoIShtPjApKXJldHVybiEwO2xldCBoPXAueCtwLncvMixnPXAueStwLmgvMixfPS41LHY9bSouMyx5PTAsYj1bXSx4PW5ldyBNYXAoaS5kYXRhTGFiZWxPdmVycmlkZXM/Lm1hcChlPT5bZS5pZHgsZV0pPz9bXSksUz1NYXRoLm1heCg0OCxNYXRoLm1pbigxMjgsTWF0aC5jZWlsKE1hdGguUEkqMiptLzQpKSk7Zm9yKGxldCBlIG9mIGEpe2xldCBuPWUudmFsdWUvby9zLHI9Y2YodC5maXJzdFNsaWNlQW5nbGUseSxuKSxhPWQuZ2V0KGUuaW5kZXgpLGM9YT8uZmlsbEhpZGRlbj09PSEwP2AwMDAwMDAwMGA6YT8uY29sb3I/P2kuZGF0YVBvaW50Q29sb3JzPy5bZS5pbmRleF0/P2kuY29sb3IsbD1yLm1pZGRsZSxmPWE/LmV4cGxvc2lvbiE9bnVsbCYmTnVtYmVyLmlzRmluaXRlKGEuZXhwbG9zaW9uKT9NYXRoLm1heCgwLE1hdGgubWluKDEwMCxhLmV4cGxvc2lvbikpLzEwMDowLHA9aCtNYXRoLmNvcyhsKSptKmYseD1fK01hdGguc2luKGwpKm0qZi91Lm1vZGVsRGVwdGgsQz1NYXRoLm1heCgyLE1hdGguY2VpbChTKm4pKSx3PWFkKHtjZW50ZXJYOnAsY2VudGVyWTpnLGNlbnRlckRlcHRoOngscmFkaXVzOm0sbW9kZWxEZXB0aDp1Lm1vZGVsRGVwdGgsdGhpY2tuZXNzOnYsc3RhcnRBbmdsZTpyLnN0YXJ0LGVuZEFuZ2xlOnIuZW5kLHNlZ21lbnRzOkN9KTtpZighdyl7eSs9bjtjb250aW51ZX1iLnB1c2goe2luZGV4OmUuaW5kZXgsc3RhcnQ6ci5zdGFydCxlbmQ6ci5lbmQsY29sb3I6Yz09PWAwMDAwMDAwMGA/YHRyYW5zcGFyZW50YDpjP2AjJHtjfWA6T2YoZS5pbmRleCksdmFsdWU6ZS52YWx1ZSxwZXJjZW50VmFsdWU6bixjZW50ZXJYOnAsY2VudGVyRGVwdGg6eCxzZWdtZW50czpDLG1lc2g6dyxsaW5lSGlkZGVuOmE/LmxpbmVIaWRkZW4/P2kubGluZUhpZGRlbj8/ITEsbGluZUNvbG9yOmE/LmxpbmVDb2xvcj8/aS5saW5lQ29sb3I/P251bGwsbGluZVdpZHRoRW11OmE/LmxpbmVXaWR0aEVtdT8/aS5saW5lV2lkdGhFbXU/P251bGwsbGluZURhc2g6YT8ubGluZURhc2g/P2kuY2hhcnRleFN0eWxlPy5saW5lRGFzaD8/YHNvbGlkYCxsaW5lQ2FwOmkuY2hhcnRleFN0eWxlPy5saW5lQ2FwPT09YHJuZGA/YHJvdW5kYDppLmNoYXJ0ZXhTdHlsZT8ubGluZUNhcD09PWBzcWA/YHNxdWFyZWA6YGJ1dHRgLGxpbmVKb2luOmkuY2hhcnRleFN0eWxlPy5saW5lSm9pbj09PWByb3VuZGB8fGkuY2hhcnRleFN0eWxlPy5saW5lSm9pbj09PWBiZXZlbGA/aS5jaGFydGV4U3R5bGUubGluZUpvaW46YG1pdGVyYH0pLHkrPW59dT1Rbih1LGIuZmxhdE1hcChlPT5lLm1lc2gudmVydGljZXMpLGMsLjA4KTtsZXQgQz1bXSx3PXtyZW1haW5pbmc6eGQsZXhjZWVkZWQ6ITF9LFQ9ZT0+e2xldCB0PWUubGluZVdpZHRoRW11PT1udWxsPy43NSpyOk1hdGgubWF4KC4yNSxlLmxpbmVXaWR0aEVtdS9ldCpyKTtyZXR1cm4hZS5saW5lSGlkZGVuJiZlLmxpbmVDb2xvcj97Y29sb3I6YCMke2UubGluZUNvbG9yfWAsd2lkdGg6dCxkYXNoOk9uKGUubGluZURhc2gsdCksY2FwOmUubGluZUNhcCxqb2luOmUubGluZUpvaW59OnZvaWQgMH0sRT1iLmZsYXRNYXAoZT0+R2QodSxlLm1lc2gsZS5jb2xvcix2b2lkIDAsdykpLEQ9W10sTz1iLm1hcChUKSxrPU9bMF0sQT1lPT5lPT1udWxsP251bGw6W2UuY29sb3IsZS53aWR0aCxlLmRhc2guam9pbihgLGApLGUuY2FwLGUuam9pbl0uam9pbihgfGApLGo9ayE9bnVsbCYmTy5ldmVyeShlPT5BKGUpPT09QShrKSkmJmIuZXZlcnkoZT0+TWF0aC5hYnMoZS5jZW50ZXJYLWgpPDFlLTkmJk1hdGguYWJzKGUuY2VudGVyRGVwdGgtXyk8MWUtOSk7aWYoailELnB1c2goLi4uS2QodSxiLGcsbSx2LGssdykpO2Vsc2UgZm9yKGxldCBlPTA7ZTxiLmxlbmd0aDtlKyspe2xldCB0PU9bZV07dCYmRC5wdXNoKC4uLkdkKHUsYltlXS5tZXNoLGB0cmFuc3BhcmVudGAsdCx3LCEwKSl9aWYody5leGNlZWRlZClyZXR1cm4gWWQoZSxuKSwhMDtpZihqKXtmb3IobGV0IHQgb2YgZmQoRSkpcWQoZSx0KTtmb3IobGV0IHQgb2YgZmQoRCkpcWQoZSx0KX1lbHNlIGZvcihsZXQgdCBvZiBmZChbLi4uRSwuLi5EXSkpcWQoZSx0KTtmb3IobGV0IG4gb2YgYil7bGV0IGE9KG4uc3RhcnQrbi5lbmQpLzIsbz14LmdldChuLmluZGV4KTtpZihlZih0LGksbykpe2xldCBzPWkuc2VyaWVzRGF0YUxhYmVscyxsPWhlKG8/LmZvbnRTaXplSHB0Pz9zPy5mb250U2l6ZUhwdD8/dC5kYXRhTGFiZWxGb250U2l6ZUhwdCxyKT8/OSpyO2UuZm9udD1gJHtvPy5mb250Qm9sZD8/cz8uZm9udEJvbGQ/P3QuZGF0YUxhYmVsRm9udEJvbGQ/YGJvbGQgYDpgYH0ke2x9cHggJHtBZih0LG8/LmZvbnRGYWNlPz9zPy5mb250RmFjZT8/dC5kYXRhTGFiZWxGb250RmFjZSl9YDtsZXQgZD1hbih7Y3VzdG9tVGV4dDpvPy50ZXh0LHNob3dDYXRlZ29yeTpvPy5zaG93Q2F0TmFtZT8/cz8uc2hvd0NhdE5hbWU/PyExLHNob3dTZXJpZXM6bz8uc2hvd1Nlck5hbWU/P3M/LnNob3dTZXJOYW1lPz8hMSxzaG93VmFsdWU6bz8uc2hvd1ZhbD8/cz8uc2hvd1ZhbD8/dC5zaG93RGF0YUxhYmVscyxzaG93UGVyY2VudDpvPy5zaG93UGVyY2VudD8/cz8uc2hvd1BlcmNlbnQ/PyExLGNhdGVnb3J5OmkuY2F0ZWdvcmllcz8uW24uaW5kZXhdPz90LmNhdGVnb3JpZXNbbi5pbmRleF0/P2Ake24uaW5kZXgrMX1gLHNlcmllc05hbWU6aS5uYW1lfHxgU2VyaWVzIDFgLHNvdXJjZVZhbHVlOm4udmFsdWUscGVyY2VudFJhdGlvOm4ucGVyY2VudFZhbHVlLGZvcm1hdENvZGU6bz8uZm9ybWF0Q29kZT8/cz8uZm9ybWF0Q29kZT8/dC5kYXRhTGFiZWxGb3JtYXRDb2RlPz9pLnZhbEZvcm1hdENvZGUsc2VwYXJhdG9yOm8/LnNlcGFyYXRvcj8/cz8uc2VwYXJhdG9yLGRhdGUxOTA0OnQuZGF0ZTE5MDR9KSxmPUFmKHQsbz8uZm9udEZhY2U/P3M/LmZvbnRGYWNlPz90LmRhdGFMYWJlbEZvbnRGYWNlKSxwPW8/LnRleHQmJm8ucmljaFJ1bnM/Lmxlbmd0aD9RdChlLHtydW5zOm8ucmljaFJ1bnMscHRUb1B4OnIsZm9udEZhbWlseTpmLGZhbGxiYWNrQm9sZDpvLmZvbnRCb2xkPz9zPy5mb250Qm9sZD8/dC5kYXRhTGFiZWxGb250Qm9sZD8/ITEsZm9udEZhbWlseUZvckZhY2U6ZT0+QWYodCxlKX0sbCxgIyR7by5mb250Q29sb3I/P3M/LmZvbnRDb2xvcj8/aS5sYWJlbENvbG9yPz90LmRhdGFMYWJlbEZvbnRDb2xvcj8/YDExMTExMWB9YCk6bnVsbCxoPW8/LnBvc2l0aW9uPz9zPy5wb3NpdGlvbj8/dC5kYXRhTGFiZWxQb3NpdGlvbixfPWctdi8yLHk9Zyt2LzIsYj11LmNhbWVyYURlcHRoKG4uY2VudGVyWCxfLG4uY2VudGVyRGVwdGgpPj11LmNhbWVyYURlcHRoKG4uY2VudGVyWCx5LG4uY2VudGVyRGVwdGgpP186eSx4PTAsUz1udWxsO2ZvcihsZXQgZT0wO2U8PTEyO2UrKyl7bGV0IHQ9bi5zdGFydCsobi5lbmQtbi5zdGFydCkqZS8xMixyPXUucHJvamVjdChuLmNlbnRlclgrTWF0aC5jb3ModCkqbSouNjQsYixuLmNlbnRlckRlcHRoK01hdGguc2luKHQpKm0qLjY0L3UubW9kZWxEZXB0aCk7UyYmKHgrPU1hdGguaHlwb3Qoci54LVMueCxyLnktUy55KSksUz1yfWxldCB3PShoPT1udWxsfHxoPT09YGJlc3RGaXRgKSYmKG4ucGVyY2VudFZhbHVlPT09MHx8eDwocD8ud2lkdGg/P2UubWVhc3VyZVRleHQoZCkud2lkdGgpKXx8aD09PWBvdXRFbmRgLFQ9bSoodz8xLjEyOi42NCksRT11LnByb2plY3Qobi5jZW50ZXJYK01hdGguY29zKGEpKlQsYixuLmNlbnRlckRlcHRoK01hdGguc2luKGEpKlQvdS5tb2RlbERlcHRoKSxEPXUucHJvamVjdChuLmNlbnRlclgrTWF0aC5jb3MoYSkqbSxiLG4uY2VudGVyRGVwdGgrTWF0aC5zaW4oYSkqbS91Lm1vZGVsRGVwdGgpO0MucHVzaCgoKT0+JGQoZSx0LGksMCxuLmluZGV4LG4udmFsdWUsRSxjLHIsMCxuLnBlcmNlbnRWYWx1ZSxvLGBjdHJgLEQsdykpfX1mb3IobGV0IGUgb2YgQyllKCk7bGV0IE09aS5jYXRlZ29yaWVzPy5sZW5ndGg/aS5jYXRlZ29yaWVzOnQuY2F0ZWdvcmllcyxOPUFycmF5LmZyb20oe2xlbmd0aDpNLmxlbmd0aH0sKGUsdCk9PntsZXQgbj1kLmdldCh0KSxyPW4/LmZpbGxIaWRkZW49PT0hMD9gMDAwMDAwMDBgOm4/LmNvbG9yPz9pLmRhdGFQb2ludENvbG9ycz8uW3RdPz9pLmNvbG9yO3JldHVybiByPT09YDAwMDAwMDAwYD9gMDAwMDAwMDBgOlVuKHI/YCMke3J9YDpPZih0KSwuOCkucmVwbGFjZSgvXiMvLGBgKX0pO3JldHVybiBvZihlLHsuLi50LGNhdGVnb3JpZXM6TSxzZXJpZXM6W3suLi5pLGNhdGVnb3JpZXM6TSxkYXRhUG9pbnRDb2xvcnM6Tn1dfSxsLHIsITApLCEwfWZ1bmN0aW9uIENmKGUsdCxuLHIpe3JldHVybiB0LnRocmVlRD9TZihlLHQsbixyKT8hMDpFZi5oYXModC5jaGFydFR5cGUpP3hmKGUsdCxuLHIpOiExOiExfXZhciB3ZixUZixFZixEZixPZixrZixBZixqZixNZj10KCgoKT0+e250KCksTW4oKSwkZSgpLER0KCksRmUoKSxBdCgpLHluKCkscm4oKSxvbigpLG5yKCksWW4oKSxOdCgpLHNkKCksZ2QoKSxEZCgpLEZkKCksbG4oKSx3Zj1gb294bWwtdGhyZWUtZC1tZXNoLWltcGxlbWVudGF0aW9uLXYxYCxUZj1bYDQ0NzJDNGAsYEVEN0QzMWAsYDcwQUQ0N2AsYEE1QTVBNWAsYEZGQzAwMGAsYDVCOUJENWBdLEVmPW5ldyBTZXQoW2BsaW5lYCxgc3RhY2tlZExpbmVgLGBzdGFja2VkTGluZVBjdGAsYGFyZWFgLGBzdGFja2VkQXJlYWAsYHN0YWNrZWRBcmVhUGN0YCxgY2x1c3RlcmVkQmFyYCxgY2x1c3RlcmVkQmFySGAsYHN0YWNrZWRCYXJgLGBzdGFja2VkQmFySGAsYHN0YWNrZWRCYXJQY3RgLGBzdGFja2VkQmFySFBjdGBdKSxEZj0zNixPZj0oZSx0KT0+YCMke3Q/LmNvbG9yPz9UZltlJVRmLmxlbmd0aF19YCxrZj1lPT5gIiR7ZSYmIWUuc3RhcnRzV2l0aChgK2ApP2UucmVwbGFjZSgvWyJcXF0vZyxgYCk6YEFyaWFsYH0iYCxBZj0oZSx0LG49YG1pbm9yYCk9PmtmKCh0Py5zdGFydHNXaXRoKGArbWotYCk/ZS50aGVtZU1ham9yRm9udExhdGluOnQ/LnN0YXJ0c1dpdGgoYCttbi1gKT9lLnRoZW1lTWlub3JGb250TGF0aW46dCk/PyhuPT09YG1ham9yYD9lLnRoZW1lTWFqb3JGb250TGF0aW46ZS50aGVtZU1pbm9yRm9udExhdGluKSksamY9ZT0+ZT09PWB0cmFuc3BhcmVudGB8fGU9PT1gIzAwMDAwMDAwYHx8ZT09PWByZ2JhKDAsMCwwLDApYH0pKSxOZixQZj10KCgoKT0+e05mPVt7bjpgRmlqaWAsYTI6YEZKYCxhMzpgRkpJYCxwOmBGSmAsbDpbMTc3Ljk4LC0xNy44M10sZzpbW1tbMTgwLC0xNi4wN10sWzE4MCwtMTYuNTZdLFsxNzkuMzYsLTE2LjhdLFsxNzguNzMsLTE3LjAxXSxbMTc4LjYsLTE2LjY0XSxbMTc5LjEsLTE2LjQzXSxbMTc5LjQxLC0xNi4zOF0sWzE4MCwtMTYuMDddXV0sW1tbMTc4LjEzLC0xNy41XSxbMTc4LjM3LC0xNy4zNF0sWzE3OC43MiwtMTcuNjNdLFsxNzguNTUsLTE4LjE1XSxbMTc3LjkzLC0xOC4yOV0sWzE3Ny4zOCwtMTguMTZdLFsxNzcuMjksLTE3LjcyXSxbMTc3LjY3LC0xNy4zOF0sWzE3OC4xMywtMTcuNV1dXSxbW1stMTc5Ljc5LC0xNi4wMl0sWy0xNzkuOTIsLTE2LjVdLFstMTgwLC0xNi41Nl0sWy0xODAsLTE2LjA3XSxbLTE3OS43OSwtMTYuMDJdXV1dfSx7bjpgVGFuemFuaWFgLGEyOmBUWmAsYTM6YFRaQWAscDpgVFpgLGw6WzM0Ljk2LC02LjA1XSxnOltbW1szMy45LC0uOTVdLFszNC4wNywtMS4wNl0sWzM3LjcsLTMuMV0sWzM3Ljc3LC0zLjY4XSxbMzkuMiwtNC42OF0sWzM4Ljc0LC01LjkxXSxbMzguOCwtNi40OF0sWzM5LjQ0LC02Ljg0XSxbMzkuNDcsLTcuMV0sWzM5LjE5LC03LjddLFszOS4yNSwtOC4wMV0sWzM5LjE5LC04LjQ5XSxbMzkuNTQsLTkuMTFdLFszOS45NSwtMTAuMV0sWzQwLjMyLC0xMC4zMl0sWzM5LjUyLC0xMC45XSxbMzguNDMsLTExLjI5XSxbMzcuODMsLTExLjI3XSxbMzcuNDcsLTExLjU3XSxbMzYuNzgsLTExLjU5XSxbMzYuNTEsLTExLjcyXSxbMzUuMzEsLTExLjQ0XSxbMzQuNTYsLTExLjUyXSxbMzQuMjgsLTEwLjE2XSxbMzMuOTQsLTkuNjldLFszMy43NCwtOS40Ml0sWzMyLjc2LC05LjIzXSxbMzIuMTksLTguOTNdLFszMS41NiwtOC43Nl0sWzMxLjE2LC04LjU5XSxbMzAuNzQsLTguMzRdLFszMC4yLC03LjA4XSxbMjkuNjIsLTYuNTJdLFsyOS40MiwtNS45NF0sWzI5LjUyLC01LjQyXSxbMjkuMzQsLTQuNV0sWzI5Ljc1LC00LjQ1XSxbMzAuMTIsLTQuMDldLFszMC41MSwtMy41N10sWzMwLjc1LC0zLjM2XSxbMzAuNzQsLTMuMDNdLFszMC41MywtMi44MV0sWzMwLjQ3LC0yLjQxXSxbMzAuNzYsLTIuMjldLFszMC44MiwtMS43XSxbMzAuNDIsLTEuMTNdLFszMC43NywtMS4wMV0sWzMxLjg3LC0xLjAzXSxbMzMuOSwtLjk1XV1dXX0se246YFdlc3Rlcm4gU2FoYXJhYCxhMjpgRUhgLGEzOmBFU0hgLHA6YFdTYCxsOlstMTIuNjMsMjMuOTddLGc6W1tbWy04LjY3LDI3LjY2XSxbLTguNjcsMjcuNTldLFstOC42OCwyNy40XSxbLTguNjksMjUuODhdLFstMTEuOTcsMjUuOTNdLFstMTEuOTQsMjMuMzddLFstMTIuODcsMjMuMjhdLFstMTMuMTIsMjIuNzddLFstMTIuOTMsMjEuMzNdLFstMTYuODUsMjEuMzNdLFstMTcuMDYsMjFdLFstMTcuMDIsMjEuNDJdLFstMTcsMjEuNDJdLFstMTQuNzUsMjEuNV0sWy0xNC42MywyMS44Nl0sWy0xNC4yMiwyMi4zMV0sWy0xMy44OSwyMy42OV0sWy0xMi41LDI0Ljc3XSxbLTEyLjAzLDI2LjAzXSxbLTExLjcyLDI2LjFdLFstMTEuMzksMjYuODhdLFstMTAuNTUsMjYuOTldLFstMTAuMTksMjYuODZdLFstOS43NCwyNi44Nl0sWy05LjQxLDI3LjA5XSxbLTguNzksMjcuMTJdLFstOC44MiwyNy42Nl0sWy04LjY3LDI3LjY2XV1dXX0se246YENhbmFkYWAsYTI6YENBYCxhMzpgQ0FOYCxwOmBDQWAsbDpbLTEwMS45MSw2MC4zMl0sZzpbW1tbLTEyMi44NCw0OV0sWy0xMjIuOTcsNDldLFstMTI0LjkxLDQ5Ljk4XSxbLTEyNS42Miw1MC40Ml0sWy0xMjcuNDQsNTAuODNdLFstMTI3Ljk5LDUxLjcyXSxbLTEyNy44NSw1Mi4zM10sWy0xMjkuMTMsNTIuNzZdLFstMTI5LjMxLDUzLjU2XSxbLTEzMC41MSw1NC4yOV0sWy0xMzAuNTQsNTQuOF0sWy0xMjkuOTgsNTUuMjldLFstMTMwLjAxLDU1LjkyXSxbLTEzMS43MSw1Ni41NV0sWy0xMzIuNzMsNTcuNjldLFstMTMzLjM2LDU4LjQxXSxbLTEzNC4yNyw1OC44Nl0sWy0xMzQuOTQsNTkuMjddLFstMTM1LjQ4LDU5Ljc5XSxbLTEzNi40OCw1OS40Nl0sWy0xMzcuNDUsNTguOTFdLFstMTM4LjM0LDU5LjU2XSxbLTEzOS4wNCw2MF0sWy0xNDAuMDEsNjAuMjhdLFstMTQxLDYwLjMxXSxbLTE0MC45OSw2Nl0sWy0xNDAuOTksNjkuNzFdLFstMTM5LjEyLDY5LjQ3XSxbLTEzNy41NSw2OC45OV0sWy0xMzYuNSw2OC45XSxbLTEzNS42Myw2OS4zMl0sWy0xMzQuNDEsNjkuNjNdLFstMTMyLjkzLDY5LjUxXSxbLTEzMS40Myw2OS45NF0sWy0xMjkuNzksNzAuMTldLFstMTI5LjExLDY5Ljc4XSxbLTEyOC4zNiw3MC4wMV0sWy0xMjguMTQsNzAuNDhdLFstMTI3LjQ1LDcwLjM4XSxbLTEyNS43Niw2OS40OF0sWy0xMjQuNDIsNzAuMTZdLFstMTI0LjI5LDY5LjRdLFstMTIzLjA2LDY5LjU2XSxbLTEyMi42OCw2OS44Nl0sWy0xMjEuNDcsNjkuOF0sWy0xMTkuOTQsNjkuMzhdLFstMTE3LjYsNjkuMDFdLFstMTE2LjIzLDY4Ljg0XSxbLTExNS4yNSw2OC45MV0sWy0xMTMuOSw2OC40XSxbLTExNS4zLDY3LjldLFstMTEzLjUsNjcuNjldLFstMTEwLjgsNjcuODFdLFstMTA5Ljk1LDY3Ljk4XSxbLTEwOC44OCw2Ny4zOF0sWy0xMDcuNzksNjcuODldLFstMTA4LjgxLDY4LjMxXSxbLTEwOC4xNyw2OC42NV0sWy0xMDYuOTUsNjguN10sWy0xMDYuMTUsNjguOF0sWy0xMDUuMzQsNjguNTZdLFstMTA0LjM0LDY4LjAyXSxbLTEwMy4yMiw2OC4xXSxbLTEwMS40NSw2Ny42NV0sWy05OS45LDY3LjgxXSxbLTk4LjQ0LDY3Ljc4XSxbLTk4LjU2LDY4LjRdLFstOTcuNjcsNjguNThdLFstOTYuMTIsNjguMjRdLFstOTYuMTMsNjcuMjldLFstOTUuNDksNjguMDldLFstOTQuNjgsNjguMDZdLFstOTQuMjMsNjkuMDddLFstOTUuMyw2OS42OV0sWy05Ni40Nyw3MC4wOV0sWy05Ni4zOSw3MS4xOV0sWy05NS4yMSw3MS45Ml0sWy05My44OSw3MS43Nl0sWy05Mi44OCw3MS4zMl0sWy05MS41Miw3MC4xOV0sWy05Mi40MSw2OS43XSxbLTkwLjU1LDY5LjVdLFstOTAuNTUsNjguNDddLFstODkuMjIsNjkuMjZdLFstODguMDIsNjguNjJdLFstODguMzIsNjcuODddLFstODcuMzUsNjcuMl0sWy04Ni4zMSw2Ny45Ml0sWy04NS41OCw2OC43OF0sWy04NS41Miw2OS44OF0sWy04NC4xLDY5LjgxXSxbLTgyLjYyLDY5LjY2XSxbLTgxLjI4LDY5LjE2XSxbLTgxLjIyLDY4LjY3XSxbLTgxLjk2LDY4LjEzXSxbLTgxLjI2LDY3LjZdLFstODEuMzksNjcuMTFdLFstODMuMzQsNjYuNDFdLFstODQuNzQsNjYuMjZdLFstODUuNzcsNjYuNTZdLFstODYuMDcsNjYuMDZdLFstODcuMDMsNjUuMjFdLFstODcuMzIsNjQuNzhdLFstODguNDgsNjQuMV0sWy04OS45MSw2NC4wM10sWy05MC43LDYzLjYxXSxbLTkwLjc3LDYyLjk2XSxbLTkxLjkzLDYyLjg0XSxbLTkzLjE2LDYyLjAyXSxbLTk0LjI0LDYwLjldLFstOTQuNjMsNjAuMTFdLFstOTQuNjgsNTguOTVdLFstOTMuMjIsNTguNzhdLFstOTIuNzYsNTcuODVdLFstOTIuMyw1Ny4wOV0sWy05MC45LDU3LjI4XSxbLTg5LjA0LDU2Ljg1XSxbLTg4LjA0LDU2LjQ3XSxbLTg3LjMyLDU2XSxbLTg2LjA3LDU1LjcyXSxbLTg1LjAxLDU1LjNdLFstODMuMzYsNTUuMjRdLFstODIuMjcsNTUuMTVdLFstODIuNDQsNTQuMjhdLFstODIuMTMsNTMuMjhdLFstODEuNCw1Mi4xNl0sWy03OS45MSw1MS4yMV0sWy03OS4xNCw1MS41M10sWy03OC42LDUyLjU2XSxbLTc5LjEyLDU0LjE0XSxbLTc5LjgzLDU0LjY3XSxbLTc4LjIzLDU1LjE0XSxbLTc3LjEsNTUuODRdLFstNzYuNTQsNTYuNTNdLFstNzYuNjIsNTcuMl0sWy03Ny4zLDU4LjA1XSxbLTc4LjUyLDU4LjhdLFstNzcuMzQsNTkuODVdLFstNzcuNzcsNjAuNzZdLFstNzguMTEsNjIuMzJdLFstNzcuNDEsNjIuNTVdLFstNzUuNyw2Mi4yOF0sWy03NC42Nyw2Mi4xOF0sWy03My44NCw2Mi40NF0sWy03Mi45MSw2Mi4xMV0sWy03MS42OCw2MS41M10sWy03MS4zNyw2MS4xNF0sWy02OS41OSw2MS4wNl0sWy02OS42Miw2MC4yMl0sWy02OS4yOSw1OC45Nl0sWy02OC4zNyw1OC44XSxbLTY3LjY1LDU4LjIxXSxbLTY2LjIsNTguNzddLFstNjUuMjUsNTkuODddLFstNjQuNTgsNjAuMzRdLFstNjMuOCw1OS40NF0sWy02Mi41LDU4LjE3XSxbLTYxLjQsNTYuOTddLFstNjEuOCw1Ni4zNF0sWy02MC40Nyw1NS43OF0sWy01OS41Nyw1NS4yXSxbLTU3Ljk4LDU0Ljk1XSxbLTU3LjMzLDU0LjYzXSxbLTU2Ljk0LDUzLjc4XSxbLTU2LjE2LDUzLjY1XSxbLTU1Ljc2LDUzLjI3XSxbLTU1LjY4LDUyLjE1XSxbLTU2LjQxLDUxLjc3XSxbLTU3LjEzLDUxLjQyXSxbLTU4Ljc3LDUxLjA2XSxbLTYwLjAzLDUwLjI0XSxbLTYxLjcyLDUwLjA4XSxbLTYzLjg2LDUwLjI5XSxbLTY1LjM2LDUwLjNdLFstNjYuNCw1MC4yM10sWy02Ny4yNCw0OS41MV0sWy02OC41MSw0OS4wN10sWy02OS45NSw0Ny43NF0sWy03MS4xLDQ2LjgyXSxbLTcwLjI2LDQ2Ljk5XSxbLTY4LjY1LDQ4LjNdLFstNjYuNTUsNDkuMTNdLFstNjUuMDYsNDkuMjNdLFstNjQuMTcsNDguNzRdLFstNjUuMTIsNDguMDddLFstNjQuOCw0Ni45OV0sWy02NC40Nyw0Ni4yNF0sWy02My4xNyw0NS43NF0sWy02MS41Miw0NS44OF0sWy02MC41Miw0Ny4wMV0sWy02MC40NSw0Ni4yOF0sWy01OS44LDQ1LjkyXSxbLTYxLjA0LDQ1LjI3XSxbLTYzLjI1LDQ0LjY3XSxbLTY0LjI1LDQ0LjI3XSxbLTY1LjM2LDQzLjU1XSxbLTY2LjEyLDQzLjYyXSxbLTY2LjE2LDQ0LjQ3XSxbLTY0LjQzLDQ1LjI5XSxbLTY2LjAzLDQ1LjI2XSxbLTY3LjE0LDQ1LjE0XSxbLTY3Ljc5LDQ1LjddLFstNjcuNzksNDcuMDddLFstNjguMjMsNDcuMzVdLFstNjguOSw0Ny4xOV0sWy02OS4yNCw0Ny40NV0sWy03MCw0Ni42OV0sWy03MC4zMSw0NS45Ml0sWy03MC42Niw0NS40Nl0sWy03MS4wOCw0NS4zMV0sWy03MS40LDQ1LjI2XSxbLTcxLjUxLDQ1LjAxXSxbLTczLjM1LDQ1LjAxXSxbLTc0Ljg3LDQ1XSxbLTc1LjMyLDQ0LjgyXSxbLTc2LjM3LDQ0LjFdLFstNzYuNSw0NC4wMl0sWy03Ni44Miw0My42M10sWy03Ny43NCw0My42M10sWy03OC43Miw0My42M10sWy03OS4xNyw0My40N10sWy03OS4wMSw0My4yN10sWy03OC45Miw0Mi45N10sWy03OC45NCw0Mi44Nl0sWy04MC4yNSw0Mi4zN10sWy04MS4yOCw0Mi4yMV0sWy04Mi40NCw0MS42OF0sWy04Mi42OSw0MS42OF0sWy04My4wMyw0MS44M10sWy04My4xNCw0MS45OF0sWy04My4xMiw0Mi4wOF0sWy04Mi45LDQyLjQzXSxbLTgyLjQzLDQyLjk4XSxbLTgyLjE0LDQzLjU3XSxbLTgyLjM0LDQ0LjQ0XSxbLTgyLjU1LDQ1LjM1XSxbLTgzLjU5LDQ1LjgyXSxbLTgzLjQ3LDQ1Ljk5XSxbLTgzLjYyLDQ2LjEyXSxbLTgzLjg5LDQ2LjEyXSxbLTg0LjA5LDQ2LjI4XSxbLTg0LjE0LDQ2LjUxXSxbLTg0LjM0LDQ2LjQxXSxbLTg0LjYsNDYuNDRdLFstODQuNTQsNDYuNTRdLFstODQuNzgsNDYuNjRdLFstODQuODgsNDYuOV0sWy04NS42NSw0Ny4yMl0sWy04Ni40Niw0Ny41NV0sWy04Ny40NCw0Ny45NF0sWy04OC4zOCw0OC4zXSxbLTg5LjI3LDQ4LjAyXSxbLTg5LjYsNDguMDFdLFstOTAuODMsNDguMjddLFstOTEuNjQsNDguMTRdLFstOTIuNjEsNDguNDVdLFstOTMuNjMsNDguNjFdLFstOTQuMzMsNDguNjddLFstOTQuNjQsNDguODRdLFstOTQuODIsNDkuMzldLFstOTUuMTYsNDkuMzhdLFstOTUuMTYsNDldLFstOTcuMjMsNDldLFstMTAwLjY1LDQ5XSxbLTEwNC4wNSw0OV0sWy0xMDcuMDUsNDldLFstMTEwLjA1LDQ5XSxbLTExMyw0OV0sWy0xMTYuMDUsNDldLFstMTE3LjAzLDQ5XSxbLTEyMCw0OV0sWy0xMjIuODQsNDldXV0sW1tbLTgzLjk5LDYyLjQ1XSxbLTgzLjI1LDYyLjkxXSxbLTgxLjg4LDYyLjldLFstODEuOSw2Mi43MV0sWy04My4wNyw2Mi4xNl0sWy04My43Nyw2Mi4xOF0sWy04My45OSw2Mi40NV1dXSxbW1stNzkuNzgsNzIuOF0sWy04MC44OCw3My4zM10sWy04MC44Myw3My42OV0sWy04MC4zNSw3My43Nl0sWy03OC4wNiw3My42NV0sWy03Ni4zNCw3My4xXSxbLTc2LjI1LDcyLjgzXSxbLTc3LjMxLDcyLjg2XSxbLTc4LjM5LDcyLjg4XSxbLTc5LjQ5LDcyLjc0XSxbLTc5Ljc4LDcyLjhdXV0sW1tbLTgwLjMyLDYyLjA5XSxbLTc5LjkzLDYyLjM5XSxbLTc5LjUyLDYyLjM2XSxbLTc5LjI3LDYyLjE2XSxbLTc5LjY2LDYxLjYzXSxbLTgwLjEsNjEuNzJdLFstODAuMzYsNjIuMDJdLFstODAuMzIsNjIuMDldXV0sW1tbLTkzLjYxLDc0Ljk4XSxbLTk0LjE2LDc0LjU5XSxbLTk1LjYxLDc0LjY3XSxbLTk2LjgyLDc0LjkzXSxbLTk2LjI5LDc1LjM4XSxbLTk0Ljg1LDc1LjY1XSxbLTkzLjk4LDc1LjNdLFstOTMuNjEsNzQuOThdXV0sW1tbLTkzLjg0LDc3LjUyXSxbLTk0LjMsNzcuNDldLFstOTYuMTcsNzcuNTZdLFstOTYuNDQsNzcuODNdLFstOTQuNDIsNzcuODJdLFstOTMuNzIsNzcuNjNdLFstOTMuODQsNzcuNTJdXV0sW1tbLTk2Ljc1LDc4Ljc3XSxbLTk1LjU2LDc4LjQyXSxbLTk1LjgzLDc4LjA2XSxbLTk3LjMxLDc3Ljg1XSxbLTk4LjEyLDc4LjA4XSxbLTk4LjU1LDc4LjQ2XSxbLTk4LjYzLDc4Ljg3XSxbLTk3LjM0LDc4LjgzXSxbLTk2Ljc1LDc4Ljc3XV1dLFtbWy04OC4xNSw3NC4zOV0sWy04OS43Niw3NC41Ml0sWy05Mi40Miw3NC44NF0sWy05Mi43Nyw3NS4zOV0sWy05Mi44OSw3NS44OF0sWy05My44OSw3Ni4zMl0sWy05NS45Niw3Ni40NF0sWy05Ny4xMiw3Ni43NV0sWy05Ni43NSw3Ny4xNl0sWy05NC42OCw3Ny4xXSxbLTkzLjU3LDc2Ljc4XSxbLTkxLjYxLDc2Ljc4XSxbLTkwLjc0LDc2LjQ1XSxbLTkwLjk3LDc2LjA3XSxbLTg5LjgyLDc1Ljg1XSxbLTg5LjE5LDc1LjYxXSxbLTg3Ljg0LDc1LjU3XSxbLTg2LjM4LDc1LjQ4XSxbLTg0Ljc5LDc1LjddLFstODIuNzUsNzUuNzhdLFstODEuMTMsNzUuNzFdLFstODAuMDYsNzUuMzRdLFstNzkuODMsNzQuOTJdLFstODAuNDYsNzQuNjZdLFstODEuOTUsNzQuNDRdLFstODMuMjMsNzQuNTZdLFstODYuMSw3NC40MV0sWy04OC4xNSw3NC4zOV1dXSxbW1stMTExLjI2LDc4LjE1XSxbLTEwOS44NSw3OF0sWy0xMTAuMTksNzcuN10sWy0xMTIuMDUsNzcuNDFdLFstMTEzLjUzLDc3LjczXSxbLTExMi43Miw3OC4wNV0sWy0xMTEuMjYsNzguMTVdXV0sW1tbLTExMC45Niw3OC44XSxbLTEwOS42Niw3OC42XSxbLTExMC44OCw3OC40MV0sWy0xMTIuNTQsNzguNDFdLFstMTEyLjUzLDc4LjU1XSxbLTExMS41LDc4Ljg1XSxbLTExMC45Niw3OC44XV1dLFtbWy01NS42LDUxLjMyXSxbLTU2LjEzLDUwLjY5XSxbLTU2LjgsNDkuODFdLFstNTYuMTQsNTAuMTVdLFstNTUuNDcsNDkuOTRdLFstNTUuODIsNDkuNTldLFstNTQuOTQsNDkuMzFdLFstNTQuNDcsNDkuNTZdLFstNTMuNDgsNDkuMjVdLFstNTMuNzksNDguNTJdLFstNTMuMDksNDguNjldLFstNTIuOTYsNDguMTZdLFstNTIuNjUsNDcuNTRdLFstNTMuMDcsNDYuNjZdLFstNTMuNTIsNDYuNjJdLFstNTQuMTgsNDYuODFdLFstNTMuOTYsNDcuNjNdLFstNTQuMjQsNDcuNzVdLFstNTUuNCw0Ni44OF0sWy01Niw0Ni45Ml0sWy01NS4yOSw0Ny4zOV0sWy01Ni4yNSw0Ny42M10sWy01Ny4zMyw0Ny41N10sWy01OS4yNyw0Ny42XSxbLTU5LjQyLDQ3LjldLFstNTguOCw0OC4yNV0sWy01OS4yMyw0OC41Ml0sWy01OC4zOSw0OS4xM10sWy01Ny4zNiw1MC43Ml0sWy01Ni43NCw1MS4yOV0sWy01NS44Nyw1MS42M10sWy01NS40MSw1MS41OV0sWy01NS42LDUxLjMyXV1dLFtbWy04My44OCw2NS4xMV0sWy04Mi43OSw2NC43N10sWy04MS42NCw2NC40Nl0sWy04MS41NSw2My45OF0sWy04MC44Miw2NC4wNl0sWy04MC4xLDYzLjczXSxbLTgwLjk5LDYzLjQxXSxbLTgyLjU1LDYzLjY1XSxbLTgzLjExLDY0LjFdLFstODQuMSw2My41N10sWy04NS41Miw2My4wNV0sWy04NS44Nyw2My42NF0sWy04Ny4yMiw2My41NF0sWy04Ni4zNSw2NC4wNF0sWy04Ni4yMiw2NC44Ml0sWy04NS44OCw2NS43NF0sWy04NS4xNiw2NS42Nl0sWy04NC45OCw2NS4yMl0sWy04NC40Niw2NS4zN10sWy04My44OCw2NS4xMV1dXSxbW1stNzguNzcsNzIuMzVdLFstNzcuODIsNzIuNzVdLFstNzUuNjEsNzIuMjRdLFstNzQuMjMsNzEuNzddLFstNzQuMSw3MS4zM10sWy03Mi4yNCw3MS41Nl0sWy03MS4yLDcwLjkyXSxbLTY4Ljc5LDcwLjUzXSxbLTY3LjkxLDcwLjEyXSxbLTY2Ljk3LDY5LjE5XSxbLTY4LjgxLDY4LjcyXSxbLTY2LjQ1LDY4LjA3XSxbLTY0Ljg2LDY3Ljg1XSxbLTYzLjQyLDY2LjkzXSxbLTYxLjg1LDY2Ljg2XSxbLTYyLjE2LDY2LjE2XSxbLTYzLjkyLDY1XSxbLTY1LjE1LDY1LjQzXSxbLTY2LjcyLDY2LjM5XSxbLTY4LjAyLDY2LjI2XSxbLTY4LjE0LDY1LjY5XSxbLTY3LjA5LDY1LjExXSxbLTY1LjczLDY0LjY1XSxbLTY1LjMyLDY0LjM4XSxbLTY0LjY3LDYzLjM5XSxbLTY1LjAxLDYyLjY3XSxbLTY2LjI4LDYyLjk1XSxbLTY4Ljc4LDYzLjc1XSxbLTY3LjM3LDYyLjg4XSxbLTY2LjMzLDYyLjI4XSxbLTY2LjE3LDYxLjkzXSxbLTY4Ljg4LDYyLjMzXSxbLTcxLjAyLDYyLjkxXSxbLTcyLjI0LDYzLjRdLFstNzEuODksNjMuNjhdLFstNzMuMzgsNjQuMTldLFstNzQuODMsNjQuNjhdLFstNzQuODIsNjQuMzldLFstNzcuNzEsNjQuMjNdLFstNzguNTYsNjQuNTddLFstNzcuOSw2NS4zMV0sWy03Ni4wMiw2NS4zM10sWy03My45Niw2NS40NV0sWy03NC4yOSw2NS44MV0sWy03My45NCw2Ni4zMV0sWy03Mi42NSw2Ny4yOF0sWy03Mi45Myw2Ny43M10sWy03My4zMSw2OC4wN10sWy03NC44NCw2OC41NV0sWy03Ni44Nyw2OC44OV0sWy03Ni4yMyw2OS4xNV0sWy03Ny4yOSw2OS43N10sWy03OC4xNyw2OS44M10sWy03OC45Niw3MC4xN10sWy03OS40OSw2OS44N10sWy04MS4zMSw2OS43NF0sWy04NC45NCw2OS45N10sWy04Ny4wNiw3MC4yNl0sWy04OC42OCw3MC40MV0sWy04OS41MSw3MC43Nl0sWy04OC40Nyw3MS4yMl0sWy04OS44OSw3MS4yMl0sWy05MC4yMSw3Mi4yNF0sWy04OS40NCw3My4xM10sWy04OC40MSw3My41NF0sWy04NS44Myw3My44XSxbLTg2LjU2LDczLjE2XSxbLTg1Ljc3LDcyLjUzXSxbLTg0Ljg1LDczLjM0XSxbLTgyLjMyLDczLjc1XSxbLTgwLjYsNzIuNzJdLFstODAuNzUsNzIuMDZdLFstNzguNzcsNzIuMzVdXV0sW1tbLTk0LjUsNzQuMTNdLFstOTIuNDIsNzQuMV0sWy05MC41MSw3My44Nl0sWy05Miw3Mi45N10sWy05My4yLDcyLjc3XSxbLTk0LjI3LDcyLjAyXSxbLTk1LjQxLDcyLjA2XSxbLTk2LjAzLDcyLjk0XSxbLTk2LjAyLDczLjQ0XSxbLTk1LjUsNzMuODZdLFstOTQuNSw3NC4xM11dXSxbW1stMTIyLjg1LDc2LjEyXSxbLTEyMS4xNiw3Ni44Nl0sWy0xMTkuMSw3Ny41MV0sWy0xMTcuNTcsNzcuNV0sWy0xMTYuMiw3Ny42NV0sWy0xMTYuMzQsNzYuODhdLFstMTE3LjExLDc2LjUzXSxbLTExOC4wNCw3Ni40OF0sWy0xMTkuOSw3Ni4wNV0sWy0xMjEuNSw3NS45XSxbLTEyMi44NSw3Ni4xMl1dXSxbW1stMTMyLjcxLDU0LjA0XSxbLTEzMS43NSw1NC4xMl0sWy0xMzIuMDUsNTIuOThdLFstMTMxLjE4LDUyLjE4XSxbLTEzMS41OCw1Mi4xOF0sWy0xMzIuMTgsNTIuNjRdLFstMTMyLjU1LDUzLjFdLFstMTMzLjA1LDUzLjQxXSxbLTEzMy4yNCw1My44NV0sWy0xMzMuMTgsNTQuMTddLFstMTMyLjcxLDU0LjA0XV1dLFtbWy0xMDUuNDksNzkuM10sWy0xMDMuNTMsNzkuMTddLFstMTAwLjgzLDc4LjhdLFstMTAwLjA2LDc4LjMyXSxbLTk5LjY3LDc3LjkxXSxbLTEwMS4zLDc4LjAyXSxbLTEwMi45NSw3OC4zNF0sWy0xMDUuMTgsNzguMzhdLFstMTA0LjIxLDc4LjY4XSxbLTEwNS40Miw3OC45Ml0sWy0xMDUuNDksNzkuM11dXSxbW1stMTIzLjUxLDQ4LjUxXSxbLTEyNC4wMSw0OC4zN10sWy0xMjUuNjYsNDguODNdLFstMTI1Ljk1LDQ5LjE4XSxbLTEyNi44NSw0OS41M10sWy0xMjcuMDMsNDkuODFdLFstMTI4LjA2LDQ5Ljk5XSxbLTEyOC40NCw1MC41NF0sWy0xMjguMzYsNTAuNzddLFstMTI3LjMxLDUwLjU1XSxbLTEyNi43LDUwLjRdLFstMTI1Ljc2LDUwLjNdLFstMTI1LjQyLDQ5Ljk1XSxbLTEyNC45Miw0OS40OF0sWy0xMjMuOTIsNDkuMDZdLFstMTIzLjUxLDQ4LjUxXV1dLFtbWy0xMjEuNTQsNzQuNDVdLFstMTIwLjExLDc0LjI0XSxbLTExNy41Niw3NC4xOV0sWy0xMTYuNTgsNzMuOV0sWy0xMTUuNTEsNzMuNDhdLFstMTE2Ljc3LDczLjIyXSxbLTExOS4yMiw3Mi41Ml0sWy0xMjAuNDYsNzEuODJdLFstMTIwLjQ2LDcxLjM4XSxbLTEyMy4wOSw3MC45XSxbLTEyMy42Miw3MS4zNF0sWy0xMjUuOTMsNzEuODddLFstMTI1LjUsNzIuMjldLFstMTI0LjgxLDczLjAyXSxbLTEyMy45NCw3My42OF0sWy0xMjQuOTIsNzQuMjldLFstMTIxLjU0LDc0LjQ1XV1dLFtbWy0xMDcuODIsNzUuODVdLFstMTA2LjkzLDc2LjAxXSxbLTEwNS44OCw3NS45N10sWy0xMDUuNyw3NS40OF0sWy0xMDYuMzEsNzUuMDFdLFstMTA5LjcsNzQuODVdLFstMTEyLjIyLDc0LjQyXSxbLTExMy43NCw3NC4zOV0sWy0xMTMuODcsNzQuNzJdLFstMTExLjc5LDc1LjE2XSxbLTExNi4zMSw3NS4wNF0sWy0xMTcuNzEsNzUuMjJdLFstMTE2LjM1LDc2LjJdLFstMTE1LjQsNzYuNDhdLFstMTEyLjU5LDc2LjE0XSxbLTExMC44MSw3NS41NV0sWy0xMDkuMDcsNzUuNDddLFstMTEwLjUsNzYuNDNdLFstMTA5LjU4LDc2Ljc5XSxbLTEwOC41NSw3Ni42OF0sWy0xMDguMjEsNzYuMl0sWy0xMDcuODIsNzUuODVdXV0sW1tbLTEwNi41Miw3My4wOF0sWy0xMDUuNCw3Mi42N10sWy0xMDQuNzcsNzEuN10sWy0xMDQuNDYsNzAuOTldLFstMTAyLjc5LDcwLjVdLFstMTAwLjk4LDcwLjAyXSxbLTEwMS4wOSw2OS41OF0sWy0xMDIuNzMsNjkuNV0sWy0xMDIuMDksNjkuMTJdLFstMTAyLjQzLDY4Ljc1XSxbLTEwNC4yNCw2OC45MV0sWy0xMDUuOTYsNjkuMThdLFstMTA3LjEyLDY5LjEyXSxbLTEwOSw2OC43OF0sWy0xMTEuNTMsNjguNjNdLFstMTEzLjMxLDY4LjU0XSxbLTExMy44NSw2OS4wMV0sWy0xMTUuMjIsNjkuMjhdLFstMTE2LjExLDY5LjE3XSxbLTExNy4zNCw2OS45Nl0sWy0xMTYuNjcsNzAuMDddLFstMTE1LjEzLDcwLjI0XSxbLTExMy43Miw3MC4xOV0sWy0xMTIuNDIsNzAuMzddLFstMTE0LjM1LDcwLjZdLFstMTE2LjQ5LDcwLjUyXSxbLTExNy45LDcwLjU0XSxbLTExOC40Myw3MC45MV0sWy0xMTYuMTEsNzEuMzFdLFstMTE3LjY2LDcxLjNdLFstMTE5LjQsNzEuNTZdLFstMTE4LjU2LDcyLjMxXSxbLTExNy44Nyw3Mi43MV0sWy0xMTUuMTksNzMuMzFdLFstMTE0LjE3LDczLjEyXSxbLTExNC42Nyw3Mi42NV0sWy0xMTIuNDQsNzIuOTZdLFstMTExLjA1LDcyLjQ1XSxbLTEwOS45Miw3Mi45Nl0sWy0xMDkuMDEsNzIuNjNdLFstMTA4LjE5LDcxLjY1XSxbLTEwNy42OSw3Mi4wN10sWy0xMDguNCw3My4wOV0sWy0xMDcuNTIsNzMuMjRdLFstMTA2LjUyLDczLjA4XV1dLFtbWy0xMDAuNDQsNzIuNzFdLFstMTAxLjU0LDczLjM2XSxbLTEwMC4zNiw3My44NF0sWy05OS4xNiw3My42M10sWy05Ny4zOCw3My43Nl0sWy05Ny4xMiw3My40N10sWy05OC4wNSw3Mi45OV0sWy05Ni41NCw3Mi41Nl0sWy05Ni43Miw3MS42Nl0sWy05OC4zNiw3MS4yN10sWy05OS4zMiw3MS4zNl0sWy0xMDAuMDEsNzEuNzRdLFstMTAyLjUsNzIuNTFdLFstMTAyLjQ4LDcyLjgzXSxbLTEwMC40NCw3Mi43MV1dXSxbW1stMTA2LjYsNzMuNl0sWy0xMDUuMjYsNzMuNjRdLFstMTA0LjUsNzMuNDJdLFstMTA1LjM4LDcyLjc2XSxbLTEwNi45NCw3My40Nl0sWy0xMDYuNiw3My42XV1dLFtbWy05OC41LDc2LjcyXSxbLTk3Ljc0LDc2LjI2XSxbLTk3LjcsNzUuNzRdLFstOTguMTYsNzVdLFstOTkuODEsNzQuOV0sWy0xMDAuODgsNzUuMDZdLFstMTAwLjg2LDc1LjY0XSxbLTEwMi41LDc1LjU2XSxbLTEwMi41Nyw3Ni4zNF0sWy0xMDEuNDksNzYuMzFdLFstOTkuOTgsNzYuNjVdLFstOTguNTgsNzYuNTldLFstOTguNSw3Ni43Ml1dXSxbW1stOTYuMDIsODAuNl0sWy05NS4zMiw4MC45MV0sWy05NC4zLDgwLjk4XSxbLTk0Ljc0LDgxLjIxXSxbLTkyLjQxLDgxLjI2XSxbLTkxLjEzLDgwLjcyXSxbLTg5LjQ1LDgwLjUxXSxbLTg3LjgxLDgwLjMyXSxbLTg3LjAyLDc5LjY2XSxbLTg1LjgxLDc5LjM0XSxbLTg3LjE5LDc5LjA0XSxbLTg5LjA0LDc4LjI5XSxbLTkwLjgsNzguMjJdLFstOTIuODgsNzguMzRdLFstOTMuOTUsNzguNzVdLFstOTMuOTQsNzkuMTFdLFstOTMuMTUsNzkuMzhdLFstOTQuOTcsNzkuMzddLFstOTYuMDgsNzkuNzFdLFstOTYuNzEsODAuMTZdLFstOTYuMDIsODAuNl1dXSxbW1stOTEuNTksODEuODldLFstOTAuMSw4Mi4wOV0sWy04OC45Myw4Mi4xMl0sWy04Ni45Nyw4Mi4yOF0sWy04NS41LDgyLjY1XSxbLTg0LjI2LDgyLjZdLFstODMuMTgsODIuMzJdLFstODIuNDIsODIuODZdLFstODEuMSw4My4wMl0sWy03OS4zMSw4My4xM10sWy03Ni4yNSw4My4xN10sWy03NS43Miw4My4wNl0sWy03Mi44Myw4My4yM10sWy03MC42Nyw4My4xN10sWy02OC41LDgzLjExXSxbLTY1LjgzLDgzLjAzXSxbLTYzLjY4LDgyLjldLFstNjEuODUsODIuNjNdLFstNjEuODksODIuMzZdLFstNjQuMzMsODEuOTNdLFstNjYuNzUsODEuNzNdLFstNjcuNjYsODEuNV0sWy02NS40OCw4MS41MV0sWy02Ny44NCw4MC45XSxbLTY5LjQ3LDgwLjYyXSxbLTcxLjE4LDc5LjhdLFstNzMuMjQsNzkuNjNdLFstNzMuODgsNzkuNDNdLFstNzYuOTEsNzkuMzJdLFstNzUuNTMsNzkuMl0sWy03Ni4yMiw3OS4wMl0sWy03NS4zOSw3OC41M10sWy03Ni4zNCw3OC4xOF0sWy03Ny44OSw3Ny45XSxbLTc4LjM2LDc3LjUxXSxbLTc5Ljc2LDc3LjIxXSxbLTc5LjYyLDc2Ljk4XSxbLTc3LjkxLDc3LjAyXSxbLTc3Ljg5LDc2Ljc4XSxbLTgwLjU2LDc2LjE4XSxbLTgzLjE3LDc2LjQ1XSxbLTg2LjExLDc2LjNdLFstODcuNiw3Ni40Ml0sWy04OS40OSw3Ni40N10sWy04OS42Miw3Ni45NV0sWy04Ny43Nyw3Ny4xOF0sWy04OC4yNiw3Ny45XSxbLTg3LjY1LDc3Ljk3XSxbLTg0Ljk4LDc3LjU0XSxbLTg2LjM0LDc4LjE4XSxbLTg3Ljk2LDc4LjM3XSxbLTg3LjE1LDc4Ljc2XSxbLTg1LjM4LDc5XSxbLTg1LjA5LDc5LjM1XSxbLTg2LjUxLDc5Ljc0XSxbLTg2LjkzLDgwLjI1XSxbLTg0LjIsODAuMjFdLFstODMuNDEsODAuMV0sWy04MS44NSw4MC40Nl0sWy04NC4xLDgwLjU4XSxbLTg3LjYsODAuNTJdLFstODkuMzcsODAuODZdLFstOTAuMiw4MS4yNl0sWy05MS4zNyw4MS41NV0sWy05MS41OSw4MS44OV1dXSxbW1stNzUuMjIsNjcuNDRdLFstNzUuODcsNjcuMTVdLFstNzYuOTksNjcuMV0sWy03Ny4yNCw2Ny41OV0sWy03Ni44MSw2OC4xNV0sWy03NS45LDY4LjI5XSxbLTc1LjExLDY4LjAxXSxbLTc1LjEsNjcuNThdLFstNzUuMjIsNjcuNDRdXV0sW1tbLTk2LjI2LDY5LjQ5XSxbLTk1LjY1LDY5LjExXSxbLTk2LjI3LDY4Ljc2XSxbLTk3LjYyLDY5LjA2XSxbLTk4LjQzLDY4Ljk1XSxbLTk5LjgsNjkuNF0sWy05OC45Miw2OS43MV0sWy05OC4yMiw3MC4xNF0sWy05Ny4xNiw2OS44Nl0sWy05Ni41Niw2OS42OF0sWy05Ni4yNiw2OS40OV1dXSxbW1stNjQuNTIsNDkuODddLFstNjQuMTcsNDkuOTZdLFstNjIuODYsNDkuNzFdLFstNjEuODQsNDkuMjldLFstNjEuODEsNDkuMTFdLFstNjIuMjksNDkuMDldLFstNjMuNTksNDkuNF0sWy02NC41Miw0OS44N11dXSxbW1stNjQuMDEsNDcuMDRdLFstNjMuNjYsNDYuNTVdLFstNjIuOTQsNDYuNDJdLFstNjIuMDEsNDYuNDRdLFstNjIuNSw0Ni4wM10sWy02Mi44Nyw0NS45N10sWy02NC4xNCw0Ni4zOV0sWy02NC4zOSw0Ni43M10sWy02NC4wMSw0Ny4wNF1dXV19LHtuOmBVbml0ZWQgU3RhdGVzYCxhMjpgVVNgLGEzOmBVU0FgLHA6YFVTYCxsOlstOTcuNDgsMzkuNTRdLGc6W1tbWy0xMjIuODQsNDldLFstMTIwLDQ5XSxbLTExNy4wMyw0OV0sWy0xMTYuMDUsNDldLFstMTEzLDQ5XSxbLTExMC4wNSw0OV0sWy0xMDcuMDUsNDldLFstMTA0LjA1LDQ5XSxbLTEwMC42NSw0OV0sWy05Ny4yMyw0OV0sWy05NS4xNiw0OV0sWy05NS4xNiw0OS4zOF0sWy05NC44Miw0OS4zOV0sWy05NC42NCw0OC44NF0sWy05NC4zMyw0OC42N10sWy05My42Myw0OC42MV0sWy05Mi42MSw0OC40NV0sWy05MS42NCw0OC4xNF0sWy05MC44Myw0OC4yN10sWy04OS42LDQ4LjAxXSxbLTg5LjI3LDQ4LjAyXSxbLTg4LjM4LDQ4LjNdLFstODcuNDQsNDcuOTRdLFstODYuNDYsNDcuNTVdLFstODUuNjUsNDcuMjJdLFstODQuODgsNDYuOV0sWy04NC43OCw0Ni42NF0sWy04NC41NCw0Ni41NF0sWy04NC42LDQ2LjQ0XSxbLTg0LjM0LDQ2LjQxXSxbLTg0LjE0LDQ2LjUxXSxbLTg0LjA5LDQ2LjI4XSxbLTgzLjg5LDQ2LjEyXSxbLTgzLjYyLDQ2LjEyXSxbLTgzLjQ3LDQ1Ljk5XSxbLTgzLjU5LDQ1LjgyXSxbLTgyLjU1LDQ1LjM1XSxbLTgyLjM0LDQ0LjQ0XSxbLTgyLjE0LDQzLjU3XSxbLTgyLjQzLDQyLjk4XSxbLTgyLjksNDIuNDNdLFstODMuMTIsNDIuMDhdLFstODMuMTQsNDEuOThdLFstODMuMDMsNDEuODNdLFstODIuNjksNDEuNjhdLFstODIuNDQsNDEuNjhdLFstODEuMjgsNDIuMjFdLFstODAuMjUsNDIuMzddLFstNzguOTQsNDIuODZdLFstNzguOTIsNDIuOTddLFstNzkuMDEsNDMuMjddLFstNzkuMTcsNDMuNDddLFstNzguNzIsNDMuNjNdLFstNzcuNzQsNDMuNjNdLFstNzYuODIsNDMuNjNdLFstNzYuNSw0NC4wMl0sWy03Ni4zNyw0NC4xXSxbLTc1LjMyLDQ0LjgyXSxbLTc0Ljg3LDQ1XSxbLTczLjM1LDQ1LjAxXSxbLTcxLjUxLDQ1LjAxXSxbLTcxLjQsNDUuMjZdLFstNzEuMDgsNDUuMzFdLFstNzAuNjYsNDUuNDZdLFstNzAuMzEsNDUuOTJdLFstNzAsNDYuNjldLFstNjkuMjQsNDcuNDVdLFstNjguOSw0Ny4xOV0sWy02OC4yMyw0Ny4zNV0sWy02Ny43OSw0Ny4wN10sWy02Ny43OSw0NS43XSxbLTY3LjE0LDQ1LjE0XSxbLTY2Ljk2LDQ0LjgxXSxbLTY4LjAzLDQ0LjMzXSxbLTY5LjA2LDQzLjk4XSxbLTcwLjEyLDQzLjY4XSxbLTcwLjY1LDQzLjA5XSxbLTcwLjgxLDQyLjg3XSxbLTcwLjgyLDQyLjM0XSxbLTcwLjQ5LDQxLjgxXSxbLTcwLjA4LDQxLjc4XSxbLTcwLjE4LDQyLjE1XSxbLTY5Ljg4LDQxLjkyXSxbLTY5Ljk3LDQxLjY0XSxbLTcwLjY0LDQxLjQ4XSxbLTcxLjEyLDQxLjQ5XSxbLTcxLjg2LDQxLjMyXSxbLTcyLjI5LDQxLjI3XSxbLTcyLjg4LDQxLjIyXSxbLTczLjcxLDQwLjkzXSxbLTcyLjI0LDQxLjEyXSxbLTcxLjk0LDQwLjkzXSxbLTczLjM0LDQwLjYzXSxbLTczLjk4LDQwLjYzXSxbLTczLjk1LDQwLjc1XSxbLTc0LjI2LDQwLjQ3XSxbLTczLjk2LDQwLjQzXSxbLTc0LjE4LDM5LjcxXSxbLTc0LjkxLDM4Ljk0XSxbLTc0Ljk4LDM5LjJdLFstNzUuMiwzOS4yNV0sWy03NS41MywzOS41XSxbLTc1LjMyLDM4Ljk2XSxbLTc1LjA3LDM4Ljc4XSxbLTc1LjA2LDM4LjRdLFstNzUuMzgsMzguMDJdLFstNzUuOTQsMzcuMjJdLFstNzYuMDMsMzcuMjZdLFstNzUuNzIsMzcuOTRdLFstNzYuMjMsMzguMzJdLFstNzYuMzUsMzkuMTVdLFstNzYuNTQsMzguNzJdLFstNzYuMzMsMzguMDhdLFstNzYuOTksMzguMjRdLFstNzYuMywzNy45Ml0sWy03Ni4yNiwzNi45N10sWy03NS45NywzNi45XSxbLTc1Ljg3LDM2LjU1XSxbLTc1LjczLDM1LjU1XSxbLTc2LjM2LDM0LjgxXSxbLTc3LjQsMzQuNTFdLFstNzguMDUsMzMuOTNdLFstNzguNTUsMzMuODZdLFstNzkuMDYsMzMuNDldLFstNzkuMiwzMy4xNl0sWy04MC4zLDMyLjUxXSxbLTgwLjg2LDMyLjAzXSxbLTgxLjM0LDMxLjQ0XSxbLTgxLjQ5LDMwLjczXSxbLTgxLjMxLDMwLjA0XSxbLTgwLjk4LDI5LjE4XSxbLTgwLjU0LDI4LjQ3XSxbLTgwLjUzLDI4LjA0XSxbLTgwLjA2LDI2Ljg4XSxbLTgwLjA5LDI2LjIxXSxbLTgwLjEzLDI1LjgyXSxbLTgwLjM4LDI1LjIxXSxbLTgwLjY4LDI1LjA4XSxbLTgxLjE3LDI1LjJdLFstODEuMzMsMjUuNjRdLFstODEuNzEsMjUuODddLFstODIuMjQsMjYuNzNdLFstODIuNzEsMjcuNV0sWy04Mi44NiwyNy44OV0sWy04Mi42NSwyOC41NV0sWy04Mi45MywyOS4xXSxbLTgzLjcxLDI5Ljk0XSxbLTg0LjEsMzAuMDldLFstODUuMTEsMjkuNjRdLFstODUuMjksMjkuNjldLFstODUuNzcsMzAuMTVdLFstODYuNCwzMC40XSxbLTg3LjUzLDMwLjI3XSxbLTg4LjQyLDMwLjM4XSxbLTg5LjE4LDMwLjMyXSxbLTg5LjU5LDMwLjE2XSxbLTg5LjQxLDI5Ljg5XSxbLTg5LjQzLDI5LjQ5XSxbLTg5LjIyLDI5LjI5XSxbLTg5LjQxLDI5LjE2XSxbLTg5Ljc4LDI5LjMxXSxbLTkwLjE1LDI5LjEyXSxbLTkwLjg4LDI5LjE1XSxbLTkxLjYzLDI5LjY4XSxbLTkyLjUsMjkuNTVdLFstOTMuMjMsMjkuNzhdLFstOTMuODUsMjkuNzFdLFstOTQuNjksMjkuNDhdLFstOTUuNiwyOC43NF0sWy05Ni41OSwyOC4zMV0sWy05Ny4xNCwyNy44M10sWy05Ny4zNywyNy4zOF0sWy05Ny4zOCwyNi42OV0sWy05Ny4zMywyNi4yMV0sWy05Ny4xNCwyNS44N10sWy05Ny41MywyNS44NF0sWy05OC4yNCwyNi4wNl0sWy05OS4wMiwyNi4zN10sWy05OS4zLDI2Ljg0XSxbLTk5LjUyLDI3LjU0XSxbLTEwMC4xMSwyOC4xMV0sWy0xMDAuNDYsMjguN10sWy0xMDAuOTYsMjkuMzhdLFstMTAxLjY2LDI5Ljc4XSxbLTEwMi40OCwyOS43Nl0sWy0xMDMuMTEsMjguOTddLFstMTAzLjk0LDI5LjI3XSxbLTEwNC40NiwyOS41N10sWy0xMDQuNzEsMzAuMTJdLFstMTA1LjA0LDMwLjY0XSxbLTEwNS42MywzMS4wOF0sWy0xMDYuMTQsMzEuNF0sWy0xMDYuNTEsMzEuNzVdLFstMTA4LjI0LDMxLjc1XSxbLTEwOC4yNCwzMS4zNF0sWy0xMDkuMDMsMzEuMzRdLFstMTExLjAyLDMxLjMzXSxbLTExMy4zLDMyLjA0XSxbLTExNC44MSwzMi41M10sWy0xMTQuNzIsMzIuNzJdLFstMTE1Ljk5LDMyLjYxXSxbLTExNy4xMywzMi41NF0sWy0xMTcuMywzMy4wNV0sWy0xMTcuOTQsMzMuNjJdLFstMTE4LjQxLDMzLjc0XSxbLTExOC41MiwzNC4wM10sWy0xMTkuMDgsMzQuMDhdLFstMTE5LjQ0LDM0LjM1XSxbLTEyMC4zNywzNC40NV0sWy0xMjAuNjIsMzQuNjFdLFstMTIwLjc0LDM1LjE2XSxbLTEyMS43MSwzNi4xNl0sWy0xMjIuNTUsMzcuNTVdLFstMTIyLjUxLDM3Ljc4XSxbLTEyMi45NSwzOC4xMV0sWy0xMjMuNzMsMzguOTVdLFstMTIzLjg3LDM5Ljc3XSxbLTEyNC40LDQwLjMxXSxbLTEyNC4xOCw0MS4xNF0sWy0xMjQuMjEsNDJdLFstMTI0LjUzLDQyLjc3XSxbLTEyNC4xNCw0My43MV0sWy0xMjQuMDIsNDQuNjJdLFstMTIzLjksNDUuNTJdLFstMTI0LjA4LDQ2Ljg2XSxbLTEyNC40LDQ3LjcyXSxbLTEyNC42OSw0OC4xOF0sWy0xMjQuNTcsNDguMzhdLFstMTIzLjEyLDQ4LjA0XSxbLTEyMi41OSw0Ny4xXSxbLTEyMi4zNCw0Ny4zNl0sWy0xMjIuNSw0OC4xOF0sWy0xMjIuODQsNDldXV0sW1tbLTE1NS40LDIwLjA4XSxbLTE1NS4yMiwxOS45OV0sWy0xNTUuMDYsMTkuODZdLFstMTU0LjgxLDE5LjUxXSxbLTE1NC44MywxOS40NV0sWy0xNTUuMjIsMTkuMjRdLFstMTU1LjU0LDE5LjA4XSxbLTE1NS42OSwxOC45Ml0sWy0xNTUuOTQsMTkuMDZdLFstMTU1LjkxLDE5LjM0XSxbLTE1Ni4wNywxOS43XSxbLTE1Ni4wMiwxOS44MV0sWy0xNTUuODUsMTkuOThdLFstMTU1LjkyLDIwLjE3XSxbLTE1NS44NiwyMC4yN10sWy0xNTUuNzksMjAuMjVdLFstMTU1LjQsMjAuMDhdXV0sW1tbLTE1NiwyMC43Nl0sWy0xNTYuMDgsMjAuNjRdLFstMTU2LjQxLDIwLjU3XSxbLTE1Ni41OSwyMC43OF0sWy0xNTYuNywyMC44Nl0sWy0xNTYuNzEsMjAuOTNdLFstMTU2LjYxLDIxLjAxXSxbLTE1Ni4yNiwyMC45Ml0sWy0xNTYsMjAuNzZdXV0sW1tbLTE1Ni43NiwyMS4xOF0sWy0xNTYuNzksMjEuMDddLFstMTU3LjMzLDIxLjFdLFstMTU3LjI1LDIxLjIyXSxbLTE1Ni43NiwyMS4xOF1dXSxbW1stMTU4LjAzLDIxLjcyXSxbLTE1Ny45NCwyMS42NV0sWy0xNTcuNjUsMjEuMzJdLFstMTU3LjcxLDIxLjI2XSxbLTE1Ny43OCwyMS4yOF0sWy0xNTguMTMsMjEuMzFdLFstMTU4LjI1LDIxLjU0XSxbLTE1OC4yOSwyMS41OF0sWy0xNTguMDMsMjEuNzJdXV0sW1tbLTE1OS4zNywyMi4yMV0sWy0xNTkuMzUsMjEuOThdLFstMTU5LjQ2LDIxLjg4XSxbLTE1OS44LDIyLjA3XSxbLTE1OS43NSwyMi4xNF0sWy0xNTkuNiwyMi4yNF0sWy0xNTkuMzcsMjIuMjFdXV0sW1tbLTE2Ni40Nyw2MC4zOF0sWy0xNjUuNjcsNjAuMjldLFstMTY1LjU4LDU5LjkxXSxbLTE2Ni4xOSw1OS43NV0sWy0xNjYuODUsNTkuOTRdLFstMTY3LjQ2LDYwLjIxXSxbLTE2Ni40Nyw2MC4zOF1dXSxbW1stMTUzLjIzLDU3Ljk3XSxbLTE1Mi41Niw1Ny45XSxbLTE1Mi4xNCw1Ny41OV0sWy0xNTMuMDEsNTcuMTJdLFstMTU0LjAxLDU2LjczXSxbLTE1NC41Miw1Ni45OV0sWy0xNTQuNjcsNTcuNDZdLFstMTUzLjc2LDU3LjgyXSxbLTE1My4yMyw1Ny45N11dXSxbW1stMTQwLjk5LDY5LjcxXSxbLTE0MC45OSw2Nl0sWy0xNDEsNjAuMzFdLFstMTQwLjAxLDYwLjI4XSxbLTEzOS4wNCw2MF0sWy0xMzguMzQsNTkuNTZdLFstMTM3LjQ1LDU4LjkxXSxbLTEzNi40OCw1OS40Nl0sWy0xMzUuNDgsNTkuNzldLFstMTM0Ljk0LDU5LjI3XSxbLTEzNC4yNyw1OC44Nl0sWy0xMzMuMzYsNTguNDFdLFstMTMyLjczLDU3LjY5XSxbLTEzMS43MSw1Ni41NV0sWy0xMzAuMDEsNTUuOTJdLFstMTI5Ljk4LDU1LjI5XSxbLTEzMC41NCw1NC44XSxbLTEzMS4wOSw1NS4xOF0sWy0xMzEuOTcsNTUuNV0sWy0xMzIuMjUsNTYuMzddLFstMTMzLjU0LDU3LjE4XSxbLTEzNC4wOCw1OC4xMl0sWy0xMzUuMDQsNTguMTldLFstMTM2LjYzLDU4LjIxXSxbLTEzNy44LDU4LjVdLFstMTM5Ljg3LDU5LjU0XSxbLTE0MC44Myw1OS43M10sWy0xNDIuNTcsNjAuMDhdLFstMTQzLjk2LDYwXSxbLTE0NS45Myw2MC40Nl0sWy0xNDcuMTEsNjAuODhdLFstMTQ4LjIyLDYwLjY3XSxbLTE0OC4wMiw1OS45OF0sWy0xNDguNTcsNTkuOTFdLFstMTQ5LjczLDU5LjcxXSxbLTE1MC42MSw1OS4zN10sWy0xNTEuNzIsNTkuMTZdLFstMTUxLjg2LDU5Ljc0XSxbLTE1MS40MSw2MC43M10sWy0xNTAuMzUsNjEuMDNdLFstMTUwLjYyLDYxLjI4XSxbLTE1MS45LDYwLjczXSxbLTE1Mi41OCw2MC4wNl0sWy0xNTQuMDIsNTkuMzVdLFstMTUzLjI5LDU4Ljg2XSxbLTE1NC4yMyw1OC4xNV0sWy0xNTUuMzEsNTcuNzNdLFstMTU2LjMxLDU3LjQyXSxbLTE1Ni41Niw1Ni45OF0sWy0xNTguMTIsNTYuNDZdLFstMTU4LjQzLDU1Ljk5XSxbLTE1OS42LDU1LjU3XSxbLTE2MC4yOSw1NS42NF0sWy0xNjEuMjIsNTUuMzZdLFstMTYyLjI0LDU1LjAyXSxbLTE2My4wNyw1NC42OV0sWy0xNjQuNzksNTQuNF0sWy0xNjQuOTQsNTQuNTddLFstMTYzLjg1LDU1LjA0XSxbLTE2Mi44Nyw1NS4zNV0sWy0xNjEuOCw1NS44OV0sWy0xNjAuNTYsNTYuMDFdLFstMTYwLjA3LDU2LjQyXSxbLTE1OC42OCw1Ny4wMl0sWy0xNTguNDYsNTcuMjJdLFstMTU3LjcyLDU3LjU3XSxbLTE1Ny41NSw1OC4zM10sWy0xNTcuMDQsNTguOTJdLFstMTU4LjE5LDU4LjYyXSxbLTE1OC41Miw1OC43OV0sWy0xNTkuMDYsNTguNDJdLFstMTU5LjcxLDU4LjkzXSxbLTE1OS45OCw1OC41N10sWy0xNjAuMzYsNTkuMDddLFstMTYxLjM2LDU4LjY3XSxbLTE2MS45Nyw1OC42N10sWy0xNjIuMDUsNTkuMjddLFstMTYxLjg3LDU5LjYzXSxbLTE2Mi41Miw1OS45OV0sWy0xNjMuODIsNTkuOF0sWy0xNjQuNjYsNjAuMjddLFstMTY1LjM1LDYwLjUxXSxbLTE2NS4zNSw2MS4wN10sWy0xNjYuMTIsNjEuNV0sWy0xNjUuNzMsNjIuMDddLFstMTY0LjkyLDYyLjYzXSxbLTE2NC41Niw2My4xNV0sWy0xNjMuNzUsNjMuMjJdLFstMTYzLjA3LDYzLjA2XSxbLTE2Mi4yNiw2My41NF0sWy0xNjEuNTMsNjMuNDZdLFstMTYwLjc3LDYzLjc3XSxbLTE2MC45Niw2NC4yMl0sWy0xNjEuNTIsNjQuNF0sWy0xNjAuNzgsNjQuNzldLFstMTYxLjM5LDY0Ljc4XSxbLTE2Mi40NSw2NC41Nl0sWy0xNjIuNzYsNjQuMzRdLFstMTYzLjU1LDY0LjU2XSxbLTE2NC45Niw2NC40NV0sWy0xNjYuNDMsNjQuNjldLFstMTY2Ljg1LDY1LjA5XSxbLTE2OC4xMSw2NS42N10sWy0xNjYuNzEsNjYuMDldLFstMTY0LjQ3LDY2LjU4XSxbLTE2My42NSw2Ni41OF0sWy0xNjMuNzksNjYuMDhdLFstMTYxLjY4LDY2LjEyXSxbLTE2Mi40OSw2Ni43NF0sWy0xNjMuNzIsNjcuMTJdLFstMTY0LjQzLDY3LjYyXSxbLTE2NS4zOSw2OC4wNF0sWy0xNjYuNzYsNjguMzZdLFstMTY2LjIsNjguODhdLFstMTY0LjQzLDY4LjkyXSxbLTE2My4xNyw2OS4zN10sWy0xNjIuOTMsNjkuODZdLFstMTYxLjkxLDcwLjMzXSxbLTE2MC45Myw3MC40NV0sWy0xNTkuMDQsNzAuODldLFstMTU4LjEyLDcwLjgyXSxbLTE1Ni41OCw3MS4zNl0sWy0xNTUuMDcsNzEuMTVdLFstMTU0LjM0LDcwLjddLFstMTUzLjksNzAuODldLFstMTUyLjIxLDcwLjgzXSxbLTE1Mi4yNyw3MC42XSxbLTE1MC43NCw3MC40M10sWy0xNDkuNzIsNzAuNTNdLFstMTQ3LjYxLDcwLjIxXSxbLTE0NS42OSw3MC4xMl0sWy0xNDQuOTIsNjkuOTldLFstMTQzLjU5LDcwLjE1XSxbLTE0Mi4wNyw2OS44NV0sWy0xNDAuOTksNjkuNzFdXV0sW1tbLTE3MS43Myw2My43OF0sWy0xNzEuMTEsNjMuNTldLFstMTcwLjQ5LDYzLjY5XSxbLTE2OS42OCw2My40M10sWy0xNjguNjksNjMuM10sWy0xNjguNzcsNjMuMTldLFstMTY5LjUzLDYyLjk4XSxbLTE3MC4yOSw2My4xOV0sWy0xNzAuNjcsNjMuMzhdLFstMTcxLjU1LDYzLjMyXSxbLTE3MS43OSw2My40MV0sWy0xNzEuNzMsNjMuNzhdXV1dfSx7bjpgS2F6YWtoc3RhbmAsYTI6YEtaYCxhMzpgS0FaYCxwOmBLWmAsbDpbNjguNjksNDkuMDVdLGc6W1tbWzg3LjM2LDQ5LjIxXSxbODYuNiw0OC41NV0sWzg1Ljc3LDQ4LjQ2XSxbODUuNzIsNDcuNDVdLFs4NS4xNiw0N10sWzgzLjE4LDQ3LjMzXSxbODIuNDYsNDUuNTRdLFs4MS45NSw0NS4zMl0sWzc5Ljk3LDQ0LjkyXSxbODAuODcsNDMuMThdLFs4MC4xOCw0Mi45Ml0sWzgwLjI2LDQyLjM1XSxbNzkuNjQsNDIuNV0sWzc5LjE0LDQyLjg2XSxbNzcuNjYsNDIuOTZdLFs3Niw0Mi45OV0sWzc1LjY0LDQyLjg4XSxbNzQuMjEsNDMuM10sWzczLjY1LDQzLjA5XSxbNzMuNDksNDIuNV0sWzcxLjg0LDQyLjg1XSxbNzEuMTksNDIuN10sWzcwLjk2LDQyLjI3XSxbNzAuMzksNDIuMDhdLFs2OS4wNyw0MS4zOF0sWzY4LjYzLDQwLjY3XSxbNjguMjYsNDAuNjZdLFs2Ny45OSw0MS4xNF0sWzY2LjcxLDQxLjE3XSxbNjYuNTEsNDEuOTldLFs2Ni4wMiw0MS45OV0sWzY2LjEsNDNdLFs2NC45LDQzLjczXSxbNjMuMTksNDMuNjVdLFs2Mi4wMSw0My41XSxbNjEuMDYsNDQuNDFdLFs2MC4yNCw0NC43OF0sWzU4LjY5LDQ1LjVdLFs1OC41LDQ1LjU5XSxbNTUuOTMsNDVdLFs1NS45Nyw0MS4zMV0sWzU1LjQ2LDQxLjI2XSxbNTQuNzYsNDIuMDRdLFs1NC4wOCw0Mi4zMl0sWzUyLjk0LDQyLjEyXSxbNTIuNSw0MS43OF0sWzUyLjQ1LDQyLjAzXSxbNTIuNjksNDIuNDRdLFs1Mi41LDQyLjc5XSxbNTEuMzQsNDMuMTNdLFs1MC44OSw0NC4wM10sWzUwLjM0LDQ0LjI4XSxbNTAuMzEsNDQuNjFdLFs1MS4yOCw0NC41MV0sWzUxLjMyLDQ1LjI1XSxbNTIuMTcsNDUuNDFdLFs1My4wNCw0NS4yNl0sWzUzLjIyLDQ2LjIzXSxbNTMuMDQsNDYuODVdLFs1Mi4wNCw0Ni44XSxbNTEuMTksNDcuMDVdLFs1MC4wMyw0Ni42MV0sWzQ5LjEsNDYuNF0sWzQ4LjU5LDQ2LjU2XSxbNDguNjksNDcuMDhdLFs0OC4wNiw0Ny43NF0sWzQ3LjMyLDQ3LjcyXSxbNDYuNDcsNDguMzldLFs0Ny4wNCw0OS4xNV0sWzQ2Ljc1LDQ5LjM2XSxbNDcuNTUsNTAuNDVdLFs0OC41OCw0OS44N10sWzQ4LjcsNTAuNjFdLFs1MC43Nyw1MS42OV0sWzUyLjMzLDUxLjcyXSxbNTQuNTMsNTEuMDNdLFs1NS43Miw1MC42Ml0sWzU2Ljc4LDUxLjA0XSxbNTguMzYsNTEuMDZdLFs1OS42NCw1MC41NV0sWzU5LjkzLDUwLjg0XSxbNjEuMzQsNTAuOF0sWzYxLjU5LDUxLjI3XSxbNTkuOTcsNTEuOTZdLFs2MC45Myw1Mi40NV0sWzYwLjc0LDUyLjcyXSxbNjEuNyw1Mi45OF0sWzYwLjk4LDUzLjY2XSxbNjEuNDQsNTQuMDFdLFs2NS4xOCw1NC4zNV0sWzY1LjY3LDU0LjZdLFs2OC4xNyw1NC45N10sWzY5LjA3LDU1LjM5XSxbNzAuODcsNTUuMTddLFs3MS4xOCw1NC4xM10sWzcyLjIyLDU0LjM4XSxbNzMuNTEsNTQuMDRdLFs3My40Myw1My40OV0sWzc0LjM4LDUzLjU1XSxbNzYuODksNTQuNDldLFs3Ni41Myw1NC4xOF0sWzc3LjgsNTMuNF0sWzgwLjA0LDUwLjg2XSxbODAuNTcsNTEuMzldLFs4MS45NSw1MC44MV0sWzgzLjM4LDUxLjA3XSxbODMuOTQsNTAuODldLFs4NC40Miw1MC4zMV0sWzg1LjEyLDUwLjEyXSxbODUuNTQsNDkuNjldLFs4Ni44Myw0OS44M10sWzg3LjM2LDQ5LjIxXV1dXX0se246YFV6YmVraXN0YW5gLGEyOmBVWmAsYTM6YFVaQmAscDpgVVpgLGw6WzY0LjAxLDQxLjY5XSxnOltbW1s1NS45Nyw0MS4zMV0sWzU1LjkzLDQ1XSxbNTguNSw0NS41OV0sWzU4LjY5LDQ1LjVdLFs2MC4yNCw0NC43OF0sWzYxLjA2LDQ0LjQxXSxbNjIuMDEsNDMuNV0sWzYzLjE5LDQzLjY1XSxbNjQuOSw0My43M10sWzY2LjEsNDNdLFs2Ni4wMiw0MS45OV0sWzY2LjUxLDQxLjk5XSxbNjYuNzEsNDEuMTddLFs2Ny45OSw0MS4xNF0sWzY4LjI2LDQwLjY2XSxbNjguNjMsNDAuNjddLFs2OS4wNyw0MS4zOF0sWzcwLjM5LDQyLjA4XSxbNzAuOTYsNDIuMjddLFs3MS4yNiw0Mi4xN10sWzcwLjQyLDQxLjUyXSxbNzEuMTYsNDEuMTRdLFs3MS44Nyw0MS4zOV0sWzczLjA2LDQwLjg3XSxbNzEuNzcsNDAuMTVdLFs3MS4wMSw0MC4yNF0sWzcwLjYsNDAuMjJdLFs3MC40Niw0MC41XSxbNzAuNjcsNDAuOTZdLFs2OS4zMyw0MC43M10sWzY5LjAxLDQwLjA5XSxbNjguNTQsMzkuNTNdLFs2Ny43LDM5LjU4XSxbNjcuNDQsMzkuMTRdLFs2OC4xOCwzOC45XSxbNjguMzksMzguMTZdLFs2Ny44MywzNy4xNF0sWzY3LjA4LDM3LjM2XSxbNjYuNTIsMzcuMzZdLFs2Ni41NSwzNy45N10sWzY1LjIyLDM4LjRdLFs2NC4xNywzOC44OV0sWzYzLjUyLDM5LjM2XSxbNjIuMzcsNDAuMDVdLFs2MS44OCw0MS4wOF0sWzYxLjU1LDQxLjI3XSxbNjAuNDcsNDEuMjJdLFs2MC4wOCw0MS40M10sWzU5Ljk4LDQyLjIyXSxbNTguNjMsNDIuNzVdLFs1Ny43OSw0Mi4xN10sWzU2LjkzLDQxLjgzXSxbNTcuMSw0MS4zMl0sWzU1Ljk3LDQxLjMxXV1dXX0se246YFBhcHVhIE5ldyBHdWluZWFgLGEyOmBQR2AsYTM6YFBOR2AscDpgUEdgLGw6WzE0My45MSwtNS43XSxnOltbW1sxNDEsLTIuNl0sWzE0Mi43NCwtMy4yOV0sWzE0NC41OCwtMy44Nl0sWzE0NS4yNywtNC4zN10sWzE0NS44MywtNC44OF0sWzE0NS45OCwtNS40N10sWzE0Ny42NSwtNi4wOF0sWzE0Ny44OSwtNi42MV0sWzE0Ni45NywtNi43Ml0sWzE0Ny4xOSwtNy4zOV0sWzE0OC4wOCwtOC4wNF0sWzE0OC43MywtOS4xXSxbMTQ5LjMxLC05LjA3XSxbMTQ5LjI3LC05LjUxXSxbMTUwLjA0LC05LjY4XSxbMTQ5Ljc0LC05Ljg3XSxbMTUwLjgsLTEwLjI5XSxbMTUwLjY5LC0xMC41OF0sWzE1MC4wMywtMTAuNjVdLFsxNDkuNzgsLTEwLjM5XSxbMTQ4LjkyLC0xMC4yOF0sWzE0Ny45MSwtMTAuMTNdLFsxNDcuMTQsLTkuNDldLFsxNDYuNTcsLTguOTRdLFsxNDYuMDUsLTguMDddLFsxNDQuNzQsLTcuNjNdLFsxNDMuOSwtNy45Ml0sWzE0My4yOSwtOC4yNV0sWzE0My40MSwtOC45OF0sWzE0Mi42MywtOS4zM10sWzE0Mi4wNywtOS4xNl0sWzE0MS4wMywtOS4xMl0sWzE0MS4wMiwtNS44Nl0sWzE0MSwtMi42XV1dLFtbWzE1Mi42NCwtMy42Nl0sWzE1My4wMiwtMy45OF0sWzE1My4xNCwtNC41XSxbMTUyLjgzLC00Ljc3XSxbMTUyLjY0LC00LjE4XSxbMTUyLjQxLC0zLjc5XSxbMTUxLjk1LC0zLjQ2XSxbMTUxLjM4LC0zLjA0XSxbMTUwLjY2LC0yLjc0XSxbMTUwLjk0LC0yLjVdLFsxNTEuNDgsLTIuNzhdLFsxNTEuODIsLTNdLFsxNTIuMjQsLTMuMjRdLFsxNTIuNjQsLTMuNjZdXV0sW1tbMTUxLjMsLTUuODRdLFsxNTAuNzUsLTYuMDhdLFsxNTAuMjQsLTYuMzJdLFsxNDkuNzEsLTYuMzJdLFsxNDguODksLTYuMDNdLFsxNDguMzIsLTUuNzVdLFsxNDguNCwtNS40NF0sWzE0OS4zLC01LjU4XSxbMTQ5Ljg1LC01LjUxXSxbMTUwLC01LjAzXSxbMTUwLjE0LC01XSxbMTUwLjI0LC01LjUzXSxbMTUwLjgxLC01LjQ2XSxbMTUxLjA5LC01LjExXSxbMTUxLjY1LC00Ljc2XSxbMTUxLjU0LC00LjE3XSxbMTUyLjE0LC00LjE1XSxbMTUyLjM0LC00LjMxXSxbMTUyLjMyLC00Ljg3XSxbMTUxLjk4LC01LjQ4XSxbMTUxLjQ2LC01LjU2XSxbMTUxLjMsLTUuODRdXV0sW1tbMTU0Ljc2LC01LjM0XSxbMTU1LjA2LC01LjU3XSxbMTU1LjU1LC02LjJdLFsxNTYuMDIsLTYuNTRdLFsxNTUuODgsLTYuODJdLFsxNTUuNiwtNi45Ml0sWzE1NS4xNywtNi41NF0sWzE1NC43MywtNS45XSxbMTU0LjUxLC01LjE0XSxbMTU0LjY1LC01LjA0XSxbMTU0Ljc2LC01LjM0XV1dXX0se246YEluZG9uZXNpYWAsYTI6YElEYCxhMzpgSUROYCxwOmBJTkRPYCxsOlsxMDEuODksLS45NV0sZzpbW1tbMTQxLC0yLjZdLFsxNDEuMDIsLTUuODZdLFsxNDEuMDMsLTkuMTJdLFsxNDAuMTQsLTguM10sWzEzOS4xMywtOC4xXSxbMTM4Ljg4LC04LjM4XSxbMTM3LjYxLC04LjQxXSxbMTM4LjA0LC03LjZdLFsxMzguNjcsLTcuMzJdLFsxMzguNDEsLTYuMjNdLFsxMzcuOTMsLTUuMzldLFsxMzUuOTksLTQuNTVdLFsxMzUuMTYsLTQuNDZdLFsxMzMuNjYsLTMuNTRdLFsxMzMuMzcsLTQuMDJdLFsxMzIuOTgsLTQuMTFdLFsxMzIuNzYsLTMuNzVdLFsxMzIuNzUsLTMuMzFdLFsxMzEuOTksLTIuODJdLFsxMzMuMDcsLTIuNDZdLFsxMzMuNzgsLTIuNDhdLFsxMzMuNywtMi4yMV0sWzEzMi4yMywtMi4yMV0sWzEzMS44NCwtMS42Ml0sWzEzMC45NCwtMS40M10sWzEzMC41MiwtLjk0XSxbMTMxLjg3LC0uN10sWzEzMi4zOCwtLjM3XSxbMTMzLjk5LC0uNzhdLFsxMzQuMTQsLTEuMTVdLFsxMzQuNDIsLTIuNzddLFsxMzUuNDYsLTMuMzddLFsxMzYuMjksLTIuMzFdLFsxMzcuNDQsLTEuN10sWzEzOC4zMywtMS43XSxbMTM5LjE4LC0yLjA1XSxbMTM5LjkzLC0yLjQxXSxbMTQxLC0yLjZdXV0sW1tbMTI0Ljk3LC04Ljg5XSxbMTI1LjA3LC05LjA5XSxbMTI1LjA5LC05LjM5XSxbMTI0LjQ0LC0xMC4xNF0sWzEyMy41OCwtMTAuMzZdLFsxMjMuNDYsLTEwLjI0XSxbMTIzLjU1LC05LjldLFsxMjMuOTgsLTkuMjldLFsxMjQuOTcsLTguODldXV0sW1tbMTM0LjIxLC02LjldLFsxMzQuMTEsLTYuMTRdLFsxMzQuMjksLTUuNzhdLFsxMzQuNSwtNS40NV0sWzEzNC43MywtNS43NF0sWzEzNC43MiwtNi4yMV0sWzEzNC4yMSwtNi45XV1dLFtbWzExNy44OCw0LjE0XSxbMTE3LjMxLDMuMjNdLFsxMTguMDUsMi4yOV0sWzExNy44OCwxLjgzXSxbMTE5LC45XSxbMTE3LjgxLC43OF0sWzExNy40OCwuMV0sWzExNy41MiwtLjhdLFsxMTYuNTYsLTEuNDldLFsxMTYuNTMsLTIuNDhdLFsxMTYuMTUsLTQuMDFdLFsxMTYsLTMuNjZdLFsxMTQuODYsLTQuMTFdLFsxMTQuNDcsLTMuNV0sWzExMy43NiwtMy40NF0sWzExMy4yNiwtMy4xMl0sWzExMi4wNywtMy40OF0sWzExMS43LC0yLjk5XSxbMTExLjA1LC0zLjA1XSxbMTEwLjIyLC0yLjkzXSxbMTEwLjA3LC0xLjU5XSxbMTA5LjU3LC0xLjMxXSxbMTA5LjA5LC0uNDZdLFsxMDguOTUsLjQyXSxbMTA5LjA3LDEuMzRdLFsxMDkuNjYsMi4wMV0sWzEwOS44MywxLjM0XSxbMTEwLjUxLC43N10sWzExMS4xNiwuOThdLFsxMTEuOCwuOV0sWzExMi4zOCwxLjQxXSxbMTEyLjg2LDEuNV0sWzExMy44MSwxLjIyXSxbMTE0LjYyLDEuNDNdLFsxMTUuMTMsMi44Ml0sWzExNS41MiwzLjE3XSxbMTE1Ljg3LDQuMzFdLFsxMTcuMDIsNC4zMV0sWzExNy44OCw0LjE0XV1dLFtbWzEyOS4zNywtMi44XSxbMTMwLjQ3LC0zLjA5XSxbMTMwLjgzLC0zLjg2XSxbMTI5Ljk5LC0zLjQ1XSxbMTI5LjE2LC0zLjM2XSxbMTI4LjU5LC0zLjQzXSxbMTI3LjksLTMuMzldLFsxMjguMTQsLTIuODRdLFsxMjkuMzcsLTIuOF1dXSxbW1sxMjYuODcsLTMuNzldLFsxMjYuMTgsLTMuNjFdLFsxMjUuOTksLTMuMThdLFsxMjcsLTMuMTNdLFsxMjcuMjUsLTMuNDZdLFsxMjYuODcsLTMuNzldXV0sW1tbMTI3LjkzLDIuMTddLFsxMjgsMS42M10sWzEyOC41OSwxLjU0XSxbMTI4LjY5LDEuMTNdLFsxMjguNjQsLjI2XSxbMTI4LjEyLC4zNl0sWzEyNy45NywtLjI1XSxbMTI4LjM4LC0uNzhdLFsxMjguMSwtLjldLFsxMjcuNywtLjI3XSxbMTI3LjQsMS4wMV0sWzEyNy42LDEuODFdLFsxMjcuOTMsMi4xN11dXSxbW1sxMjIuOTMsLjg4XSxbMTI0LjA4LC45Ml0sWzEyNS4wNywxLjY0XSxbMTI1LjI0LDEuNDJdLFsxMjQuNDQsLjQzXSxbMTIzLjY5LC4yNF0sWzEyMi43MiwuNDNdLFsxMjEuMDYsLjM4XSxbMTIwLjE4LC4yNF0sWzEyMC4wNCwtLjUyXSxbMTIwLjk0LC0xLjQxXSxbMTIxLjQ4LC0uOTZdLFsxMjMuMzQsLS42Ml0sWzEyMy4yNiwtMS4wOF0sWzEyMi44MiwtLjkzXSxbMTIyLjM5LC0xLjUyXSxbMTIxLjUxLC0xLjldLFsxMjIuNDUsLTMuMTldLFsxMjIuMjcsLTMuNTNdLFsxMjMuMTcsLTQuNjhdLFsxMjMuMTYsLTUuMzRdLFsxMjIuNjMsLTUuNjNdLFsxMjIuMjQsLTUuMjhdLFsxMjIuNzIsLTQuNDZdLFsxMjEuNzQsLTQuODVdLFsxMjEuNDksLTQuNTddLFsxMjEuNjIsLTQuMTldLFsxMjAuOSwtMy42XSxbMTIwLjk3LC0yLjYzXSxbMTIwLjMxLC0yLjkzXSxbMTIwLjM5LC00LjFdLFsxMjAuNDMsLTUuNTNdLFsxMTkuOCwtNS42N10sWzExOS4zNywtNS4zOF0sWzExOS42NSwtNC40Nl0sWzExOS41LC0zLjQ5XSxbMTE5LjA4LC0zLjQ5XSxbMTE4Ljc3LC0yLjhdLFsxMTkuMTgsLTIuMTVdLFsxMTkuMzIsLTEuMzVdLFsxMTkuODMsLjE1XSxbMTIwLjA0LC41N10sWzEyMC44OSwxLjMxXSxbMTIxLjY3LDEuMDFdLFsxMjIuOTMsLjg4XV1dLFtbWzEyMC4zLC0xMC4yNl0sWzExOC45NywtOS41Nl0sWzExOS45LC05LjM2XSxbMTIwLjQzLC05LjY3XSxbMTIwLjc4LC05Ljk3XSxbMTIwLjcyLC0xMC4yNF0sWzEyMC4zLC0xMC4yNl1dXSxbW1sxMjEuMzQsLTguNTRdLFsxMjIuMDEsLTguNDZdLFsxMjIuOSwtOC4wOV0sWzEyMi43NiwtOC42NV0sWzEyMS4yNSwtOC45M10sWzExOS45MiwtOC44MV0sWzExOS45MiwtOC40NF0sWzEyMC43MiwtOC4yNF0sWzEyMS4zNCwtOC41NF1dXSxbW1sxMTguMjYsLTguMzZdLFsxMTguODgsLTguMjhdLFsxMTkuMTMsLTguNzFdLFsxMTcuOTcsLTguOTFdLFsxMTcuMjgsLTkuMDRdLFsxMTYuNzQsLTkuMDNdLFsxMTcuMDgsLTguNDZdLFsxMTcuNjMsLTguNDVdLFsxMTcuOSwtOC4xXSxbMTE4LjI2LC04LjM2XV1dLFtbWzEwOC40OSwtNi40Ml0sWzEwOC42MiwtNi43OF0sWzExMC41NCwtNi44OF0sWzExMC43NiwtNi40N10sWzExMi42MSwtNi45NV0sWzExMi45OCwtNy41OV0sWzExNC40OCwtNy43OF0sWzExNS43MSwtOC4zN10sWzExNC41NiwtOC43NV0sWzExMy40NiwtOC4zNV0sWzExMi41NiwtOC4zOF0sWzExMS41MiwtOC4zXSxbMTEwLjU5LC04LjEyXSxbMTA5LjQzLC03Ljc0XSxbMTA4LjY5LC03LjY0XSxbMTA4LjI4LC03Ljc3XSxbMTA2LjQ1LC03LjM1XSxbMTA2LjI4LC02LjkyXSxbMTA1LjM3LC02Ljg1XSxbMTA2LjA1LC01LjldLFsxMDcuMjcsLTUuOTVdLFsxMDguMDcsLTYuMzVdLFsxMDguNDksLTYuNDJdXV0sW1tbMTA0LjM3LC0xLjA4XSxbMTA0LjU0LC0xLjc4XSxbMTA0Ljg5LC0yLjM0XSxbMTA1LjYyLC0yLjQzXSxbMTA2LjExLC0zLjA2XSxbMTA1Ljg2LC00LjMxXSxbMTA1LjgyLC01Ljg1XSxbMTA0LjcxLC01Ljg3XSxbMTAzLjg3LC01LjA0XSxbMTAyLjU4LC00LjIyXSxbMTAyLjE2LC0zLjYxXSxbMTAxLjQsLTIuOF0sWzEwMC45LC0yLjA1XSxbMTAwLjE0LC0uNjVdLFs5OS4yNiwuMThdLFs5OC45NywxLjA0XSxbOTguNiwxLjgyXSxbOTcuNywyLjQ1XSxbOTcuMTgsMy4zMV0sWzk2LjQyLDMuODddLFs5NS4zOCw0Ljk3XSxbOTUuMjksNS40OF0sWzk1Ljk0LDUuNDRdLFs5Ny40OCw1LjI1XSxbOTguMzcsNC4yN10sWzk5LjE0LDMuNTldLFs5OS42OSwzLjE3XSxbMTAwLjY0LDIuMV0sWzEwMS42NiwyLjA4XSxbMTAyLjUsMS40XSxbMTAzLjA4LC41Nl0sWzEwMy44NCwuMV0sWzEwMy40NCwtLjcxXSxbMTA0LjAxLC0xLjA2XSxbMTA0LjM3LC0xLjA4XV1dXX0se246YEFyZ2VudGluYWAsYTI6YEFSYCxhMzpgQVJHYCxwOmBBUmAsbDpbLTY0LjE3LC0zMy41XSxnOltbW1stNjguNjMsLTUyLjY0XSxbLTY4LjI1LC01My4xXSxbLTY3Ljc1LC01My44NV0sWy02Ni40NSwtNTQuNDVdLFstNjUuMDUsLTU0LjddLFstNjUuNSwtNTUuMl0sWy02Ni40NSwtNTUuMjVdLFstNjYuOTYsLTU0LjldLFstNjcuNTYsLTU0Ljg3XSxbLTY4LjYzLC01NC44N10sWy02OC42MywtNTIuNjRdXV0sW1tbLTU3LjYzLC0zMC4yMl0sWy01Ny44NywtMzEuMDJdLFstNTguMTQsLTMyLjA0XSxbLTU4LjEzLC0zMy4wNF0sWy01OC4zNSwtMzMuMjZdLFstNTguNDMsLTMzLjkxXSxbLTU4LjUsLTM0LjQzXSxbLTU3LjIzLC0zNS4yOV0sWy01Ny4zNiwtMzUuOThdLFstNTYuNzQsLTM2LjQxXSxbLTU2Ljc5LC0zNi45XSxbLTU3Ljc1LC0zOC4xOF0sWy01OS4yMywtMzguNzJdLFstNjEuMjQsLTM4LjkzXSxbLTYyLjM0LC0zOC44M10sWy02Mi4xMywtMzkuNDJdLFstNjIuMzMsLTQwLjE3XSxbLTYyLjE1LC00MC42OF0sWy02Mi43NSwtNDEuMDNdLFstNjMuNzcsLTQxLjE3XSxbLTY0LjczLC00MC44XSxbLTY1LjEyLC00MS4wNl0sWy02NC45OCwtNDIuMDZdLFstNjQuMywtNDIuMzZdLFstNjMuNzYsLTQyLjA0XSxbLTYzLjQ2LC00Mi41Nl0sWy02NC4zOCwtNDIuODddLFstNjUuMTgsLTQzLjVdLFstNjUuMzMsLTQ0LjVdLFstNjUuNTcsLTQ1LjA0XSxbLTY2LjUxLC00NS4wNF0sWy02Ny4yOSwtNDUuNTVdLFstNjcuNTgsLTQ2LjNdLFstNjYuNiwtNDcuMDNdLFstNjUuNjQsLTQ3LjI0XSxbLTY1Ljk5LC00OC4xM10sWy02Ny4xNywtNDguN10sWy02Ny44MiwtNDkuODddLFstNjguNzMsLTUwLjI2XSxbLTY5LjE0LC01MC43M10sWy02OC44MiwtNTEuNzddLFstNjguMTUsLTUyLjM1XSxbLTY4LjU3LC01Mi4zXSxbLTY5LjUsLTUyLjE0XSxbLTcxLjkxLC01Mi4wMV0sWy03Mi4zMywtNTEuNDNdLFstNzIuMzEsLTUwLjY4XSxbLTcyLjk4LC01MC43NF0sWy03My4zMywtNTAuMzhdLFstNzMuNDIsLTQ5LjMyXSxbLTcyLjY1LC00OC44OF0sWy03Mi4zMywtNDguMjRdLFstNzIuNDUsLTQ3Ljc0XSxbLTcxLjkyLC00Ni44OF0sWy03MS41NSwtNDUuNTZdLFstNzEuNjYsLTQ0Ljk3XSxbLTcxLjIyLC00NC43OF0sWy03MS4zMywtNDQuNDFdLFstNzEuNzksLTQ0LjIxXSxbLTcxLjQ2LC00My43OV0sWy03MS45MiwtNDMuNDFdLFstNzIuMTUsLTQyLjI1XSxbLTcxLjc1LC00Mi4wNV0sWy03MS45MiwtNDAuODNdLFstNzEuNjgsLTM5LjgxXSxbLTcxLjQxLC0zOC45Ml0sWy03MC44MSwtMzguNTVdLFstNzEuMTIsLTM3LjU4XSxbLTcxLjEyLC0zNi42Nl0sWy03MC4zNiwtMzYuMDFdLFstNzAuMzksLTM1LjE3XSxbLTY5LjgyLC0zNC4xOV0sWy02OS44MSwtMzMuMjddLFstNzAuMDcsLTMzLjA5XSxbLTcwLjU0LC0zMS4zN10sWy02OS45MiwtMzAuMzRdLFstNzAuMDEsLTI5LjM3XSxbLTY5LjY2LC0yOC40Nl0sWy02OSwtMjcuNTJdLFstNjguMywtMjYuOV0sWy02OC41OSwtMjYuNTFdLFstNjguMzksLTI2LjE5XSxbLTY4LjQyLC0yNC41Ml0sWy02Ny4zMywtMjQuMDNdLFstNjYuOTksLTIyLjk5XSxbLTY3LjExLC0yMi43NF0sWy02Ni4yNywtMjEuODNdLFstNjQuOTYsLTIyLjA4XSxbLTY0LjM4LC0yMi44XSxbLTYzLjk5LC0yMS45OV0sWy02Mi44NSwtMjIuMDNdLFstNjIuNjksLTIyLjI1XSxbLTYwLjg1LC0yMy44OF0sWy02MC4wMywtMjQuMDNdLFstNTguODEsLTI0Ljc3XSxbLTU3Ljc4LC0yNS4xNl0sWy01Ny42MywtMjUuNl0sWy01OC42MiwtMjcuMTJdLFstNTcuNjEsLTI3LjRdLFstNTYuNDksLTI3LjU1XSxbLTU1LjcsLTI3LjM5XSxbLTU0Ljc5LC0yNi42Ml0sWy01NC42MywtMjUuNzRdLFstNTQuMTMsLTI1LjU1XSxbLTUzLjYzLC0yNi4xMl0sWy01My42NSwtMjYuOTJdLFstNTQuNDksLTI3LjQ3XSxbLTU1LjE2LC0yNy44OF0sWy01Ni4yOSwtMjguODVdLFstNTcuNjMsLTMwLjIyXV1dXX0se246YENoaWxlYCxhMjpgQ0xgLGEzOmBDSExgLHA6YENMYCxsOlstNzIuMzIsLTM4LjE1XSxnOltbW1stNjguNjMsLTUyLjY0XSxbLTY4LjYzLC01NC44N10sWy02Ny41NiwtNTQuODddLFstNjYuOTYsLTU0LjldLFstNjcuMjksLTU1LjNdLFstNjguMTUsLTU1LjYxXSxbLTY4LjY0LC01NS41OF0sWy02OS4yMywtNTUuNV0sWy02OS45NiwtNTUuMl0sWy03MS4wMSwtNTUuMDVdLFstNzIuMjYsLTU0LjVdLFstNzMuMjksLTUzLjk2XSxbLTc0LjY2LC01Mi44NF0sWy03My44NCwtNTMuMDVdLFstNzIuNDMsLTUzLjcyXSxbLTcxLjExLC01NC4wN10sWy03MC41OSwtNTMuNjJdLFstNzAuMjcsLTUyLjkzXSxbLTY5LjM1LC01Mi41Ml0sWy02OC42MywtNTIuNjRdXV0sW1tbLTY5LjU5LC0xNy41OF0sWy02OS4xLC0xOC4yNl0sWy02OC45NywtMTguOThdLFstNjguNDQsLTE5LjQxXSxbLTY4Ljc2LC0yMC4zN10sWy02OC4yMiwtMjEuNDldLFstNjcuODMsLTIyLjg3XSxbLTY3LjExLC0yMi43NF0sWy02Ni45OSwtMjIuOTldLFstNjcuMzMsLTI0LjAzXSxbLTY4LjQyLC0yNC41Ml0sWy02OC4zOSwtMjYuMTldLFstNjguNTksLTI2LjUxXSxbLTY4LjMsLTI2LjldLFstNjksLTI3LjUyXSxbLTY5LjY2LC0yOC40Nl0sWy03MC4wMSwtMjkuMzddLFstNjkuOTIsLTMwLjM0XSxbLTcwLjU0LC0zMS4zN10sWy03MC4wNywtMzMuMDldLFstNjkuODEsLTMzLjI3XSxbLTY5LjgyLC0zNC4xOV0sWy03MC4zOSwtMzUuMTddLFstNzAuMzYsLTM2LjAxXSxbLTcxLjEyLC0zNi42Nl0sWy03MS4xMiwtMzcuNThdLFstNzAuODEsLTM4LjU1XSxbLTcxLjQxLC0zOC45Ml0sWy03MS42OCwtMzkuODFdLFstNzEuOTIsLTQwLjgzXSxbLTcxLjc1LC00Mi4wNV0sWy03Mi4xNSwtNDIuMjVdLFstNzEuOTIsLTQzLjQxXSxbLTcxLjQ2LC00My43OV0sWy03MS43OSwtNDQuMjFdLFstNzEuMzMsLTQ0LjQxXSxbLTcxLjIyLC00NC43OF0sWy03MS42NiwtNDQuOTddLFstNzEuNTUsLTQ1LjU2XSxbLTcxLjkyLC00Ni44OF0sWy03Mi40NSwtNDcuNzRdLFstNzIuMzMsLTQ4LjI0XSxbLTcyLjY1LC00OC44OF0sWy03My40MiwtNDkuMzJdLFstNzMuMzMsLTUwLjM4XSxbLTcyLjk4LC01MC43NF0sWy03Mi4zMSwtNTAuNjhdLFstNzIuMzMsLTUxLjQzXSxbLTcxLjkxLC01Mi4wMV0sWy02OS41LC01Mi4xNF0sWy02OC41NywtNTIuM10sWy02OS40NiwtNTIuMjldLFstNjkuOTQsLTUyLjU0XSxbLTcwLjg1LC01Mi45XSxbLTcxLjAxLC01My44M10sWy03MS40MywtNTMuODZdLFstNzIuNTYsLTUzLjUzXSxbLTczLjcsLTUyLjg0XSxbLTc0Ljk1LC01Mi4yNl0sWy03NS4yNiwtNTEuNjNdLFstNzQuOTgsLTUxLjA0XSxbLTc1LjQ4LC01MC4zOF0sWy03NS42MSwtNDguNjddLFstNzUuMTgsLTQ3LjcxXSxbLTc0LjEzLC00Ni45NF0sWy03NS42NCwtNDYuNjVdLFstNzQuNjksLTQ1Ljc2XSxbLTc0LjM1LC00NC4xXSxbLTczLjI0LC00NC40NV0sWy03Mi43MiwtNDIuMzhdLFstNzMuMzksLTQyLjEyXSxbLTczLjcsLTQzLjM3XSxbLTc0LjMzLC00My4yMl0sWy03NC4wMiwtNDEuNzldLFstNzMuNjgsLTM5Ljk0XSxbLTczLjIyLC0zOS4yNl0sWy03My41MSwtMzguMjhdLFstNzMuNTksLTM3LjE2XSxbLTczLjE3LC0zNy4xMl0sWy03Mi41NSwtMzUuNTFdLFstNzEuODYsLTMzLjkxXSxbLTcxLjQ0LC0zMi40Ml0sWy03MS42NywtMzAuOTJdLFstNzEuMzcsLTMwLjFdLFstNzEuNDksLTI4Ljg2XSxbLTcwLjkxLC0yNy42NF0sWy03MC43MiwtMjUuNzFdLFstNzAuNCwtMjMuNjNdLFstNzAuMDksLTIxLjM5XSxbLTcwLjE2LC0xOS43Nl0sWy03MC4zNywtMTguMzVdLFstNjkuODYsLTE4LjA5XSxbLTY5LjU5LC0xNy41OF1dXV19LHtuOmBEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZSBDb25nb2AsYTI6YENEYCxhMzpgQ09EYCxwOmBEUkNgLGw6WzIzLjQ2LC0xLjg2XSxnOltbW1syOS4zNCwtNC41XSxbMjkuNTIsLTUuNDJdLFsyOS40MiwtNS45NF0sWzI5LjYyLC02LjUyXSxbMzAuMiwtNy4wOF0sWzMwLjc0LC04LjM0XSxbMzAuMzUsLTguMjRdLFsyOSwtOC40MV0sWzI4LjczLC04LjUzXSxbMjguNDUsLTkuMTZdLFsyOC42NywtOS42MV0sWzI4LjUsLTEwLjc5XSxbMjguMzcsLTExLjc5XSxbMjguNjQsLTExLjk3XSxbMjkuMzQsLTEyLjM2XSxbMjkuNjIsLTEyLjE4XSxbMjkuNywtMTMuMjZdLFsyOC45MywtMTMuMjVdLFsyOC41MiwtMTIuN10sWzI4LjE2LC0xMi4yN10sWzI3LjM5LC0xMi4xM10sWzI3LjE2LC0xMS42MV0sWzI2LjU1LC0xMS45Ml0sWzI1Ljc1LC0xMS43OF0sWzI1LjQyLC0xMS4zM10sWzI0Ljc4LC0xMS4yNF0sWzI0LjMxLC0xMS4yNl0sWzI0LjI2LC0xMC45NV0sWzIzLjkxLC0xMC45M10sWzIzLjQ2LC0xMC44N10sWzIyLjg0LC0xMS4wMl0sWzIyLjQsLTEwLjk5XSxbMjIuMTYsLTExLjA4XSxbMjIuMjEsLTkuODldLFsyMS44OCwtOS41Ml0sWzIxLjgsLTguOTFdLFsyMS45NSwtOC4zMV0sWzIxLjc1LC03LjkyXSxbMjEuNzMsLTcuMjldLFsyMC41MSwtNy4zXSxbMjAuNiwtNi45NF0sWzIwLjA5LC02Ljk0XSxbMjAuMDQsLTcuMTJdLFsxOS40MiwtNy4xNl0sWzE5LjE3LC03Ljc0XSxbMTkuMDIsLTcuOTldLFsxOC40NiwtNy44NV0sWzE4LjEzLC03Ljk5XSxbMTcuNDcsLTguMDddLFsxNy4wOSwtNy41NV0sWzE2Ljg2LC03LjIyXSxbMTYuNTcsLTYuNjJdLFsxNi4zMywtNS44OF0sWzEzLjM4LC01Ljg2XSxbMTMuMDIsLTUuOThdLFsxMi43NCwtNS45N10sWzEyLjMyLC02LjFdLFsxMi4xOCwtNS43OV0sWzEyLjQ0LC01LjY4XSxbMTIuNDcsLTUuMjVdLFsxMi42MywtNC45OV0sWzEzLC00Ljc4XSxbMTMuMjYsLTQuODhdLFsxMy42LC00LjVdLFsxNC4xNCwtNC41MV0sWzE0LjIxLC00Ljc5XSxbMTQuNTgsLTQuOTddLFsxNS4xNywtNC4zNF0sWzE1Ljc1LC0zLjg2XSxbMTYuMDEsLTMuNTRdLFsxNS45NywtMi43MV0sWzE2LjQxLC0xLjc0XSxbMTYuODcsLTEuMjNdLFsxNy41MiwtLjc0XSxbMTcuNjQsLS40Ml0sWzE3LjY2LC0uMDZdLFsxNy44MywuMjldLFsxNy43NywuODZdLFsxNy45LDEuNzRdLFsxOC4wOSwyLjM3XSxbMTguMzksMi45XSxbMTguNDUsMy41XSxbMTguNTQsNC4yXSxbMTguOTMsNC43MV0sWzE5LjQ3LDUuMDNdLFsyMC4yOSw0LjY5XSxbMjAuOTMsNC4zMl0sWzIxLjY2LDQuMjJdLFsyMi40MSw0LjAzXSxbMjIuNyw0LjYzXSxbMjIuODQsNC43MV0sWzIzLjMsNC42MV0sWzI0LjQxLDUuMTFdLFsyNC44MSw0LjldLFsyNS4xMyw0LjkzXSxbMjUuMjgsNS4xN10sWzI1LjY1LDUuMjZdLFsyNi40LDUuMTVdLFsyNy4wNCw1LjEzXSxbMjcuMzcsNS4yM10sWzI3Ljk4LDQuNDFdLFsyOC40Myw0LjI5XSxbMjguNyw0LjQ2XSxbMjkuMTYsNC4zOV0sWzI5LjcyLDQuNl0sWzI5Ljk1LDQuMTddLFszMC44MywzLjUxXSxbMzAuNzcsMi4zNF0sWzMxLjE3LDIuMl0sWzMwLjg1LDEuODVdLFszMC40NywxLjU4XSxbMzAuMDksMS4wNl0sWzI5Ljg4LC42XSxbMjkuODIsLS4yMV0sWzI5LjU5LC0uNTldLFsyOS41OCwtMS4zNF0sWzI5LjI5LC0xLjYyXSxbMjkuMjUsLTIuMjJdLFsyOS4xMiwtMi4yOV0sWzI5LjAyLC0yLjg0XSxbMjkuMjgsLTMuMjldLFsyOS4zNCwtNC41XV1dXX0se246YFNvbWFsaWFgLGEyOmBTT2AsYTM6YFNPTWAscDpgU09gLGw6WzQ1LjE5LDMuNTddLGc6W1tbWzQxLjU5LC0xLjY4XSxbNDAuOTksLS44Nl0sWzQwLjk4LDIuNzhdLFs0MS44NiwzLjkyXSxbNDIuMTMsNC4yM10sWzQyLjc3LDQuMjVdLFs0My42Niw0Ljk2XSxbNDQuOTYsNV0sWzQ3Ljc5LDhdLFs0OC40OSw4Ljg0XSxbNDguOTQsOS40NV0sWzQ4Ljk0LDkuOTddLFs0OC45NCwxMC45OF0sWzQ4Ljk0LDExLjM5XSxbNDguOTUsMTEuNDFdLFs0OS4yNywxMS40M10sWzQ5LjczLDExLjU4XSxbNTAuMjYsMTEuNjhdLFs1MC43MywxMi4wMl0sWzUxLjExLDEyLjAyXSxbNTEuMTMsMTEuNzVdLFs1MS4wNCwxMS4xN10sWzUxLjA1LDEwLjY0XSxbNTAuODMsMTAuMjhdLFs1MC41NSw5LjJdLFs1MC4wNyw4LjA4XSxbNDkuNDUsNi44XSxbNDguNTksNS4zNF0sWzQ3Ljc0LDQuMjJdLFs0Ni41NiwyLjg2XSxbNDUuNTYsMi4wNV0sWzQ0LjA3LDEuMDVdLFs0My4xNCwuMjldLFs0Mi4wNCwtLjkyXSxbNDEuODEsLTEuNDVdLFs0MS41OSwtMS42OF1dXV19LHtuOmBLZW55YWAsYTI6YEtFYCxhMzpgS0VOYCxwOmBLRWAsbDpbMzcuOTEsLjU1XSxnOltbW1szOS4yLC00LjY4XSxbMzcuNzcsLTMuNjhdLFszNy43LC0zLjFdLFszNC4wNywtMS4wNl0sWzMzLjksLS45NV0sWzMzLjg5LC4xMV0sWzM0LjE4LC41Ml0sWzM0LjY3LDEuMThdLFszNS4wNCwxLjkxXSxbMzQuNiwzLjA1XSxbMzQuNDgsMy41Nl0sWzM0LjAxLDQuMjVdLFszNC42Miw0Ljg1XSxbMzUuMyw1LjUxXSxbMzUuODIsNS4zNF0sWzM1LjgyLDQuNzhdLFszNi4xNiw0LjQ1XSxbMzYuODYsNC40NV0sWzM4LjEyLDMuNl0sWzM4LjQ0LDMuNTldLFszOC42NywzLjYyXSxbMzguODksMy41XSxbMzkuNTYsMy40Ml0sWzM5Ljg1LDMuODRdLFs0MC43Nyw0LjI2XSxbNDEuMTcsMy45Ml0sWzQxLjg2LDMuOTJdLFs0MC45OCwyLjc4XSxbNDAuOTksLS44Nl0sWzQxLjU5LC0xLjY4XSxbNDAuODgsLTIuMDhdLFs0MC42NCwtMi41XSxbNDAuMjYsLTIuNTddLFs0MC4xMiwtMy4yOF0sWzM5LjgsLTMuNjhdLFszOS42LC00LjM1XSxbMzkuMiwtNC42OF1dXV19LHtuOmBTdWRhbmAsYTI6YFNEYCxhMzpgU0ROYCxwOmBTRGAsbDpbMjkuMjYsMTYuMzNdLGc6W1tbWzI0LjU3LDguMjNdLFsyMy44MSw4LjY3XSxbMjMuNDYsOC45NV0sWzIzLjM5LDkuMjddLFsyMy41Niw5LjY4XSxbMjMuNTUsMTAuMDldLFsyMi45OCwxMC43MV0sWzIyLjg2LDExLjE0XSxbMjIuODgsMTEuMzhdLFsyMi41MSwxMS42OF0sWzIyLjUsMTIuMjZdLFsyMi4yOSwxMi42NV0sWzIxLjk0LDEyLjU5XSxbMjIuMDQsMTIuOTZdLFsyMi4zLDEzLjM3XSxbMjIuMTgsMTMuNzldLFsyMi41MSwxNC4wOV0sWzIyLjMsMTQuMzNdLFsyMi41NywxNC45NF0sWzIzLjAyLDE1LjY4XSxbMjMuODksMTUuNjFdLFsyMy44NCwxOS41OF0sWzIzLjg1LDIwXSxbMjUsMjBdLFsyNSwyMl0sWzI5LjAyLDIyXSxbMzIuOSwyMl0sWzM2Ljg3LDIyXSxbMzcuMTksMjEuMDJdLFszNi45NywyMC44NF0sWzM3LjExLDE5LjgxXSxbMzcuNDgsMTguNjFdLFszNy44NiwxOC4zN10sWzM4LjQxLDE4XSxbMzcuOSwxNy40M10sWzM3LjE3LDE3LjI2XSxbMzYuODUsMTYuOTZdLFszNi43NSwxNi4yOV0sWzM2LjMyLDE0LjgyXSxbMzYuNDMsMTQuNDJdLFszNi4yNywxMy41Nl0sWzM1Ljg2LDEyLjU4XSxbMzUuMjYsMTIuMDhdLFszNC44MywxMS4zMl0sWzM0LjczLDEwLjkxXSxbMzQuMjYsMTAuNjNdLFszMy45Niw5LjU4XSxbMzMuOTcsOC42OF0sWzMzLjk2LDkuNDZdLFszMy44Miw5LjQ4XSxbMzMuODQsOS45OF0sWzMzLjcyLDEwLjMzXSxbMzMuMjEsMTAuNzJdLFszMy4wOSwxMS40NF0sWzMzLjIxLDEyLjE4XSxbMzIuNzQsMTIuMjVdLFszMi42NywxMi4wMl0sWzMyLjA3LDExLjk3XSxbMzIuMzEsMTEuNjhdLFszMi40LDExLjA4XSxbMzEuODUsMTAuNTNdLFszMS4zNSw5LjgxXSxbMzAuODQsOS43MV0sWzMwLDEwLjI5XSxbMjkuNjIsMTAuMDhdLFsyOS41Miw5Ljc5XSxbMjksOS42XSxbMjguOTcsOS40XSxbMjcuOTcsOS40XSxbMjcuODMsOS42XSxbMjcuMTEsOS42NF0sWzI2Ljc1LDkuNDddLFsyNi40OCw5LjU1XSxbMjUuOTYsMTAuMTRdLFsyNS43OSwxMC40MV0sWzI1LjA3LDEwLjI3XSxbMjQuNzksOS44MV0sWzI0LjU0LDguOTJdLFsyNC4xOSw4LjczXSxbMjMuODksOC42Ml0sWzI0LjU3LDguMjNdXV1dfSx7bjpgQ2hhZGAsYTI6YFREYCxhMzpgVENEYCxwOmBURGAsbDpbMTguNjUsMTUuMTRdLGc6W1tbWzIzLjg0LDE5LjU4XSxbMjMuODksMTUuNjFdLFsyMy4wMiwxNS42OF0sWzIyLjU3LDE0Ljk0XSxbMjIuMywxNC4zM10sWzIyLjUxLDE0LjA5XSxbMjIuMTgsMTMuNzldLFsyMi4zLDEzLjM3XSxbMjIuMDQsMTIuOTZdLFsyMS45NCwxMi41OV0sWzIyLjI5LDEyLjY1XSxbMjIuNSwxMi4yNl0sWzIyLjUxLDExLjY4XSxbMjIuODgsMTEuMzhdLFsyMi44NiwxMS4xNF0sWzIyLjIzLDEwLjk3XSxbMjEuNzIsMTAuNTddLFsyMSw5LjQ4XSxbMjAuMDYsOS4wMV0sWzE5LjA5LDkuMDddLFsxOC44MSw4Ljk4XSxbMTguOTEsOC42M10sWzE4LjM5LDguMjhdLFsxNy45Niw3Ljg5XSxbMTYuNzEsNy41MV0sWzE2LjQ2LDcuNzNdLFsxNi4yOSw3Ljc1XSxbMTYuMTEsNy41XSxbMTUuMjgsNy40Ml0sWzE1LjQ0LDcuNjldLFsxNS4xMiw4LjM4XSxbMTQuOTgsOC44XSxbMTQuNTQsOC45N10sWzEzLjk1LDkuNTVdLFsxNC4xNywxMC4wMl0sWzE0LjYzLDkuOTJdLFsxNC45MSw5Ljk5XSxbMTUuNDcsOS45OF0sWzE0LjkyLDEwLjg5XSxbMTQuOTYsMTEuNTZdLFsxNC44OSwxMi4yMl0sWzE0LjUsMTIuODZdLFsxNC42LDEzLjMzXSxbMTMuOTUsMTMuMzVdLFsxMy45NiwxNF0sWzEzLjU0LDE0LjM3XSxbMTMuOTcsMTUuNjhdLFsxNS4yNSwxNi42M10sWzE1LjMsMTcuOTNdLFsxNS42OSwxOS45Nl0sWzE1LjksMjAuMzldLFsxNS40OSwyMC43M10sWzE1LjQ3LDIxLjA1XSxbMTUuMSwyMS4zMV0sWzE0Ljg1LDIyLjg2XSxbMTUuODYsMjMuNDFdLFsxOS44NSwyMS41XSxbMjMuODQsMTkuNThdXV1dfSx7bjpgSGFpdGlgLGEyOmBIVGAsYTM6YEhUSWAscDpgSFRgLGw6Wy03Mi4yMiwxOS4yNl0sZzpbW1tbLTcxLjcxLDE5LjcxXSxbLTcxLjYyLDE5LjE3XSxbLTcxLjcsMTguNzldLFstNzEuOTUsMTguNjJdLFstNzEuNjksMTguMzJdLFstNzEuNzEsMTguMDRdLFstNzIuMzcsMTguMjFdLFstNzIuODQsMTguMTVdLFstNzMuNDUsMTguMjJdLFstNzMuOTIsMTguMDNdLFstNzQuNDYsMTguMzRdLFstNzQuMzcsMTguNjZdLFstNzMuNDUsMTguNTNdLFstNzIuNjksMTguNDVdLFstNzIuMzMsMTguNjddLFstNzIuNzksMTkuMV0sWy03Mi43OCwxOS40OF0sWy03My40MiwxOS42NF0sWy03My4xOSwxOS45Ml0sWy03Mi41OCwxOS44N10sWy03MS43MSwxOS43MV1dXV19LHtuOmBEb21pbmljYW4gUmVwdWJsaWNgLGEyOmBET2AsYTM6YERPTWAscDpgRE9gLGw6Wy03MC42NSwxOS4xXSxnOltbW1stNzEuNzEsMTguMDRdLFstNzEuNjksMTguMzJdLFstNzEuOTUsMTguNjJdLFstNzEuNywxOC43OV0sWy03MS42MiwxOS4xN10sWy03MS43MSwxOS43MV0sWy03MS41OSwxOS44OF0sWy03MC44MSwxOS44OF0sWy03MC4yMSwxOS42Ml0sWy02OS45NSwxOS42NV0sWy02OS43NywxOS4yOV0sWy02OS4yMiwxOS4zMV0sWy02OS4yNSwxOS4wMl0sWy02OC44MSwxOC45OF0sWy02OC4zMiwxOC42MV0sWy02OC42OSwxOC4yMV0sWy02OS4xNiwxOC40Ml0sWy02OS42MiwxOC4zOF0sWy02OS45NSwxOC40M10sWy03MC4xMywxOC4yNV0sWy03MC41MiwxOC4xOF0sWy03MC42NywxOC40M10sWy03MSwxOC4yOF0sWy03MS40LDE3LjZdLFstNzEuNjYsMTcuNzZdLFstNzEuNzEsMTguMDRdXV1dfSx7bjpgUnVzc2lhbiBGZWRlcmF0aW9uYCxhMjpgUlVgLGEzOmBSVVNgLHA6YFJVU2AsbDpbNDQuNjksNTguMjVdLGc6W1tbWzE3OC43Myw3MS4xXSxbMTgwLDcxLjUyXSxbMTgwLDcwLjgzXSxbMTc4LjksNzAuNzhdLFsxNzguNzMsNzEuMV1dXSxbW1s0OS4xLDQ2LjRdLFs0OC42NSw0NS44MV0sWzQ3LjY4LDQ1LjY0XSxbNDYuNjgsNDQuNjFdLFs0Ny41OSw0My42Nl0sWzQ3LjQ5LDQyLjk5XSxbNDguNTgsNDEuODFdLFs0Ny45OSw0MS40MV0sWzQ3LjgyLDQxLjE1XSxbNDcuMzcsNDEuMjJdLFs0Ni42OSw0MS44M10sWzQ2LjQsNDEuODZdLFs0NS43OCw0Mi4wOV0sWzQ1LjQ3LDQyLjVdLFs0NC41NCw0Mi43MV0sWzQzLjkzLDQyLjU1XSxbNDMuNzYsNDIuNzRdLFs0Mi4zOSw0My4yMl0sWzQwLjkyLDQzLjM4XSxbNDAuMDgsNDMuNTVdLFszOS45Niw0My40M10sWzM4LjY4LDQ0LjI4XSxbMzcuNTQsNDQuNjZdLFszNi42OCw0NS4yNF0sWzM3LjQsNDUuNF0sWzM4LjIzLDQ2LjI0XSxbMzcuNjcsNDYuNjRdLFszOS4xNSw0Ny4wNF0sWzM5LjEyLDQ3LjI2XSxbMzguMjIsNDcuMV0sWzM4LjI2LDQ3LjU1XSxbMzguNzcsNDcuODNdLFszOS43NCw0Ny45XSxbMzkuOSw0OC4yM10sWzM5LjY3LDQ4Ljc4XSxbNDAuMDgsNDkuMzFdLFs0MC4wNyw0OS42XSxbMzguNTksNDkuOTNdLFszOC4wMSw0OS45Ml0sWzM3LjM5LDUwLjM4XSxbMzYuNjMsNTAuMjNdLFszNS4zNiw1MC41OF0sWzM1LjM4LDUwLjc3XSxbMzUuMDIsNTEuMjFdLFszNC4yMiw1MS4yNl0sWzM0LjE0LDUxLjU3XSxbMzQuMzksNTEuNzddLFszMy43NSw1Mi4zNF0sWzMyLjcyLDUyLjI0XSxbMzIuNDEsNTIuMjldLFszMi4xNiw1Mi4wNl0sWzMxLjc5LDUyLjFdLFszMS41NCw1Mi43NF0sWzMxLjMxLDUzLjA3XSxbMzEuNSw1My4xN10sWzMyLjMsNTMuMTNdLFszMi42OSw1My4zNV0sWzMyLjQxLDUzLjYyXSxbMzEuNzMsNTMuNzldLFszMS43OSw1My45N10sWzMxLjM4LDU0LjE2XSxbMzAuNzYsNTQuODFdLFszMC45Nyw1NS4wOF0sWzMwLjg3LDU1LjU1XSxbMjkuOSw1NS43OV0sWzI5LjM3LDU1LjY3XSxbMjkuMjMsNTUuOTJdLFsyOC4xOCw1Ni4xN10sWzI3Ljg2LDU2Ljc2XSxbMjcuNzcsNTcuMjRdLFsyNy4yOSw1Ny40N10sWzI3LjcyLDU3Ljc5XSxbMjcuNDIsNTguNzJdLFsyOC4xMyw1OS4zXSxbMjcuOTgsNTkuNDhdLFsyOS4xMiw2MC4wM10sWzI4LjA3LDYwLjVdLFszMC4yMSw2MS43OF0sWzMxLjE0LDYyLjM2XSxbMzEuNTIsNjIuODddLFszMC4wNCw2My41NV0sWzMwLjQ0LDY0LjJdLFsyOS41NCw2NC45NV0sWzMwLjIyLDY1LjgxXSxbMjkuMDUsNjYuOTRdLFsyOS45OCw2Ny43XSxbMjguNDUsNjguMzZdLFsyOC41OSw2OS4wNl0sWzI5LjQsNjkuMTZdLFszMS4xLDY5LjU2XSxbMzIuMTMsNjkuOTFdLFszMy43OCw2OS4zXSxbMzYuNTEsNjkuMDZdLFs0MC4yOSw2Ny45M10sWzQxLjA2LDY3LjQ2XSxbNDEuMTMsNjYuNzldLFs0MC4wMiw2Ni4yN10sWzM4LjM4LDY2XSxbMzMuOTIsNjYuNzZdLFszMy4xOCw2Ni42M10sWzM0LjgxLDY1LjldLFszNC44OCw2NS40NF0sWzM0Ljk0LDY0LjQxXSxbMzYuMjMsNjQuMTFdLFszNy4wMSw2My44NV0sWzM3LjE0LDY0LjMzXSxbMzYuNTQsNjQuNzZdLFszNy4xOCw2NS4xNF0sWzM5LjU5LDY0LjUyXSxbNDAuNDQsNjQuNzZdLFszOS43Niw2NS41XSxbNDIuMDksNjYuNDhdLFs0My4wMiw2Ni40Ml0sWzQzLjk1LDY2LjA3XSxbNDQuNTMsNjYuNzZdLFs0My43LDY3LjM1XSxbNDQuMTksNjcuOTVdLFs0My40NSw2OC41N10sWzQ2LjI1LDY4LjI1XSxbNDYuODIsNjcuNjldLFs0NS41Niw2Ny41N10sWzQ1LjU2LDY3LjAxXSxbNDYuMzUsNjYuNjddLFs0Ny44OSw2Ni44OF0sWzQ4LjE0LDY3LjUyXSxbNTAuMjMsNjhdLFs1My43Miw2OC44Nl0sWzU0LjQ3LDY4LjgxXSxbNTMuNDksNjguMl0sWzU0LjczLDY4LjFdLFs1NS40NCw2OC40NF0sWzU3LjMyLDY4LjQ3XSxbNTguOCw2OC44OF0sWzU5Ljk0LDY4LjI4XSxbNjEuMDgsNjguOTRdLFs2MC4wMyw2OS41Ml0sWzYwLjU1LDY5Ljg1XSxbNjMuNSw2OS41NV0sWzY0Ljg5LDY5LjIzXSxbNjguNTEsNjguMDldLFs2OS4xOCw2OC42Ml0sWzY4LjE2LDY5LjE0XSxbNjguMTQsNjkuMzZdLFs2Ni45Myw2OS40NV0sWzY3LjI2LDY5LjkzXSxbNjYuNzIsNzAuNzFdLFs2Ni42OSw3MS4wM10sWzY4LjU0LDcxLjkzXSxbNjkuMiw3Mi44NF0sWzY5Ljk0LDczLjA0XSxbNzIuNTksNzIuNzhdLFs3Mi44LDcyLjIyXSxbNzEuODUsNzEuNDFdLFs3Mi40Nyw3MS4wOV0sWzcyLjc5LDcwLjM5XSxbNzIuNTYsNjkuMDJdLFs3My42Nyw2OC40MV0sWzczLjI0LDY3Ljc0XSxbNzEuMjgsNjYuMzJdLFs3Mi40Miw2Ni4xN10sWzcyLjgyLDY2LjUzXSxbNzMuOTIsNjYuNzldLFs3NC4xOSw2Ny4yOF0sWzc1LjA1LDY3Ljc2XSxbNzQuNDcsNjguMzNdLFs3NC45NCw2OC45OV0sWzczLjg0LDY5LjA3XSxbNzMuNiw2OS42M10sWzc0LjQsNzAuNjNdLFs3My4xLDcxLjQ1XSxbNzQuODksNzIuMTJdLFs3NC42Niw3Mi44M10sWzc1LjE2LDcyLjg1XSxbNzUuNjgsNzIuM10sWzc1LjI5LDcxLjM0XSxbNzYuMzYsNzEuMTVdLFs3NS45LDcxLjg3XSxbNzcuNTgsNzIuMjddLFs3OS42NSw3Mi4zMl0sWzgxLjUsNzEuNzVdLFs4MC42MSw3Mi41OF0sWzgwLjUxLDczLjY1XSxbODIuMjUsNzMuODVdLFs4NC42Niw3My44MV0sWzg2LjgyLDczLjk0XSxbODYuMDEsNzQuNDZdLFs4Ny4xNyw3NS4xMl0sWzg4LjMyLDc1LjE0XSxbOTAuMjYsNzUuNjRdLFs5Mi45LDc1Ljc3XSxbOTMuMjMsNzYuMDVdLFs5NS44Niw3Ni4xNF0sWzk2LjY4LDc1LjkyXSxbOTguOTIsNzYuNDVdLFsxMDAuNzYsNzYuNDNdLFsxMDEuMDQsNzYuODZdLFsxMDEuOTksNzcuMjldLFsxMDQuMzUsNzcuN10sWzEwNi4wNyw3Ny4zN10sWzEwNC43MSw3Ny4xM10sWzEwNi45Nyw3Ni45N10sWzEwNy4yNCw3Ni40OF0sWzEwOC4xNSw3Ni43Ml0sWzExMS4wOCw3Ni43MV0sWzExMy4zMyw3Ni4yMl0sWzExNC4xMyw3NS44NV0sWzExMy44OSw3NS4zM10sWzExMi43OCw3NS4wM10sWzExMC4xNSw3NC40OF0sWzEwOS40LDc0LjE4XSxbMTEwLjY0LDc0LjA0XSxbMTEyLjEyLDczLjc5XSxbMTEzLjAyLDczLjk4XSxbMTEzLjUzLDczLjM0XSxbMTEzLjk3LDczLjU5XSxbMTE1LjU3LDczLjc1XSxbMTE4Ljc4LDczLjU5XSxbMTE5LjAyLDczLjEyXSxbMTIzLjIsNzIuOTddLFsxMjMuMjYsNzMuNzRdLFsxMjUuMzgsNzMuNTZdLFsxMjYuOTgsNzMuNTddLFsxMjguNTksNzMuMDRdLFsxMjkuMDUsNzIuNF0sWzEyOC40Niw3MS45OF0sWzEyOS43Miw3MS4xOV0sWzEzMS4yOSw3MC43OV0sWzEzMi4yNSw3MS44NF0sWzEzMy44Niw3MS4zOV0sWzEzNS41Niw3MS42Nl0sWzEzNy41LDcxLjM1XSxbMTM4LjIzLDcxLjYzXSxbMTM5Ljg3LDcxLjQ5XSxbMTM5LjE1LDcyLjQyXSxbMTQwLjQ3LDcyLjg1XSxbMTQ5LjUsNzIuMl0sWzE1MC4zNSw3MS42MV0sWzE1Mi45Nyw3MC44NF0sWzE1Ny4wMSw3MS4wM10sWzE1OSw3MC44N10sWzE1OS44Myw3MC40NV0sWzE1OS43MSw2OS43Ml0sWzE2MC45NCw2OS40NF0sWzE2Mi4yOCw2OS42NF0sWzE2NC4wNSw2OS42N10sWzE2NS45NCw2OS40N10sWzE2Ny44NCw2OS41OF0sWzE2OS41OCw2OC42OV0sWzE3MC44Miw2OS4wMV0sWzE3MC4wMSw2OS42NV0sWzE3MC40NSw3MC4xXSxbMTczLjY0LDY5LjgyXSxbMTc1LjcyLDY5Ljg4XSxbMTc4LjYsNjkuNF0sWzE4MCw2OC45Nl0sWzE4MCw2NC45OF0sWzE3OS45OSw2NC45N10sWzE3OC43MSw2NC41M10sWzE3Ny40MSw2NC42MV0sWzE3OC4zMSw2NC4wOF0sWzE3OC45MSw2My4yNV0sWzE3OS4zNyw2Mi45OF0sWzE3OS40OSw2Mi41N10sWzE3OS4yMyw2Mi4zXSxbMTc3LjM2LDYyLjUyXSxbMTc0LjU3LDYxLjc3XSxbMTczLjY4LDYxLjY1XSxbMTcyLjE1LDYwLjk1XSxbMTcwLjcsNjAuMzRdLFsxNzAuMzMsNTkuODhdLFsxNjguOSw2MC41N10sWzE2Ni4yOSw1OS43OV0sWzE2NS44NCw2MC4xNl0sWzE2NC44OCw1OS43M10sWzE2My41NCw1OS44N10sWzE2My4yMiw1OS4yMV0sWzE2Mi4wMiw1OC4yNF0sWzE2Mi4wNSw1Ny44NF0sWzE2My4xOSw1Ny42Ml0sWzE2My4wNiw1Ni4xNl0sWzE2Mi4xMyw1Ni4xMl0sWzE2MS43LDU1LjI5XSxbMTYyLjEyLDU0Ljg2XSxbMTYwLjM3LDU0LjM0XSxbMTYwLjAyLDUzLjJdLFsxNTguNTMsNTIuOTZdLFsxNTguMjMsNTEuOTRdLFsxNTYuNzksNTEuMDFdLFsxNTYuNDIsNTEuN10sWzE1NS45OSw1My4xNl0sWzE1NS40Myw1NS4zOF0sWzE1NS45MSw1Ni43N10sWzE1Ni43Niw1Ny4zNl0sWzE1Ni44MSw1Ny44M10sWzE1OC4zNiw1OC4wNl0sWzE2MC4xNSw1OS4zMV0sWzE2MS44Nyw2MC4zNF0sWzE2My42Nyw2MS4xNF0sWzE2NC40Nyw2Mi41NV0sWzE2My4yNiw2Mi40N10sWzE2Mi42Niw2MS42NF0sWzE2MC4xMiw2MC41NF0sWzE1OS4zLDYxLjc3XSxbMTU2LjcyLDYxLjQzXSxbMTU0LjIyLDU5Ljc2XSxbMTU1LjA0LDU5LjE0XSxbMTUyLjgxLDU4Ljg4XSxbMTUxLjI3LDU4Ljc4XSxbMTUxLjM0LDU5LjVdLFsxNDkuNzgsNTkuNjZdLFsxNDguNTQsNTkuMTZdLFsxNDUuNDksNTkuMzRdLFsxNDIuMiw1OS4wNF0sWzEzOC45Niw1Ny4wOV0sWzEzNS4xMyw1NC43M10sWzEzNi43LDU0LjZdLFsxMzcuMTksNTMuOThdLFsxMzguMTYsNTMuNzZdLFsxMzguOCw1NC4yNV0sWzEzOS45LDU0LjE5XSxbMTQxLjM1LDUzLjA5XSxbMTQxLjM4LDUyLjI0XSxbMTQwLjYsNTEuMjRdLFsxNDAuNTEsNTAuMDVdLFsxNDAuMDYsNDguNDVdLFsxMzguNTUsNDddLFsxMzguMjIsNDYuMzFdLFsxMzYuODYsNDUuMTRdLFsxMzUuNTIsNDMuOTldLFsxMzQuODcsNDMuNF0sWzEzMy41NCw0Mi44MV0sWzEzMi45MSw0Mi44XSxbMTMyLjI4LDQzLjI4XSxbMTMwLjk0LDQyLjU1XSxbMTMwLjc4LDQyLjIyXSxbMTMwLjY0LDQyLjRdLFsxMzAuNjMsNDIuOV0sWzEzMS4xNCw0Mi45M10sWzEzMS4yOSw0NC4xMV0sWzEzMS4wMyw0NC45N10sWzEzMS44OCw0NS4zMl0sWzEzMy4xLDQ1LjE0XSxbMTMzLjc3LDQ2LjEyXSxbMTM0LjExLDQ3LjIxXSxbMTM0LjUsNDcuNThdLFsxMzUuMDMsNDguNDhdLFsxMzMuMzcsNDguMThdLFsxMzIuNTEsNDcuNzldLFsxMzAuOTksNDcuNzldLFsxMzAuNTgsNDguNzNdLFsxMjkuNCw0OS40NF0sWzEyNy42Niw0OS43Nl0sWzEyNy4yOSw1MC43NF0sWzEyNi45NCw1MS4zNV0sWzEyNi41Niw1MS43OF0sWzEyNS45NSw1Mi43OV0sWzEyNS4wNyw1My4xNl0sWzEyMy41Nyw1My40Nl0sWzEyMi4yNSw1My40M10sWzEyMSw1My4yNV0sWzEyMC4xOCw1Mi43NV0sWzEyMC43Myw1Mi41Ml0sWzEyMC43NCw1MS45Nl0sWzEyMC4xOCw1MS42NF0sWzExOS4yOCw1MC41OF0sWzExOS4yOSw1MC4xNF0sWzExNy44OCw0OS41MV0sWzExNi42OCw0OS44OV0sWzExNS40OSw0OS44MV0sWzExNC45Niw1MC4xNF0sWzExNC4zNiw1MC4yNV0sWzExMi45LDQ5LjU0XSxbMTExLjU4LDQ5LjM4XSxbMTEwLjY2LDQ5LjEzXSxbMTA5LjQsNDkuMjldLFsxMDguNDgsNDkuMjhdLFsxMDcuODcsNDkuNzldLFsxMDYuODksNTAuMjddLFsxMDUuODksNTAuNDFdLFsxMDQuNjIsNTAuMjhdLFsxMDMuNjgsNTAuMDldLFsxMDIuMjYsNTAuNTFdLFsxMDIuMDcsNTEuMjZdLFsxMDAuODksNTEuNTJdLFs5OS45OCw1MS42M10sWzk4Ljg2LDUyLjA1XSxbOTcuODMsNTEuMDFdLFs5OC4yMyw1MC40Ml0sWzk3LjI2LDQ5LjczXSxbOTUuODEsNDkuOThdLFs5NC44Miw1MC4wMV0sWzk0LjE1LDUwLjQ4XSxbOTMuMSw1MC41XSxbOTIuMjMsNTAuOF0sWzkwLjcxLDUwLjMzXSxbODguODEsNDkuNDddLFs4Ny43NSw0OS4zXSxbODcuMzYsNDkuMjFdLFs4Ni44Myw0OS44M10sWzg1LjU0LDQ5LjY5XSxbODUuMTIsNTAuMTJdLFs4NC40Miw1MC4zMV0sWzgzLjk0LDUwLjg5XSxbODMuMzgsNTEuMDddLFs4MS45NSw1MC44MV0sWzgwLjU3LDUxLjM5XSxbODAuMDQsNTAuODZdLFs3Ny44LDUzLjRdLFs3Ni41Myw1NC4xOF0sWzc2Ljg5LDU0LjQ5XSxbNzQuMzgsNTMuNTVdLFs3My40Myw1My40OV0sWzczLjUxLDU0LjA0XSxbNzIuMjIsNTQuMzhdLFs3MS4xOCw1NC4xM10sWzcwLjg3LDU1LjE3XSxbNjkuMDcsNTUuMzldLFs2OC4xNyw1NC45N10sWzY1LjY3LDU0LjZdLFs2NS4xOCw1NC4zNV0sWzYxLjQ0LDU0LjAxXSxbNjAuOTgsNTMuNjZdLFs2MS43LDUyLjk4XSxbNjAuNzQsNTIuNzJdLFs2MC45Myw1Mi40NV0sWzU5Ljk3LDUxLjk2XSxbNjEuNTksNTEuMjddLFs2MS4zNCw1MC44XSxbNTkuOTMsNTAuODRdLFs1OS42NCw1MC41NV0sWzU4LjM2LDUxLjA2XSxbNTYuNzgsNTEuMDRdLFs1NS43Miw1MC42Ml0sWzU0LjUzLDUxLjAzXSxbNTIuMzMsNTEuNzJdLFs1MC43Nyw1MS42OV0sWzQ4LjcsNTAuNjFdLFs0OC41OCw0OS44N10sWzQ3LjU1LDUwLjQ1XSxbNDYuNzUsNDkuMzZdLFs0Ny4wNCw0OS4xNV0sWzQ2LjQ3LDQ4LjM5XSxbNDcuMzIsNDcuNzJdLFs0OC4wNiw0Ny43NF0sWzQ4LjY5LDQ3LjA4XSxbNDguNTksNDYuNTZdLFs0OS4xLDQ2LjRdXV0sW1tbOTMuNzgsODEuMDJdLFs5NS45NCw4MS4yNV0sWzk3Ljg4LDgwLjc1XSxbMTAwLjE5LDc5Ljc4XSxbOTkuOTQsNzguODhdLFs5Ny43Niw3OC43Nl0sWzk0Ljk3LDc5LjA0XSxbOTMuMzEsNzkuNDNdLFs5Mi41NSw4MC4xNF0sWzkxLjE4LDgwLjM0XSxbOTMuNzgsODEuMDJdXV0sW1tbMTAyLjg0LDc5LjI4XSxbMTA1LjM3LDc4LjcxXSxbMTA1LjA4LDc4LjMxXSxbOTkuNDQsNzcuOTJdLFsxMDEuMjYsNzkuMjNdLFsxMDIuMDksNzkuMzVdLFsxMDIuODQsNzkuMjhdXV0sW1tbMTM4LjgzLDc2LjE0XSxbMTQxLjQ3LDc2LjA5XSxbMTQ1LjA5LDc1LjU2XSxbMTQ0LjMsNzQuODJdLFsxNDAuNjEsNzQuODVdLFsxMzguOTYsNzQuNjFdLFsxMzYuOTcsNzUuMjZdLFsxMzcuNTEsNzUuOTVdLFsxMzguODMsNzYuMTRdXV0sW1tbMTQ4LjIyLDc1LjM1XSxbMTUwLjczLDc1LjA4XSxbMTQ5LjU4LDc0LjY5XSxbMTQ3Ljk4LDc0Ljc4XSxbMTQ2LjEyLDc1LjE3XSxbMTQ2LjM2LDc1LjVdLFsxNDguMjIsNzUuMzVdXV0sW1tbMTM5Ljg2LDczLjM3XSxbMTQwLjgxLDczLjc3XSxbMTQyLjA2LDczLjg2XSxbMTQzLjQ4LDczLjQ4XSxbMTQzLjYsNzMuMjFdLFsxNDIuMDksNzMuMjFdLFsxNDAuMDQsNzMuMzJdLFsxMzkuODYsNzMuMzddXV0sW1tbNDQuODUsODAuNTldLFs0Ni44LDgwLjc3XSxbNDguMzIsODAuNzhdLFs0OC41Miw4MC41MV0sWzQ5LjEsODAuNzVdLFs1MC4wNCw4MC45Ml0sWzUxLjUyLDgwLjddLFs1MS4xNCw4MC41NV0sWzQ5Ljc5LDgwLjQyXSxbNDguODksODAuMzRdLFs0OC43NSw4MC4xOF0sWzQ3LjU5LDgwLjAxXSxbNDYuNSw4MC4yNV0sWzQ3LjA3LDgwLjU2XSxbNDQuODUsODAuNTldXV0sW1tbMjIuNzMsNTQuMzNdLFsyMC44OSw1NC4zMV0sWzE5LjY2LDU0LjQzXSxbMTkuODksNTQuODddLFsyMS4yNyw1NS4xOV0sWzIyLjMyLDU1LjAyXSxbMjIuNzYsNTQuODZdLFsyMi42NSw1NC41OF0sWzIyLjczLDU0LjMzXV1dLFtbWzUzLjUxLDczLjc1XSxbNTUuOSw3NC42M10sWzU1LjYzLDc1LjA4XSxbNTcuODcsNzUuNjFdLFs2MS4xNyw3Ni4yNV0sWzY0LjUsNzYuNDRdLFs2Ni4yMSw3Ni44MV0sWzY4LjE2LDc2Ljk0XSxbNjguODUsNzYuNTRdLFs2OC4xOCw3Ni4yM10sWzY0LjY0LDc1Ljc0XSxbNjEuNTgsNzUuMjZdLFs1OC40OCw3NC4zMV0sWzU2Ljk5LDczLjMzXSxbNTUuNDIsNzIuMzddLFs1NS42Miw3MS41NF0sWzU3LjU0LDcwLjcyXSxbNTYuOTQsNzAuNjNdLFs1My42OCw3MC43Nl0sWzUzLjQxLDcxLjIxXSxbNTEuNiw3MS40N10sWzUxLjQ2LDcyLjAxXSxbNTIuNDgsNzIuMjNdLFs1Mi40NCw3Mi43N10sWzU0LjQzLDczLjYzXSxbNTMuNTEsNzMuNzVdXV0sW1tbMTQyLjkxLDUzLjddLFsxNDMuMjYsNTIuNzRdLFsxNDMuMjQsNTEuNzZdLFsxNDMuNjUsNTAuNzVdLFsxNDQuNjUsNDguOThdLFsxNDMuMTcsNDkuMzFdLFsxNDIuNTYsNDcuODZdLFsxNDMuNTMsNDYuODRdLFsxNDMuNTEsNDYuMTRdLFsxNDIuNzUsNDYuNzRdLFsxNDIuMDksNDUuOTddLFsxNDEuOTEsNDYuODFdLFsxNDIuMDIsNDcuNzhdLFsxNDEuOSw0OC44Nl0sWzE0Mi4xNCw0OS42Ml0sWzE0Mi4xOCw1MC45NV0sWzE0MS41OSw1MS45NF0sWzE0MS42OCw1My4zXSxbMTQyLjYxLDUzLjc2XSxbMTQyLjIxLDU0LjIzXSxbMTQyLjY1LDU0LjM3XSxbMTQyLjkxLDUzLjddXV0sW1tbLTE3NC45Myw2Ny4yMV0sWy0xNzUuMDEsNjYuNThdLFstMTc0LjM0LDY2LjM0XSxbLTE3NC41Nyw2Ny4wNl0sWy0xNzEuODYsNjYuOTFdLFstMTY5LjksNjUuOThdLFstMTcwLjg5LDY1LjU0XSxbLTE3Mi41Myw2NS40NF0sWy0xNzIuNTUsNjQuNDZdLFstMTcyLjk2LDY0LjI1XSxbLTE3My44OSw2NC4yOF0sWy0xNzQuNjUsNjQuNjNdLFstMTc1Ljk4LDY0LjkyXSxbLTE3Ni4yMSw2NS4zNl0sWy0xNzcuMjIsNjUuNTJdLFstMTc4LjM2LDY1LjM5XSxbLTE3OC45LDY1Ljc0XSxbLTE3OC42OSw2Ni4xMV0sWy0xNzkuODgsNjUuODddLFstMTc5LjQzLDY1LjRdLFstMTgwLDY0Ljk4XSxbLTE4MCw2OC45Nl0sWy0xNzcuNTUsNjguMl0sWy0xNzQuOTMsNjcuMjFdXV0sW1tbLTE3OC42OSw3MC44OV0sWy0xODAsNzAuODNdLFstMTgwLDcxLjUyXSxbLTE3OS44Nyw3MS41Nl0sWy0xNzkuMDIsNzEuNTZdLFstMTc3LjU4LDcxLjI3XSxbLTE3Ny42Niw3MS4xM10sWy0xNzguNjksNzAuODldXV0sW1tbMzMuNDQsNDUuOTddLFszMy43LDQ2LjIyXSxbMzQuNDEsNDYuMDFdLFszNC43Myw0NS45N10sWzM0Ljg2LDQ1Ljc3XSxbMzUuMDEsNDUuNzRdLFszNS4wMiw0NS42NV0sWzM1LjUxLDQ1LjQxXSxbMzYuNTMsNDUuNDddLFszNi4zMyw0NS4xMV0sWzM1LjI0LDQ0Ljk0XSxbMzMuODgsNDQuMzZdLFszMy4zMyw0NC41Nl0sWzMzLjU1LDQ1LjAzXSxbMzIuNDUsNDUuMzNdLFszMi42Myw0NS41Ml0sWzMzLjU5LDQ1Ljg1XSxbMzMuNDQsNDUuOTddXV1dfSx7bjpgQmFoYW1hc2AsYTI6YEJTYCxhMzpgQkhTYCxwOmBCU2AsbDpbLTc3LjE1LDI2LjRdLGc6W1tbWy03OC45OCwyNi43OV0sWy03OC41MSwyNi44N10sWy03Ny44NSwyNi44NF0sWy03Ny44MiwyNi41OF0sWy03OC45MSwyNi40Ml0sWy03OC45OCwyNi43OV1dXSxbW1stNzcuNzksMjcuMDRdLFstNzcsMjYuNTldLFstNzcuMTcsMjUuODhdLFstNzcuMzYsMjYuMDFdLFstNzcuMzQsMjYuNTNdLFstNzcuNzksMjYuOTNdLFstNzcuNzksMjcuMDRdXV0sW1tbLTc4LjE5LDI1LjIxXSxbLTc3Ljg5LDI1LjE3XSxbLTc3LjU0LDI0LjM0XSxbLTc3LjUzLDIzLjc2XSxbLTc3Ljc4LDIzLjcxXSxbLTc4LjAzLDI0LjI5XSxbLTc4LjQxLDI0LjU4XSxbLTc4LjE5LDI1LjIxXV1dXX0se246YEZhbGtsYW5kIElzbGFuZHMgLyBNYWx2aW5hc2AsYTI6YEZLYCxhMzpgRkxLYCxwOmBGS2AsbDpbLTU4Ljc0LC01MS42MV0sZzpbW1tbLTYxLjIsLTUxLjg1XSxbLTYwLC01MS4yNV0sWy01OS4xNSwtNTEuNV0sWy01OC41NSwtNTEuMV0sWy01Ny43NSwtNTEuNTVdLFstNTguMDUsLTUxLjldLFstNTkuNCwtNTIuMl0sWy01OS44NSwtNTEuODVdLFstNjAuNywtNTIuM10sWy02MS4yLC01MS44NV1dXV19LHtuOmBOb3J3YXlgLGEyOmBgLGEzOmBOT1JgLHA6YE5gLGw6WzkuNjgsNjEuMzZdLGc6W1tbWzE1LjE0LDc5LjY3XSxbMTUuNTIsODAuMDJdLFsxNi45OSw4MC4wNV0sWzE4LjI1LDc5LjddLFsyMS41NCw3OC45Nl0sWzE5LjAzLDc4LjU2XSxbMTguNDcsNzcuODNdLFsxNy41OSw3Ny42NF0sWzE3LjEyLDc2LjgxXSxbMTUuOTEsNzYuNzddLFsxMy43Niw3Ny4zOF0sWzE0LjY3LDc3Ljc0XSxbMTMuMTcsNzguMDJdLFsxMS4yMiw3OC44N10sWzEwLjQ0LDc5LjY1XSxbMTMuMTcsODAuMDFdLFsxMy43Miw3OS42Nl0sWzE1LjE0LDc5LjY3XV1dLFtbWzMxLjEsNjkuNTZdLFsyOS40LDY5LjE2XSxbMjguNTksNjkuMDZdLFsyOS4wMiw2OS43N10sWzI3LjczLDcwLjE2XSxbMjYuMTgsNjkuODNdLFsyNS42OSw2OS4wOV0sWzI0Ljc0LDY4LjY1XSxbMjMuNjYsNjguODldLFsyMi4zNiw2OC44NF0sWzIxLjI0LDY5LjM3XSxbMjAuNjUsNjkuMTFdLFsyMC4wMyw2OS4wN10sWzE5Ljg4LDY4LjQxXSxbMTcuOTksNjguNTddLFsxNy43Myw2OC4wMV0sWzE2Ljc3LDY4LjAxXSxbMTYuMTEsNjcuM10sWzE1LjExLDY2LjE5XSxbMTMuNTYsNjQuNzldLFsxMy45Miw2NC40NV0sWzEzLjU3LDY0LjA1XSxbMTIuNTgsNjQuMDddLFsxMS45Myw2My4xM10sWzExLjk5LDYxLjhdLFsxMi42Myw2MS4yOV0sWzEyLjMsNjAuMTJdLFsxMS40Nyw1OS40M10sWzExLjAzLDU4Ljg2XSxbMTAuMzYsNTkuNDddLFs4LjM4LDU4LjMxXSxbNy4wNSw1OC4wOF0sWzUuNjcsNTguNTldLFs1LjMxLDU5LjY2XSxbNC45OSw2MS45N10sWzUuOTEsNjIuNjFdLFs4LjU1LDYzLjQ1XSxbMTAuNTMsNjQuNDldLFsxMi4zNiw2NS44OF0sWzE0Ljc2LDY3LjgxXSxbMTYuNDQsNjguNTZdLFsxOS4xOCw2OS44Ml0sWzIxLjM4LDcwLjI2XSxbMjMuMDIsNzAuMl0sWzI0LjU1LDcxLjAzXSxbMjYuMzcsNzAuOTldLFsyOC4xNyw3MS4xOV0sWzMxLjI5LDcwLjQ1XSxbMzAuMDEsNzAuMTldLFszMS4xLDY5LjU2XV1dLFtbWzI3LjQxLDgwLjA2XSxbMjUuOTIsNzkuNTJdLFsyMy4wMiw3OS40XSxbMjAuMDgsNzkuNTddLFsxOS45LDc5Ljg0XSxbMTguNDYsNzkuODZdLFsxNy4zNyw4MC4zMl0sWzIwLjQ2LDgwLjZdLFsyMS45MSw4MC4zNl0sWzIyLjkyLDgwLjY2XSxbMjUuNDUsODAuNDFdLFsyNy40MSw4MC4wNl1dXSxbW1syNC43Miw3Ny44NV0sWzIyLjQ5LDc3LjQ0XSxbMjAuNzMsNzcuNjhdLFsyMS40Miw3Ny45NF0sWzIwLjgxLDc4LjI1XSxbMjIuODgsNzguNDVdLFsyMy4yOCw3OC4wOF0sWzI0LjcyLDc3Ljg1XV1dXX0se246YEdyZWVubGFuZGAsYTI6YEdMYCxhMzpgR1JMYCxwOmBHTGAsbDpbLTM5LjM0LDc0LjMyXSxnOltbW1stNDYuNzYsODIuNjNdLFstNDMuNDEsODMuMjNdLFstMzkuOSw4My4xOF0sWy0zOC42Miw4My41NV0sWy0zNS4wOSw4My42NV0sWy0yNy4xLDgzLjUyXSxbLTIwLjg1LDgyLjczXSxbLTIyLjY5LDgyLjM0XSxbLTI2LjUyLDgyLjNdLFstMzEuOSw4Mi4yXSxbLTMxLjQsODIuMDJdLFstMjcuODYsODIuMTNdLFstMjQuODQsODEuNzldLFstMjIuOSw4Mi4wOV0sWy0yMi4wNyw4MS43M10sWy0yMy4xNyw4MS4xNV0sWy0yMC42Miw4MS41Ml0sWy0xNS43Nyw4MS45MV0sWy0xMi43Nyw4MS43Ml0sWy0xMi4yMSw4MS4yOV0sWy0xNi4yOSw4MC41OF0sWy0xNi44NSw4MC4zNV0sWy0yMC4wNSw4MC4xOF0sWy0xNy43Myw4MC4xM10sWy0xOC45LDc5LjRdLFstMTkuNyw3OC43NV0sWy0xOS42Nyw3Ny42NF0sWy0xOC40Nyw3Ni45OV0sWy0yMC4wNCw3Ni45NF0sWy0yMS42OCw3Ni42M10sWy0xOS44Myw3Ni4xXSxbLTE5LjYsNzUuMjVdLFstMjAuNjcsNzUuMTZdLFstMTkuMzcsNzQuM10sWy0yMS41OSw3NC4yMl0sWy0yMC40Myw3My44Ml0sWy0yMC43Niw3My40Nl0sWy0yMi4xNyw3My4zMV0sWy0yMy41Nyw3My4zMV0sWy0yMi4zMSw3Mi42M10sWy0yMi4zLDcyLjE4XSxbLTI0LjI4LDcyLjZdLFstMjQuNzksNzIuMzNdLFstMjMuNDQsNzIuMDhdLFstMjIuMTMsNzEuNDddLFstMjEuNzUsNzAuNjZdLFstMjMuNTQsNzAuNDddLFstMjQuMzEsNzAuODZdLFstMjUuNTQsNzEuNDNdLFstMjUuMiw3MC43NV0sWy0yNi4zNiw3MC4yM10sWy0yMy43Myw3MC4xOF0sWy0yMi4zNSw3MC4xM10sWy0yNS4wMyw2OS4yNl0sWy0yNy43NSw2OC40N10sWy0zMC42Nyw2OC4xM10sWy0zMS43OCw2OC4xMl0sWy0zMi44MSw2Ny43NF0sWy0zNC4yLDY2LjY4XSxbLTM2LjM1LDY1Ljk4XSxbLTM3LjA0LDY1Ljk0XSxbLTM4LjM4LDY1LjY5XSxbLTM5LjgxLDY1LjQ2XSxbLTQwLjY3LDY0Ljg0XSxbLTQwLjY4LDY0LjE0XSxbLTQxLjE5LDYzLjQ4XSxbLTQyLjgyLDYyLjY4XSxbLTQyLjQyLDYxLjldLFstNDIuODcsNjEuMDddLFstNDMuMzgsNjAuMV0sWy00NC43OSw2MC4wNF0sWy00Ni4yNiw2MC44NV0sWy00OC4yNiw2MC44Nl0sWy00OS4yMyw2MS40MV0sWy00OS45LDYyLjM4XSxbLTUxLjYzLDYzLjYzXSxbLTUyLjE0LDY0LjI4XSxbLTUyLjI4LDY1LjE4XSxbLTUzLjY2LDY2LjFdLFstNTMuMyw2Ni44NF0sWy01My45Nyw2Ny4xOV0sWy01Mi45OCw2OC4zNl0sWy01MS40OCw2OC43M10sWy01MS4wOCw2OS4xNV0sWy01MC44Nyw2OS45M10sWy01Mi4wMSw2OS41N10sWy01Mi41Niw2OS40M10sWy01My40Niw2OS4yOF0sWy01NC42OCw2OS42MV0sWy01NC43NSw3MC4yOV0sWy01NC4zNiw3MC44Ml0sWy01My40Myw3MC44NF0sWy01MS4zOSw3MC41N10sWy01My4xMSw3MS4yXSxbLTU0LDcxLjU1XSxbLTU1LDcxLjQxXSxbLTU1LjgzLDcxLjY1XSxbLTU0LjcyLDcyLjU5XSxbLTU1LjMzLDcyLjk2XSxbLTU2LjEyLDczLjY1XSxbLTU3LjMyLDc0LjcxXSxbLTU4LjYsNzUuMV0sWy01OC41OSw3NS41Ml0sWy02MS4yNyw3Ni4xXSxbLTYzLjM5LDc2LjE4XSxbLTY2LjA2LDc2LjEzXSxbLTY4LjUsNzYuMDZdLFstNjkuNjYsNzYuMzhdLFstNzEuNCw3Ny4wMV0sWy02OC43OCw3Ny4zMl0sWy02Ni43Niw3Ny4zOF0sWy03MS4wNCw3Ny42NF0sWy03My4zLDc4LjA0XSxbLTczLjE2LDc4LjQzXSxbLTY5LjM3LDc4LjkxXSxbLTY1LjcxLDc5LjM5XSxbLTY1LjMyLDc5Ljc2XSxbLTY4LjAyLDgwLjEyXSxbLTY3LjE1LDgwLjUyXSxbLTYzLjY5LDgxLjIxXSxbLTYyLjIzLDgxLjMyXSxbLTYyLjY1LDgxLjc3XSxbLTYwLjI4LDgyLjAzXSxbLTU3LjIxLDgyLjE5XSxbLTU0LjEzLDgyLjJdLFstNTMuMDQsODEuODldLFstNTAuMzksODIuNDRdLFstNDgsODIuMDZdLFstNDYuNiw4MS45OV0sWy00NC41Miw4MS42Nl0sWy00Ni45LDgyLjJdLFstNDYuNzYsODIuNjNdXV1dfSx7bjpgRnJlbmNoIFNvdXRoZXJuIGFuZCBBbnRhcmN0aWMgTGFuZHNgLGEyOmBURmAsYTM6YEFURmAscDpgVEZgLGw6WzY5LjEyLC00OS4zXSxnOltbW1s2OC45NCwtNDguNjJdLFs2OS41OCwtNDguOTRdLFs3MC41MywtNDkuMDZdLFs3MC41NiwtNDkuMjVdLFs3MC4yOCwtNDkuNzFdLFs2OC43NSwtNDkuNzddLFs2OC43MiwtNDkuMjRdLFs2OC44NywtNDguODNdLFs2OC45NCwtNDguNjJdXV1dfSx7bjpgVGltb3ItTGVzdGVgLGEyOmBUTGAsYTM6YFRMU2AscDpgVExgLGw6WzEyNS44NSwtOC44XSxnOltbW1sxMjQuOTcsLTguODldLFsxMjUuMDksLTguNjZdLFsxMjUuOTUsLTguNDNdLFsxMjYuNjQsLTguNF0sWzEyNi45NiwtOC4yN10sWzEyNy4zNCwtOC40XSxbMTI2Ljk3LC04LjY3XSxbMTI1LjkzLC05LjExXSxbMTI1LjA5LC05LjM5XSxbMTI1LjA3LC05LjA5XSxbMTI0Ljk3LC04Ljg5XV1dXX0se246YFNvdXRoIEFmcmljYWAsYTI6YFpBYCxhMzpgWkFGYCxwOmBaQWAsbDpbMjMuNjcsLTI5LjcxXSxnOltbW1sxNi4zNCwtMjguNThdLFsxNi44MiwtMjguMDhdLFsxNy4yMiwtMjguMzZdLFsxNy4zOSwtMjguNzhdLFsxNy44NCwtMjguODZdLFsxOC40NiwtMjkuMDVdLFsxOSwtMjguOTddLFsxOS44OSwtMjguNDZdLFsxOS45LC0yNC43N10sWzIwLjE3LC0yNC45Ml0sWzIwLjc2LC0yNS44N10sWzIwLjY3LC0yNi40OF0sWzIwLjg5LC0yNi44M10sWzIxLjYxLC0yNi43M10sWzIyLjExLC0yNi4yOF0sWzIyLjU4LC0yNS45OF0sWzIyLjgyLC0yNS41XSxbMjMuMzEsLTI1LjI3XSxbMjMuNzMsLTI1LjM5XSxbMjQuMjEsLTI1LjY3XSxbMjUuMDMsLTI1LjcyXSxbMjUuNjYsLTI1LjQ5XSxbMjUuNzcsLTI1LjE3XSxbMjUuOTQsLTI0LjddLFsyNi40OSwtMjQuNjJdLFsyNi43OSwtMjQuMjRdLFsyNy4xMiwtMjMuNTddLFsyOC4wMiwtMjIuODNdLFsyOS40MywtMjIuMDldLFsyOS44NCwtMjIuMV0sWzMwLjMyLC0yMi4yN10sWzMwLjY2LC0yMi4xNV0sWzMxLjE5LC0yMi4yNV0sWzMxLjY3LC0yMy42Nl0sWzMxLjkzLC0yNC4zN10sWzMxLjc1LC0yNS40OF0sWzMxLjg0LC0yNS44NF0sWzMxLjMzLC0yNS42Nl0sWzMxLjA0LC0yNS43M10sWzMwLjk1LC0yNi4wMl0sWzMwLjY4LC0yNi40XSxbMzAuNjksLTI2Ljc0XSxbMzEuMjgsLTI3LjI5XSxbMzEuODcsLTI3LjE4XSxbMzIuMDcsLTI2LjczXSxbMzIuODMsLTI2Ljc0XSxbMzIuNTgsLTI3LjQ3XSxbMzIuNDYsLTI4LjNdLFszMi4yLC0yOC43NV0sWzMxLjUyLC0yOS4yNl0sWzMxLjMzLC0yOS40XSxbMzAuOSwtMjkuOTFdLFszMC42MiwtMzAuNDJdLFszMC4wNiwtMzEuMTRdLFsyOC45MywtMzIuMTddLFsyOC4yMiwtMzIuNzddLFsyNy40NiwtMzMuMjNdLFsyNi40MiwtMzMuNjFdLFsyNS45MSwtMzMuNjddLFsyNS43OCwtMzMuOTRdLFsyNS4xNywtMzMuOF0sWzI0LjY4LC0zMy45OV0sWzIzLjU5LC0zMy43OV0sWzIyLjk5LC0zMy45Ml0sWzIyLjU3LC0zMy44Nl0sWzIxLjU0LC0zNC4yNl0sWzIwLjY5LC0zNC40Ml0sWzIwLjA3LC0zNC44XSxbMTkuNjIsLTM0LjgyXSxbMTkuMTksLTM0LjQ2XSxbMTguODYsLTM0LjQ0XSxbMTguNDIsLTM0XSxbMTguMzgsLTM0LjE0XSxbMTguMjQsLTMzLjg3XSxbMTguMjUsLTMzLjI4XSxbMTcuOTMsLTMyLjYxXSxbMTguMjUsLTMyLjQzXSxbMTguMjIsLTMxLjY2XSxbMTcuNTcsLTMwLjczXSxbMTcuMDYsLTI5Ljg4XSxbMTYuMzQsLTI4LjU4XV0sW1syOC45OCwtMjguOTZdLFsyOC41NCwtMjguNjVdLFsyOC4wNywtMjguODVdLFsyNy41MywtMjkuMjRdLFsyNywtMjkuODhdLFsyNy43NSwtMzAuNjVdLFsyOC4xMSwtMzAuNTVdLFsyOC4yOSwtMzAuMjNdLFsyOC44NSwtMzAuMDddLFsyOS4wMiwtMjkuNzRdLFsyOS4zMywtMjkuMjZdLFsyOC45OCwtMjguOTZdXV1dfSx7bjpgTGVzb3Rob2AsYTI6YExTYCxhMzpgTFNPYCxwOmBMU2AsbDpbMjguMjUsLTI5LjQ4XSxnOltbW1syOC45OCwtMjguOTZdLFsyOS4zMywtMjkuMjZdLFsyOS4wMiwtMjkuNzRdLFsyOC44NSwtMzAuMDddLFsyOC4yOSwtMzAuMjNdLFsyOC4xMSwtMzAuNTVdLFsyNy43NSwtMzAuNjVdLFsyNywtMjkuODhdLFsyNy41MywtMjkuMjRdLFsyOC4wNywtMjguODVdLFsyOC41NCwtMjguNjVdLFsyOC45OCwtMjguOTZdXV1dfSx7bjpgTWV4aWNvYCxhMjpgTVhgLGEzOmBNRVhgLHA6YE1YYCxsOlstMTAyLjI5LDIzLjkyXSxnOltbW1stMTE3LjEzLDMyLjU0XSxbLTExNS45OSwzMi42MV0sWy0xMTQuNzIsMzIuNzJdLFstMTE0LjgxLDMyLjUzXSxbLTExMy4zLDMyLjA0XSxbLTExMS4wMiwzMS4zM10sWy0xMDkuMDMsMzEuMzRdLFstMTA4LjI0LDMxLjM0XSxbLTEwOC4yNCwzMS43NV0sWy0xMDYuNTEsMzEuNzVdLFstMTA2LjE0LDMxLjRdLFstMTA1LjYzLDMxLjA4XSxbLTEwNS4wNCwzMC42NF0sWy0xMDQuNzEsMzAuMTJdLFstMTA0LjQ2LDI5LjU3XSxbLTEwMy45NCwyOS4yN10sWy0xMDMuMTEsMjguOTddLFstMTAyLjQ4LDI5Ljc2XSxbLTEwMS42NiwyOS43OF0sWy0xMDAuOTYsMjkuMzhdLFstMTAwLjQ2LDI4LjddLFstMTAwLjExLDI4LjExXSxbLTk5LjUyLDI3LjU0XSxbLTk5LjMsMjYuODRdLFstOTkuMDIsMjYuMzddLFstOTguMjQsMjYuMDZdLFstOTcuNTMsMjUuODRdLFstOTcuMTQsMjUuODddLFstOTcuNTMsMjQuOTldLFstOTcuNywyNC4yN10sWy05Ny43OCwyMi45M10sWy05Ny44NywyMi40NF0sWy05Ny43LDIxLjldLFstOTcuMzksMjEuNDFdLFstOTcuMTksMjAuNjRdLFstOTYuNTMsMTkuODldLFstOTYuMjksMTkuMzJdLFstOTUuOSwxOC44M10sWy05NC44NCwxOC41Nl0sWy05NC40MywxOC4xNF0sWy05My41NSwxOC40Ml0sWy05Mi43OSwxOC41Ml0sWy05Mi4wNCwxOC43XSxbLTkxLjQxLDE4Ljg4XSxbLTkwLjc3LDE5LjI4XSxbLTkwLjUzLDE5Ljg3XSxbLTkwLjQ1LDIwLjcxXSxbLTkwLjI4LDIxXSxbLTg5LjYsMjEuMjZdLFstODguNTQsMjEuNDldLFstODcuNjYsMjEuNDZdLFstODcuMDUsMjEuNTRdLFstODYuODEsMjEuMzNdLFstODYuODUsMjAuODVdLFstODcuMzgsMjAuMjZdLFstODcuNjIsMTkuNjVdLFstODcuNDQsMTkuNDddLFstODcuNTksMTkuMDRdLFstODcuODQsMTguMjZdLFstODguMDksMTguNTJdLFstODguMywxOC41XSxbLTg4LjQ5LDE4LjQ5XSxbLTg4Ljg1LDE3Ljg4XSxbLTg5LjAzLDE4XSxbLTg5LjE1LDE3Ljk2XSxbLTg5LjE0LDE3LjgxXSxbLTkwLjA3LDE3LjgyXSxbLTkxLDE3LjgyXSxbLTkxLDE3LjI1XSxbLTkxLjQ1LDE3LjI1XSxbLTkxLjA4LDE2LjkyXSxbLTkwLjcxLDE2LjY5XSxbLTkwLjYsMTYuNDddLFstOTAuNDQsMTYuNDFdLFstOTAuNDYsMTYuMDddLFstOTEuNzUsMTYuMDddLFstOTIuMjMsMTUuMjVdLFstOTIuMDksMTUuMDZdLFstOTIuMiwxNC44M10sWy05Mi4yMywxNC41NF0sWy05My4zNiwxNS42Ml0sWy05My44OCwxNS45NF0sWy05NC42OSwxNi4yXSxbLTk1LjI1LDE2LjEzXSxbLTk2LjA1LDE1Ljc1XSxbLTk2LjU2LDE1LjY1XSxbLTk3LjI2LDE1LjkyXSxbLTk4LjAxLDE2LjExXSxbLTk4Ljk1LDE2LjU3XSxbLTk5LjcsMTYuNzFdLFstMTAwLjgzLDE3LjE3XSxbLTEwMS42NywxNy42NV0sWy0xMDEuOTIsMTcuOTJdLFstMTAyLjQ4LDE3Ljk4XSxbLTEwMy41LDE4LjI5XSxbLTEwMy45MiwxOC43NV0sWy0xMDQuOTksMTkuMzJdLFstMTA1LjQ5LDE5Ljk1XSxbLTEwNS43MywyMC40M10sWy0xMDUuNCwyMC41M10sWy0xMDUuNSwyMC44Ml0sWy0xMDUuMjcsMjEuMDhdLFstMTA1LjI3LDIxLjQyXSxbLTEwNS42LDIxLjg3XSxbLTEwNS42OSwyMi4yN10sWy0xMDYuMDMsMjIuNzddLFstMTA2LjkxLDIzLjc3XSxbLTEwNy45MiwyNC41NV0sWy0xMDguNCwyNS4xN10sWy0xMDkuMjYsMjUuNThdLFstMTA5LjQ0LDI1LjgyXSxbLTEwOS4yOSwyNi40NF0sWy0xMDkuOCwyNi42OF0sWy0xMTAuMzksMjcuMTZdLFstMTEwLjY0LDI3Ljg2XSxbLTExMS4xOCwyNy45NF0sWy0xMTEuNzYsMjguNDddLFstMTEyLjIzLDI4Ljk1XSxbLTExMi4yNywyOS4yN10sWy0xMTIuODEsMzAuMDJdLFstMTEzLjE2LDMwLjc5XSxbLTExMy4xNSwzMS4xN10sWy0xMTMuODcsMzEuNTddLFstMTE0LjIxLDMxLjUyXSxbLTExNC43OCwzMS44XSxbLTExNC45NCwzMS4zOV0sWy0xMTQuNzcsMzAuOTFdLFstMTE0LjY3LDMwLjE2XSxbLTExNC4zMywyOS43NV0sWy0xMTMuNTksMjkuMDZdLFstMTEzLjQyLDI4LjgzXSxbLTExMy4yNywyOC43NV0sWy0xMTMuMTQsMjguNDFdLFstMTEyLjk2LDI4LjQzXSxbLTExMi43NiwyNy43OF0sWy0xMTIuNDYsMjcuNTNdLFstMTEyLjI0LDI3LjE3XSxbLTExMS42MiwyNi42Nl0sWy0xMTEuMjgsMjUuNzNdLFstMTEwLjk5LDI1LjI5XSxbLTExMC43MSwyNC44M10sWy0xMTAuNjYsMjQuM10sWy0xMTAuMTcsMjQuMjddLFstMTA5Ljc3LDIzLjgxXSxbLTEwOS40MSwyMy4zNl0sWy0xMDkuNDMsMjMuMTldLFstMTA5Ljg1LDIyLjgyXSxbLTExMC4wMywyMi44Ml0sWy0xMTAuMywyMy40M10sWy0xMTAuOTUsMjRdLFstMTExLjY3LDI0LjQ4XSxbLTExMi4xOCwyNC43NF0sWy0xMTIuMTUsMjUuNDddLFstMTEyLjMsMjYuMDFdLFstMTEyLjc4LDI2LjMyXSxbLTExMy40NiwyNi43N10sWy0xMTMuNiwyNi42NF0sWy0xMTMuODUsMjYuOV0sWy0xMTQuNDcsMjcuMTRdLFstMTE1LjA2LDI3LjcyXSxbLTExNC45OCwyNy44XSxbLTExNC41NywyNy43NF0sWy0xMTQuMiwyOC4xMl0sWy0xMTQuMTYsMjguNTddLFstMTE0LjkzLDI5LjI4XSxbLTExNS41MiwyOS41Nl0sWy0xMTUuODksMzAuMThdLFstMTE2LjI2LDMwLjg0XSxbLTExNi43MiwzMS42NF0sWy0xMTcuMTMsMzIuNTRdXV1dfSx7bjpgVXJ1Z3VheWAsYTI6YFVZYCxhMzpgVVJZYCxwOmBVWWAsbDpbLTU1Ljk3LC0zMi45Nl0sZzpbW1tbLTU3LjYzLC0zMC4yMl0sWy01Ni45OCwtMzAuMTFdLFstNTUuOTcsLTMwLjg4XSxbLTU1LjYsLTMwLjg1XSxbLTU0LjU3LC0zMS40OV0sWy01My43OSwtMzIuMDVdLFstNTMuMjEsLTMyLjczXSxbLTUzLjY1LC0zMy4yXSxbLTUzLjM3LC0zMy43N10sWy01My44MSwtMzQuNF0sWy01NC45NCwtMzQuOTVdLFstNTUuNjcsLTM0Ljc1XSxbLTU2LjIyLC0zNC44Nl0sWy01Ny4xNCwtMzQuNDNdLFstNTcuODIsLTM0LjQ2XSxbLTU4LjQzLC0zMy45MV0sWy01OC4zNSwtMzMuMjZdLFstNTguMTMsLTMzLjA0XSxbLTU4LjE0LC0zMi4wNF0sWy01Ny44NywtMzEuMDJdLFstNTcuNjMsLTMwLjIyXV1dXX0se246YEJyYXppbGAsYTI6YEJSYCxhMzpgQlJBYCxwOmBCUmAsbDpbLTQ5LjU2LC0xMi4xXSxnOltbW1stNTMuMzcsLTMzLjc3XSxbLTUzLjY1LC0zMy4yXSxbLTUzLjIxLC0zMi43M10sWy01My43OSwtMzIuMDVdLFstNTQuNTcsLTMxLjQ5XSxbLTU1LjYsLTMwLjg1XSxbLTU1Ljk3LC0zMC44OF0sWy01Ni45OCwtMzAuMTFdLFstNTcuNjMsLTMwLjIyXSxbLTU2LjI5LC0yOC44NV0sWy01NS4xNiwtMjcuODhdLFstNTQuNDksLTI3LjQ3XSxbLTUzLjY1LC0yNi45Ml0sWy01My42MywtMjYuMTJdLFstNTQuMTMsLTI1LjU1XSxbLTU0LjYzLC0yNS43NF0sWy01NC40MywtMjUuMTZdLFstNTQuMjksLTI0LjU3XSxbLTU0LjI5LC0yNC4wMl0sWy01NC42NSwtMjMuODRdLFstNTUuMDMsLTI0XSxbLTU1LjQsLTIzLjk2XSxbLTU1LjUyLC0yMy41N10sWy01NS42MSwtMjIuNjZdLFstNTUuOCwtMjIuMzZdLFstNTYuNDcsLTIyLjA5XSxbLTU2Ljg4LC0yMi4yOF0sWy01Ny45NCwtMjIuMDldLFstNTcuODcsLTIwLjczXSxbLTU4LjE3LC0yMC4xOF0sWy01Ny44NSwtMTkuOTddLFstNTcuOTUsLTE5LjRdLFstNTcuNjgsLTE4Ljk2XSxbLTU3LjUsLTE4LjE3XSxbLTU3LjczLC0xNy41NV0sWy01OC4yOCwtMTcuMjddLFstNTguMzksLTE2Ljg4XSxbLTU4LjI0LC0xNi4zXSxbLTYwLjE2LC0xNi4yNl0sWy02MC41NCwtMTUuMDldLFstNjAuMjUsLTE1LjA4XSxbLTYwLjI2LC0xNC42NV0sWy02MC40NiwtMTQuMzVdLFstNjAuNSwtMTMuNzhdLFstNjEuMDgsLTEzLjQ4XSxbLTYxLjcxLC0xMy40OV0sWy02Mi4xMywtMTMuMl0sWy02Mi44LC0xM10sWy02My4yLC0xMi42M10sWy02NC4zMiwtMTIuNDZdLFstNjUuNCwtMTEuNTddLFstNjUuMzIsLTEwLjldLFstNjUuNDQsLTEwLjUxXSxbLTY1LjM0LC05Ljc2XSxbLTY2LjY1LC05LjkzXSxbLTY3LjE3LC0xMC4zMV0sWy02OC4wNSwtMTAuNzFdLFstNjguMjcsLTExLjAxXSxbLTY4Ljc5LC0xMS4wNF0sWy02OS41MywtMTAuOTVdLFstNzAuMDksLTExLjEyXSxbLTcwLjU1LC0xMS4wMV0sWy03MC40OCwtOS40OV0sWy03MS4zLC0xMC4wOF0sWy03Mi4xOCwtMTAuMDVdLFstNzIuNTYsLTkuNTJdLFstNzMuMjMsLTkuNDZdLFstNzMuMDIsLTkuMDNdLFstNzMuNTcsLTguNDJdLFstNzMuOTksLTcuNTJdLFstNzMuNzIsLTcuMzRdLFstNzMuNzIsLTYuOTJdLFstNzMuMTIsLTYuNjNdLFstNzMuMjIsLTYuMDldLFstNzIuOTYsLTUuNzRdLFstNzIuODksLTUuMjddLFstNzEuNzUsLTQuNTldLFstNzAuOTMsLTQuNF0sWy03MC43OSwtNC4yNV0sWy02OS44OSwtNC4zXSxbLTY5LjQ0LC0xLjU2XSxbLTY5LjQyLC0xLjEyXSxbLTY5LjU4LC0uNTVdLFstNzAuMDIsLS4xOV0sWy03MC4wMiwuNTRdLFstNjkuNDUsLjcxXSxbLTY5LjI1LC42XSxbLTY5LjIyLC45OV0sWy02OS44LDEuMDldLFstNjkuODIsMS43MV0sWy02Ny44NywxLjY5XSxbLTY3LjU0LDIuMDRdLFstNjcuMjYsMS43Ml0sWy02Ny4wNywxLjEzXSxbLTY2Ljg4LDEuMjVdLFstNjYuMzMsLjcyXSxbLTY1LjU1LC43OV0sWy02NS4zNSwxLjFdLFstNjQuNjEsMS4zM10sWy02NC4yLDEuNDldLFstNjQuMDgsMS45Ml0sWy02My4zNywyLjJdLFstNjMuNDIsMi40MV0sWy02NC4yNywyLjVdLFstNjQuNDEsMy4xM10sWy02NC4zNywzLjhdLFstNjQuODIsNC4wNl0sWy02NC42Myw0LjE1XSxbLTYzLjg5LDQuMDJdLFstNjMuMDksMy43N10sWy02Mi44LDQuMDFdLFstNjIuMDksNC4xNl0sWy02MC45Nyw0LjU0XSxbLTYwLjYsNC45Ml0sWy02MC43Myw1LjJdLFstNjAuMjEsNS4yNF0sWy01OS45OCw1LjAxXSxbLTYwLjExLDQuNTddLFstNTkuNzcsNC40Ml0sWy01OS41NCwzLjk2XSxbLTU5LjgyLDMuNjFdLFstNTkuOTcsMi43Nl0sWy01OS43MiwyLjI1XSxbLTU5LjY1LDEuNzldLFstNTkuMDMsMS4zMl0sWy01OC41NCwxLjI3XSxbLTU4LjQzLDEuNDZdLFstNTguMTEsMS41MV0sWy01Ny42NiwxLjY4XSxbLTU3LjM0LDEuOTVdLFstNTYuNzgsMS44Nl0sWy01Ni41NCwxLjldLFstNTYsMS44Ml0sWy01NS45MSwyLjAyXSxbLTU2LjA3LDIuMjJdLFstNTUuOTcsMi41MV0sWy01NS41NywyLjQyXSxbLTU1LjEsMi41Ml0sWy01NC41MiwyLjMxXSxbLTU0LjA5LDIuMTFdLFstNTMuNzgsMi4zOF0sWy01My41NSwyLjMzXSxbLTUzLjQyLDIuMDVdLFstNTIuOTQsMi4xMl0sWy01Mi41NiwyLjVdLFstNTIuMjUsMy4yNF0sWy01MS42Niw0LjE2XSxbLTUxLjMyLDQuMl0sWy01MS4wNywzLjY1XSxbLTUwLjUxLDEuOV0sWy00OS45NywxLjc0XSxbLTQ5Ljk1LDEuMDVdLFstNTAuNywuMjJdLFstNTAuMzksLS4wOF0sWy00OC42MiwtLjI0XSxbLTQ4LjU4LC0xLjI0XSxbLTQ3LjgyLC0uNThdLFstNDYuNTcsLS45NF0sWy00NC45MSwtMS41NV0sWy00NC40MiwtMi4xNF0sWy00NC41OCwtMi42OV0sWy00My40MiwtMi4zOF0sWy00MS40NywtMi45MV0sWy0zOS45OCwtMi44N10sWy0zOC41LC0zLjddLFstMzcuMjIsLTQuODJdLFstMzYuNDUsLTUuMTFdLFstMzUuNiwtNS4xNV0sWy0zNS4yNCwtNS40Nl0sWy0zNC45LC02Ljc0XSxbLTM0LjczLC03LjM0XSxbLTM1LjEzLC05XSxbLTM1LjY0LC05LjY1XSxbLTM3LjA1LC0xMS4wNF0sWy0zNy42OCwtMTIuMTddLFstMzguNDIsLTEzLjA0XSxbLTM4LjY3LC0xMy4wNl0sWy0zOC45NSwtMTMuNzldLFstMzguODgsLTE1LjY3XSxbLTM5LjE2LC0xNy4yMV0sWy0zOS4yNywtMTcuODddLFstMzkuNTgsLTE4LjI2XSxbLTM5Ljc2LC0xOS42XSxbLTQwLjc3LC0yMC45XSxbLTQwLjk0LC0yMS45NF0sWy00MS43NSwtMjIuMzddLFstNDEuOTksLTIyLjk3XSxbLTQzLjA3LC0yMi45N10sWy00NC42NSwtMjMuMzVdLFstNDUuMzUsLTIzLjhdLFstNDYuNDcsLTI0LjA5XSxbLTQ3LjY1LC0yNC44OV0sWy00OC41LC0yNS44OF0sWy00OC42NCwtMjYuNjJdLFstNDguNDcsLTI3LjE4XSxbLTQ4LjY2LC0yOC4xOV0sWy00OC44OSwtMjguNjddLFstNDkuNTksLTI5LjIyXSxbLTUwLjcsLTMwLjk4XSxbLTUxLjU4LC0zMS43OF0sWy01Mi4yNiwtMzIuMjVdLFstNTIuNzEsLTMzLjJdLFstNTMuMzcsLTMzLjc3XV1dXX0se246YEJvbGl2aWFgLGEyOmBCT2AsYTM6YEJPTGAscDpgQk9gLGw6Wy02NC41OSwtMTYuNjddLGc6W1tbWy02OS41MywtMTAuOTVdLFstNjguNzksLTExLjA0XSxbLTY4LjI3LC0xMS4wMV0sWy02OC4wNSwtMTAuNzFdLFstNjcuMTcsLTEwLjMxXSxbLTY2LjY1LC05LjkzXSxbLTY1LjM0LC05Ljc2XSxbLTY1LjQ0LC0xMC41MV0sWy02NS4zMiwtMTAuOV0sWy02NS40LC0xMS41N10sWy02NC4zMiwtMTIuNDZdLFstNjMuMiwtMTIuNjNdLFstNjIuOCwtMTNdLFstNjIuMTMsLTEzLjJdLFstNjEuNzEsLTEzLjQ5XSxbLTYxLjA4LC0xMy40OF0sWy02MC41LC0xMy43OF0sWy02MC40NiwtMTQuMzVdLFstNjAuMjYsLTE0LjY1XSxbLTYwLjI1LC0xNS4wOF0sWy02MC41NCwtMTUuMDldLFstNjAuMTYsLTE2LjI2XSxbLTU4LjI0LC0xNi4zXSxbLTU4LjM5LC0xNi44OF0sWy01OC4yOCwtMTcuMjddLFstNTcuNzMsLTE3LjU1XSxbLTU3LjUsLTE4LjE3XSxbLTU3LjY4LC0xOC45Nl0sWy01Ny45NSwtMTkuNF0sWy01Ny44NSwtMTkuOTddLFstNTguMTcsLTIwLjE4XSxbLTU4LjE4LC0xOS44N10sWy01OS4xMiwtMTkuMzZdLFstNjAuMDQsLTE5LjM0XSxbLTYxLjc5LC0xOS42M10sWy02Mi4yNywtMjAuNTFdLFstNjIuMjksLTIxLjA1XSxbLTYyLjY5LC0yMi4yNV0sWy02Mi44NSwtMjIuMDNdLFstNjMuOTksLTIxLjk5XSxbLTY0LjM4LC0yMi44XSxbLTY0Ljk2LC0yMi4wOF0sWy02Ni4yNywtMjEuODNdLFstNjcuMTEsLTIyLjc0XSxbLTY3LjgzLC0yMi44N10sWy02OC4yMiwtMjEuNDldLFstNjguNzYsLTIwLjM3XSxbLTY4LjQ0LC0xOS40MV0sWy02OC45NywtMTguOThdLFstNjkuMSwtMTguMjZdLFstNjkuNTksLTE3LjU4XSxbLTY4Ljk2LC0xNi41XSxbLTY5LjM5LC0xNS42Nl0sWy02OS4xNiwtMTUuMzJdLFstNjkuMzQsLTE0Ljk1XSxbLTY4Ljk1LC0xNC40NV0sWy02OC45MywtMTMuNl0sWy02OC44OCwtMTIuOV0sWy02OC42NywtMTIuNTZdLFstNjkuNTMsLTEwLjk1XV1dXX0se246YFBlcnVgLGEyOmBQRWAsYTM6YFBFUmAscDpgUEVgLGw6Wy03Mi45LC0xMi45OF0sZzpbW1tbLTY5Ljg5LC00LjNdLFstNzAuNzksLTQuMjVdLFstNzAuOTMsLTQuNF0sWy03MS43NSwtNC41OV0sWy03Mi44OSwtNS4yN10sWy03Mi45NiwtNS43NF0sWy03My4yMiwtNi4wOV0sWy03My4xMiwtNi42M10sWy03My43MiwtNi45Ml0sWy03My43MiwtNy4zNF0sWy03My45OSwtNy41Ml0sWy03My41NywtOC40Ml0sWy03My4wMiwtOS4wM10sWy03My4yMywtOS40Nl0sWy03Mi41NiwtOS41Ml0sWy03Mi4xOCwtMTAuMDVdLFstNzEuMywtMTAuMDhdLFstNzAuNDgsLTkuNDldLFstNzAuNTUsLTExLjAxXSxbLTcwLjA5LC0xMS4xMl0sWy02OS41MywtMTAuOTVdLFstNjguNjcsLTEyLjU2XSxbLTY4Ljg4LC0xMi45XSxbLTY4LjkzLC0xMy42XSxbLTY4Ljk1LC0xNC40NV0sWy02OS4zNCwtMTQuOTVdLFstNjkuMTYsLTE1LjMyXSxbLTY5LjM5LC0xNS42Nl0sWy02OC45NiwtMTYuNV0sWy02OS41OSwtMTcuNThdLFstNjkuODYsLTE4LjA5XSxbLTcwLjM3LC0xOC4zNV0sWy03MS4zOCwtMTcuNzddLFstNzEuNDYsLTE3LjM2XSxbLTczLjQ0LC0xNi4zNl0sWy03NS4yNCwtMTUuMjddLFstNzYuMDEsLTE0LjY1XSxbLTc2LjQyLC0xMy44Ml0sWy03Ni4yNiwtMTMuNTRdLFstNzcuMTEsLTEyLjIyXSxbLTc4LjA5LC0xMC4zOF0sWy03OS4wNCwtOC4zOV0sWy03OS40NSwtNy45M10sWy03OS43NiwtNy4xOV0sWy04MC41NCwtNi41NF0sWy04MS4yNSwtNi4xNF0sWy04MC45MywtNS42OV0sWy04MS40MSwtNC43NF0sWy04MS4xLC00LjA0XSxbLTgwLjMsLTMuNF0sWy04MC4xOCwtMy44Ml0sWy04MC40NywtNC4wNl0sWy04MC40NCwtNC40M10sWy04MC4wMywtNC4zNV0sWy03OS42MiwtNC40NV0sWy03OS4yMSwtNC45Nl0sWy03OC42NCwtNC41NV0sWy03OC40NSwtMy44N10sWy03Ny44NCwtM10sWy03Ni42NCwtMi42MV0sWy03NS41NCwtMS41Nl0sWy03NS4yMywtLjkxXSxbLTc1LjM3LC0uMTVdLFstNzUuMTEsLS4wNl0sWy03NC40NCwtLjUzXSxbLTc0LjEyLC0xXSxbLTczLjY2LC0xLjI2XSxbLTczLjA3LC0yLjMxXSxbLTcyLjMzLC0yLjQzXSxbLTcxLjc3LC0yLjE3XSxbLTcxLjQxLC0yLjM0XSxbLTcwLjgxLC0yLjI2XSxbLTcwLjA1LC0yLjczXSxbLTcwLjY5LC0zLjc0XSxbLTcwLjM5LC0zLjc3XSxbLTY5Ljg5LC00LjNdXV1dfSx7bjpgQ29sb21iaWFgLGEyOmBDT2AsYTM6YENPTGAscDpgQ09gLGw6Wy03My4xNywzLjM3XSxnOltbW1stNjYuODgsMS4yNV0sWy02Ny4wNywxLjEzXSxbLTY3LjI2LDEuNzJdLFstNjcuNTQsMi4wNF0sWy02Ny44NywxLjY5XSxbLTY5LjgyLDEuNzFdLFstNjkuOCwxLjA5XSxbLTY5LjIyLC45OV0sWy02OS4yNSwuNl0sWy02OS40NSwuNzFdLFstNzAuMDIsLjU0XSxbLTcwLjAyLC0uMTldLFstNjkuNTgsLS41NV0sWy02OS40MiwtMS4xMl0sWy02OS40NCwtMS41Nl0sWy02OS44OSwtNC4zXSxbLTcwLjM5LC0zLjc3XSxbLTcwLjY5LC0zLjc0XSxbLTcwLjA1LC0yLjczXSxbLTcwLjgxLC0yLjI2XSxbLTcxLjQxLC0yLjM0XSxbLTcxLjc3LC0yLjE3XSxbLTcyLjMzLC0yLjQzXSxbLTczLjA3LC0yLjMxXSxbLTczLjY2LC0xLjI2XSxbLTc0LjEyLC0xXSxbLTc0LjQ0LC0uNTNdLFstNzUuMTEsLS4wNl0sWy03NS4zNywtLjE1XSxbLTc1LjgsLjA4XSxbLTc2LjI5LC40Ml0sWy03Ni41OCwuMjZdLFstNzcuNDIsLjRdLFstNzcuNjcsLjgzXSxbLTc3Ljg2LC44MV0sWy03OC44NiwxLjM4XSxbLTc4Ljk5LDEuNjldLFstNzguNjIsMS43N10sWy03OC42NiwyLjI3XSxbLTc4LjQzLDIuNjNdLFstNzcuOTMsMi43XSxbLTc3LjUxLDMuMzNdLFstNzcuMTMsMy44NV0sWy03Ny41LDQuMDldLFstNzcuMzEsNC42N10sWy03Ny41Myw1LjU4XSxbLTc3LjMyLDUuODVdLFstNzcuNDgsNi42OV0sWy03Ny44OCw3LjIyXSxbLTc3Ljc1LDcuNzFdLFstNzcuNDMsNy42NF0sWy03Ny4yNCw3Ljk0XSxbLTc3LjQ3LDguNTJdLFstNzcuMzUsOC42N10sWy03Ni44NCw4LjY0XSxbLTc2LjA5LDkuMzRdLFstNzUuNjcsOS40NF0sWy03NS42Niw5Ljc3XSxbLTc1LjQ4LDEwLjYyXSxbLTc0LjkxLDExLjA4XSxbLTc0LjI4LDExLjFdLFstNzQuMiwxMS4zMV0sWy03My40MSwxMS4yM10sWy03Mi42MywxMS43M10sWy03Mi4yNCwxMS45Nl0sWy03MS43NSwxMi40NF0sWy03MS40LDEyLjM4XSxbLTcxLjE0LDEyLjExXSxbLTcxLjMzLDExLjc4XSxbLTcxLjk3LDExLjYxXSxbLTcyLjIzLDExLjExXSxbLTcyLjYxLDEwLjgyXSxbLTcyLjkxLDEwLjQ1XSxbLTczLjAzLDkuNzRdLFstNzMuMyw5LjE1XSxbLTcyLjc5LDkuMDldLFstNzIuNjYsOC42M10sWy03Mi40NCw4LjQxXSxbLTcyLjM2LDhdLFstNzIuNDgsNy42M10sWy03Mi40NCw3LjQyXSxbLTcyLjIsNy4zNF0sWy03MS45Niw2Ljk5XSxbLTcwLjY3LDcuMDldLFstNzAuMDksNi45Nl0sWy02OS4zOSw2LjFdLFstNjguOTksNi4yMV0sWy02OC4yNyw2LjE1XSxbLTY3LjcsNi4yN10sWy02Ny4zNCw2LjFdLFstNjcuNTIsNS41Nl0sWy02Ny43NCw1LjIyXSxbLTY3LjgyLDQuNV0sWy02Ny42MiwzLjg0XSxbLTY3LjM0LDMuNTRdLFstNjcuMywzLjMyXSxbLTY3LjgxLDIuODJdLFstNjcuNDUsMi42XSxbLTY3LjE4LDIuMjVdLFstNjYuODgsMS4yNV1dXV19LHtuOmBQYW5hbWFgLGEyOmBQQWAsYTM6YFBBTmAscDpgUEFgLGw6Wy04MC4zNSw4LjcyXSxnOltbW1stNzcuMzUsOC42N10sWy03Ny40Nyw4LjUyXSxbLTc3LjI0LDcuOTRdLFstNzcuNDMsNy42NF0sWy03Ny43NSw3LjcxXSxbLTc3Ljg4LDcuMjJdLFstNzguMjEsNy41MV0sWy03OC40Myw4LjA1XSxbLTc4LjE4LDguMzJdLFstNzguNDQsOC4zOV0sWy03OC42Miw4LjcyXSxbLTc5LjEyLDldLFstNzkuNTYsOC45M10sWy03OS43Niw4LjU4XSxbLTgwLjE2LDguMzNdLFstODAuMzgsOC4zXSxbLTgwLjQ4LDguMDldLFstODAsNy41NV0sWy04MC4yOCw3LjQyXSxbLTgwLjQyLDcuMjddLFstODAuODksNy4yMl0sWy04MS4wNiw3LjgyXSxbLTgxLjE5LDcuNjVdLFstODEuNTIsNy43MV0sWy04MS43Miw4LjExXSxbLTgyLjEzLDguMThdLFstODIuMzksOC4yOV0sWy04Mi44Miw4LjI5XSxbLTgyLjg1LDguMDddLFstODIuOTcsOC4yM10sWy04Mi45MSw4LjQyXSxbLTgyLjgzLDguNjNdLFstODIuODcsOC44MV0sWy04Mi43Miw4LjkzXSxbLTgyLjkzLDkuMDddLFstODIuOTMsOS40OF0sWy04Mi41NSw5LjU3XSxbLTgyLjE5LDkuMjFdLFstODIuMjEsOV0sWy04MS44MSw4Ljk1XSxbLTgxLjcxLDkuMDNdLFstODEuNDQsOC43OV0sWy04MC45NSw4Ljg2XSxbLTgwLjUyLDkuMTFdLFstNzkuOTEsOS4zMV0sWy03OS41Nyw5LjYxXSxbLTc5LjAyLDkuNTVdLFstNzkuMDYsOS40NV0sWy03OC41LDkuNDJdLFstNzguMDYsOS4yNV0sWy03Ny43Myw4Ljk1XSxbLTc3LjM1LDguNjddXV1dfSx7bjpgQ29zdGEgUmljYWAsYTI6YENSYCxhMzpgQ1JJYCxwOmBDUmAsbDpbLTg0LjA4LDEwLjA3XSxnOltbW1stODIuNTUsOS41N10sWy04Mi45Myw5LjQ4XSxbLTgyLjkzLDkuMDddLFstODIuNzIsOC45M10sWy04Mi44Nyw4LjgxXSxbLTgyLjgzLDguNjNdLFstODIuOTEsOC40Ml0sWy04Mi45Nyw4LjIzXSxbLTgzLjUxLDguNDVdLFstODMuNzEsOC42Nl0sWy04My42LDguODNdLFstODMuNjMsOS4wNV0sWy04My45MSw5LjI5XSxbLTg0LjMsOS40OV0sWy04NC42NSw5LjYyXSxbLTg0LjcxLDkuOTFdLFstODQuOTgsMTAuMDldLFstODQuOTEsOS44XSxbLTg1LjExLDkuNTZdLFstODUuMzQsOS44M10sWy04NS42Niw5LjkzXSxbLTg1LjgsMTAuMTNdLFstODUuNzksMTAuNDRdLFstODUuNjYsMTAuNzVdLFstODUuOTQsMTAuOV0sWy04NS43MSwxMS4wOV0sWy04NS41NiwxMS4yMl0sWy04NC45LDEwLjk1XSxbLTg0LjY3LDExLjA4XSxbLTg0LjM2LDExXSxbLTg0LjE5LDEwLjc5XSxbLTgzLjksMTAuNzNdLFstODMuNjYsMTAuOTRdLFstODMuNCwxMC40XSxbLTgzLjAyLDkuOTldLFstODIuNTUsOS41N11dXV19LHtuOmBOaWNhcmFndWFgLGEyOmBOSWAsYTM6YE5JQ2AscDpgTklgLGw6Wy04NS4wNywxMi42N10sZzpbW1tbLTgzLjY2LDEwLjk0XSxbLTgzLjksMTAuNzNdLFstODQuMTksMTAuNzldLFstODQuMzYsMTFdLFstODQuNjcsMTEuMDhdLFstODQuOSwxMC45NV0sWy04NS41NiwxMS4yMl0sWy04NS43MSwxMS4wOV0sWy04Ni4wNiwxMS40XSxbLTg2LjUzLDExLjgxXSxbLTg2Ljc1LDEyLjE0XSxbLTg3LjE3LDEyLjQ2XSxbLTg3LjY3LDEyLjkxXSxbLTg3LjU2LDEzLjA2XSxbLTg3LjM5LDEyLjkxXSxbLTg3LjMyLDEyLjk4XSxbLTg3LjAxLDEzLjAzXSxbLTg2Ljg4LDEzLjI1XSxbLTg2LjczLDEzLjI2XSxbLTg2Ljc2LDEzLjc1XSxbLTg2LjUyLDEzLjc4XSxbLTg2LjMxLDEzLjc3XSxbLTg2LjEsMTQuMDRdLFstODUuOCwxMy44NF0sWy04NS43LDEzLjk2XSxbLTg1LjUxLDE0LjA4XSxbLTg1LjE3LDE0LjM1XSxbLTg1LjE1LDE0LjU2XSxbLTg1LjA1LDE0LjU1XSxbLTg0LjkyLDE0Ljc5XSxbLTg0LjgyLDE0LjgyXSxbLTg0LjY1LDE0LjY3XSxbLTg0LjQ1LDE0LjYyXSxbLTg0LjIzLDE0Ljc1XSxbLTgzLjk4LDE0Ljc1XSxbLTgzLjYzLDE0Ljg4XSxbLTgzLjQ5LDE1LjAyXSxbLTgzLjE1LDE1XSxbLTgzLjIzLDE0LjldLFstODMuMjgsMTQuNjhdLFstODMuMTgsMTQuMzFdLFstODMuNDEsMTMuOTddLFstODMuNTIsMTMuNTddLFstODMuNTUsMTMuMTNdLFstODMuNSwxMi44N10sWy04My40NywxMi40Ml0sWy04My42MywxMi4zMl0sWy04My43MiwxMS44OV0sWy04My42NSwxMS42M10sWy04My44NiwxMS4zN10sWy04My44MSwxMS4xXSxbLTgzLjY2LDEwLjk0XV1dXX0se246YEhvbmR1cmFzYCxhMjpgSE5gLGEzOmBITkRgLHA6YEhOYCxsOlstODYuODksMTQuNzldLGc6W1tbWy04My4xNSwxNV0sWy04My40OSwxNS4wMl0sWy04My42MywxNC44OF0sWy04My45OCwxNC43NV0sWy04NC4yMywxNC43NV0sWy04NC40NSwxNC42Ml0sWy04NC42NSwxNC42N10sWy04NC44MiwxNC44Ml0sWy04NC45MiwxNC43OV0sWy04NS4wNSwxNC41NV0sWy04NS4xNSwxNC41Nl0sWy04NS4xNywxNC4zNV0sWy04NS41MSwxNC4wOF0sWy04NS43LDEzLjk2XSxbLTg1LjgsMTMuODRdLFstODYuMSwxNC4wNF0sWy04Ni4zMSwxMy43N10sWy04Ni41MiwxMy43OF0sWy04Ni43NiwxMy43NV0sWy04Ni43MywxMy4yNl0sWy04Ni44OCwxMy4yNV0sWy04Ny4wMSwxMy4wM10sWy04Ny4zMiwxMi45OF0sWy04Ny40OSwxMy4zXSxbLTg3Ljc5LDEzLjM4XSxbLTg3LjcyLDEzLjc5XSxbLTg3Ljg2LDEzLjg5XSxbLTg4LjA3LDEzLjk2XSxbLTg4LjUsMTMuODVdLFstODguNTQsMTMuOThdLFstODguODQsMTQuMTRdLFstODkuMDYsMTQuMzRdLFstODkuMzUsMTQuNDJdLFstODkuMTUsMTQuNjhdLFstODkuMjMsMTQuODddLFstODkuMTUsMTUuMDddLFstODguNjgsMTUuMzVdLFstODguMjMsMTUuNzNdLFstODguMTIsMTUuNjldLFstODcuOSwxNS44Nl0sWy04Ny42MiwxNS44OF0sWy04Ny41MiwxNS44XSxbLTg3LjM3LDE1Ljg1XSxbLTg2LjksMTUuNzZdLFstODYuNDQsMTUuNzhdLFstODYuMTIsMTUuODldLFstODYsMTYuMDFdLFstODUuNjgsMTUuOTVdLFstODUuNDQsMTUuODldLFstODUuMTgsMTUuOTFdLFstODQuOTgsMTZdLFstODQuNTMsMTUuODZdLFstODQuMzcsMTUuODRdLFstODQuMDYsMTUuNjVdLFstODMuNzcsMTUuNDJdLFstODMuNDEsMTUuMjddLFstODMuMTUsMTVdXV1dfSx7bjpgRWwgU2FsdmFkb3JgLGEyOmBTVmAsYTM6YFNMVmAscDpgU1ZgLGw6Wy04OC44OSwxMy42OV0sZzpbW1tbLTg5LjM1LDE0LjQyXSxbLTg5LjA2LDE0LjM0XSxbLTg4Ljg0LDE0LjE0XSxbLTg4LjU0LDEzLjk4XSxbLTg4LjUsMTMuODVdLFstODguMDcsMTMuOTZdLFstODcuODYsMTMuODldLFstODcuNzIsMTMuNzldLFstODcuNzksMTMuMzhdLFstODcuOSwxMy4xNV0sWy04OC40OCwxMy4xNl0sWy04OC44NCwxMy4yNl0sWy04OS4yNiwxMy40Nl0sWy04OS44MSwxMy41Ml0sWy05MC4xLDEzLjc0XSxbLTkwLjA2LDEzLjg4XSxbLTg5LjcyLDE0LjEzXSxbLTg5LjUzLDE0LjI0XSxbLTg5LjU5LDE0LjM2XSxbLTg5LjM1LDE0LjQyXV1dXX0se246YEd1YXRlbWFsYWAsYTI6YEdUYCxhMzpgR1RNYCxwOmBHVGAsbDpbLTkwLjUsMTQuOThdLGc6W1tbWy05Mi4yMywxNC41NF0sWy05Mi4yLDE0LjgzXSxbLTkyLjA5LDE1LjA2XSxbLTkyLjIzLDE1LjI1XSxbLTkxLjc1LDE2LjA3XSxbLTkwLjQ2LDE2LjA3XSxbLTkwLjQ0LDE2LjQxXSxbLTkwLjYsMTYuNDddLFstOTAuNzEsMTYuNjldLFstOTEuMDgsMTYuOTJdLFstOTEuNDUsMTcuMjVdLFstOTEsMTcuMjVdLFstOTEsMTcuODJdLFstOTAuMDcsMTcuODJdLFstODkuMTQsMTcuODFdLFstODkuMTUsMTcuMDJdLFstODkuMjMsMTUuODldLFstODguOTMsMTUuODldLFstODguNiwxNS43MV0sWy04OC41MiwxNS44Nl0sWy04OC4yMywxNS43M10sWy04OC42OCwxNS4zNV0sWy04OS4xNSwxNS4wN10sWy04OS4yMywxNC44N10sWy04OS4xNSwxNC42OF0sWy04OS4zNSwxNC40Ml0sWy04OS41OSwxNC4zNl0sWy04OS41MywxNC4yNF0sWy04OS43MiwxNC4xM10sWy05MC4wNiwxMy44OF0sWy05MC4xLDEzLjc0XSxbLTkwLjYxLDEzLjkxXSxbLTkxLjIzLDEzLjkzXSxbLTkxLjY5LDE0LjEzXSxbLTkyLjIzLDE0LjU0XV1dXX0se246YEJlbGl6ZWAsYTI6YEJaYCxhMzpgQkxaYCxwOmBCWmAsbDpbLTg4LjcxLDE3LjJdLGc6W1tbWy04OS4xNCwxNy44MV0sWy04OS4xNSwxNy45Nl0sWy04OS4wMywxOF0sWy04OC44NSwxNy44OF0sWy04OC40OSwxOC40OV0sWy04OC4zLDE4LjVdLFstODguMywxOC4zNV0sWy04OC4xMSwxOC4zNV0sWy04OC4xMiwxOC4wOF0sWy04OC4yOSwxNy42NF0sWy04OC4yLDE3LjQ5XSxbLTg4LjMsMTcuMTNdLFstODguMjQsMTcuMDRdLFstODguMzYsMTYuNTNdLFstODguNTUsMTYuMjddLFstODguNzMsMTYuMjNdLFstODguOTMsMTUuODldLFstODkuMjMsMTUuODldLFstODkuMTUsMTcuMDJdLFstODkuMTQsMTcuODFdXV1dfSx7bjpgVmVuZXp1ZWxhYCxhMjpgVkVgLGEzOmBWRU5gLHA6YFZFYCxsOlstNjQuNiw3LjE4XSxnOltbW1stNjAuNzMsNS4yXSxbLTYwLjYsNC45Ml0sWy02MC45Nyw0LjU0XSxbLTYyLjA5LDQuMTZdLFstNjIuOCw0LjAxXSxbLTYzLjA5LDMuNzddLFstNjMuODksNC4wMl0sWy02NC42Myw0LjE1XSxbLTY0LjgyLDQuMDZdLFstNjQuMzcsMy44XSxbLTY0LjQxLDMuMTNdLFstNjQuMjcsMi41XSxbLTYzLjQyLDIuNDFdLFstNjMuMzcsMi4yXSxbLTY0LjA4LDEuOTJdLFstNjQuMiwxLjQ5XSxbLTY0LjYxLDEuMzNdLFstNjUuMzUsMS4xXSxbLTY1LjU1LC43OV0sWy02Ni4zMywuNzJdLFstNjYuODgsMS4yNV0sWy02Ny4xOCwyLjI1XSxbLTY3LjQ1LDIuNl0sWy02Ny44MSwyLjgyXSxbLTY3LjMsMy4zMl0sWy02Ny4zNCwzLjU0XSxbLTY3LjYyLDMuODRdLFstNjcuODIsNC41XSxbLTY3Ljc0LDUuMjJdLFstNjcuNTIsNS41Nl0sWy02Ny4zNCw2LjFdLFstNjcuNyw2LjI3XSxbLTY4LjI3LDYuMTVdLFstNjguOTksNi4yMV0sWy02OS4zOSw2LjFdLFstNzAuMDksNi45Nl0sWy03MC42Nyw3LjA5XSxbLTcxLjk2LDYuOTldLFstNzIuMiw3LjM0XSxbLTcyLjQ0LDcuNDJdLFstNzIuNDgsNy42M10sWy03Mi4zNiw4XSxbLTcyLjQ0LDguNDFdLFstNzIuNjYsOC42M10sWy03Mi43OSw5LjA5XSxbLTczLjMsOS4xNV0sWy03My4wMyw5Ljc0XSxbLTcyLjkxLDEwLjQ1XSxbLTcyLjYxLDEwLjgyXSxbLTcyLjIzLDExLjExXSxbLTcxLjk3LDExLjYxXSxbLTcxLjMzLDExLjc4XSxbLTcxLjM2LDExLjU0XSxbLTcxLjk1LDExLjQyXSxbLTcxLjYyLDEwLjk3XSxbLTcxLjYzLDEwLjQ1XSxbLTcyLjA3LDkuODddLFstNzEuNyw5LjA3XSxbLTcxLjI2LDkuMTRdLFstNzEuMDQsOS44Nl0sWy03MS4zNSwxMC4yMV0sWy03MS40LDEwLjk3XSxbLTcwLjE2LDExLjM4XSxbLTcwLjI5LDExLjg1XSxbLTY5Ljk0LDEyLjE2XSxbLTY5LjU4LDExLjQ2XSxbLTY4Ljg4LDExLjQ0XSxbLTY4LjIzLDEwLjg5XSxbLTY4LjE5LDEwLjU1XSxbLTY3LjMsMTAuNTVdLFstNjYuMjMsMTAuNjVdLFstNjUuNjYsMTAuMl0sWy02NC44OSwxMC4wOF0sWy02NC4zMywxMC4zOV0sWy02NC4zMiwxMC42NF0sWy02My4wOCwxMC43XSxbLTYxLjg4LDEwLjcyXSxbLTYyLjczLDEwLjQyXSxbLTYyLjM5LDkuOTVdLFstNjEuNTksOS44N10sWy02MC44Myw5LjM4XSxbLTYwLjY3LDguNThdLFstNjAuMTUsOC42XSxbLTU5Ljc2LDguMzddLFstNjAuNTUsNy43OF0sWy02MC42NCw3LjQyXSxbLTYwLjMsNy4wNF0sWy02MC41NCw2Ljg2XSxbLTYxLjE2LDYuN10sWy02MS4xNCw2LjIzXSxbLTYxLjQxLDUuOTZdLFstNjAuNzMsNS4yXV1dXX0se246YEd1eWFuYWAsYTI6YEdZYCxhMzpgR1VZYCxwOmBHWWAsbDpbLTU4Ljk0LDUuMTJdLGc6W1tbWy01Ni41NCwxLjldLFstNTYuNzgsMS44Nl0sWy01Ny4zNCwxLjk1XSxbLTU3LjY2LDEuNjhdLFstNTguMTEsMS41MV0sWy01OC40MywxLjQ2XSxbLTU4LjU0LDEuMjddLFstNTkuMDMsMS4zMl0sWy01OS42NSwxLjc5XSxbLTU5LjcyLDIuMjVdLFstNTkuOTcsMi43Nl0sWy01OS44MiwzLjYxXSxbLTU5LjU0LDMuOTZdLFstNTkuNzcsNC40Ml0sWy02MC4xMSw0LjU3XSxbLTU5Ljk4LDUuMDFdLFstNjAuMjEsNS4yNF0sWy02MC43Myw1LjJdLFstNjEuNDEsNS45Nl0sWy02MS4xNCw2LjIzXSxbLTYxLjE2LDYuN10sWy02MC41NCw2Ljg2XSxbLTYwLjMsNy4wNF0sWy02MC42NCw3LjQyXSxbLTYwLjU1LDcuNzhdLFstNTkuNzYsOC4zN10sWy01OS4xLDhdLFstNTguNDgsNy4zNV0sWy01OC40NSw2LjgzXSxbLTU4LjA4LDYuODFdLFstNTcuNTQsNi4zMl0sWy01Ny4xNSw1Ljk3XSxbLTU3LjMxLDUuMDddLFstNTcuOTEsNC44MV0sWy01Ny44Niw0LjU4XSxbLTU4LjA0LDQuMDZdLFstNTcuNiwzLjMzXSxbLTU3LjI4LDMuMzNdLFstNTcuMTUsMi43N10sWy01Ni41NCwxLjldXV1dfSx7bjpgU3VyaW5hbWVgLGEyOmBTUmAsYTM6YFNVUmAscDpgU1JgLGw6Wy01NS45MSw0LjE0XSxnOltbW1stNTQuNTIsMi4zMV0sWy01NS4xLDIuNTJdLFstNTUuNTcsMi40Ml0sWy01NS45NywyLjUxXSxbLTU2LjA3LDIuMjJdLFstNTUuOTEsMi4wMl0sWy01NiwxLjgyXSxbLTU2LjU0LDEuOV0sWy01Ny4xNSwyLjc3XSxbLTU3LjI4LDMuMzNdLFstNTcuNiwzLjMzXSxbLTU4LjA0LDQuMDZdLFstNTcuODYsNC41OF0sWy01Ny45MSw0LjgxXSxbLTU3LjMxLDUuMDddLFstNTcuMTUsNS45N10sWy01NS45NSw1Ljc3XSxbLTU1Ljg0LDUuOTVdLFstNTUuMDMsNi4wM10sWy01My45Niw1Ljc2XSxbLTU0LjQ4LDQuOV0sWy01NC40LDQuMjFdLFstNTQuMDEsMy42Ml0sWy01NC4xOCwzLjE5XSxbLTU0LjI3LDIuNzNdLFstNTQuNTIsMi4zMV1dXV19LHtuOmBGcmFuY2VgLGEyOmBgLGEzOmBGUkFgLHA6YEZgLGw6WzIuNTUsNDYuN10sZzpbW1tbLTUxLjY2LDQuMTZdLFstNTIuMjUsMy4yNF0sWy01Mi41NiwyLjVdLFstNTIuOTQsMi4xMl0sWy01My40MiwyLjA1XSxbLTUzLjU1LDIuMzNdLFstNTMuNzgsMi4zOF0sWy01NC4wOSwyLjExXSxbLTU0LjUyLDIuMzFdLFstNTQuMjcsMi43M10sWy01NC4xOCwzLjE5XSxbLTU0LjAxLDMuNjJdLFstNTQuNCw0LjIxXSxbLTU0LjQ4LDQuOV0sWy01My45Niw1Ljc2XSxbLTUzLjYyLDUuNjVdLFstNTIuODgsNS40MV0sWy01MS44Miw0LjU3XSxbLTUxLjY2LDQuMTZdXV0sW1tbNi4xOSw0OS40Nl0sWzYuNjYsNDkuMl0sWzguMSw0OS4wMl0sWzcuNTksNDguMzNdLFs3LjQ3LDQ3LjYyXSxbNy4xOSw0Ny40NV0sWzYuNzQsNDcuNTRdLFs2Ljc3LDQ3LjI5XSxbNi4wNCw0Ni43M10sWzYuMDIsNDYuMjddLFs2LjUsNDYuNDNdLFs2Ljg0LDQ1Ljk5XSxbNi44LDQ1LjcxXSxbNy4xLDQ1LjMzXSxbNi43NSw0NS4wM10sWzcuMDEsNDQuMjVdLFs3LjU1LDQ0LjEzXSxbNy40NCw0My42OV0sWzYuNTMsNDMuMTNdLFs0LjU2LDQzLjRdLFszLjEsNDMuMDhdLFsyLjk5LDQyLjQ3XSxbMS44Myw0Mi4zNF0sWy43LDQyLjhdLFsuMzQsNDIuNThdLFstMS41LDQzLjAzXSxbLTEuOSw0My40Ml0sWy0xLjM4LDQ0LjAyXSxbLTEuMTksNDYuMDFdLFstMi4yMyw0Ny4wNl0sWy0yLjk2LDQ3LjU3XSxbLTQuNDksNDcuOTVdLFstNC41OSw0OC42OF0sWy0zLjMsNDguOV0sWy0xLjYyLDQ4LjY0XSxbLTEuOTMsNDkuNzhdLFstLjk5LDQ5LjM1XSxbMS4zNCw1MC4xM10sWzEuNjQsNTAuOTVdLFsyLjUxLDUxLjE1XSxbMi42Niw1MC44XSxbMy4xMiw1MC43OF0sWzMuNTksNTAuMzhdLFs0LjI5LDQ5LjkxXSxbNC44LDQ5Ljk5XSxbNS42Nyw0OS41M10sWzUuOSw0OS40NF0sWzYuMTksNDkuNDZdXV0sW1tbOC43NSw0Mi42M10sWzkuMzksNDMuMDFdLFs5LjU2LDQyLjE1XSxbOS4yMyw0MS4zOF0sWzguNzgsNDEuNThdLFs4LjU0LDQyLjI2XSxbOC43NSw0Mi42M11dXV19LHtuOmBFY3VhZG9yYCxhMjpgRUNgLGEzOmBFQ1VgLHA6YEVDYCxsOlstNzguMTksLTEuMjZdLGc6W1tbWy03NS4zNywtLjE1XSxbLTc1LjIzLC0uOTFdLFstNzUuNTQsLTEuNTZdLFstNzYuNjQsLTIuNjFdLFstNzcuODQsLTNdLFstNzguNDUsLTMuODddLFstNzguNjQsLTQuNTVdLFstNzkuMjEsLTQuOTZdLFstNzkuNjIsLTQuNDVdLFstODAuMDMsLTQuMzVdLFstODAuNDQsLTQuNDNdLFstODAuNDcsLTQuMDZdLFstODAuMTgsLTMuODJdLFstODAuMywtMy40XSxbLTc5Ljc3LC0yLjY2XSxbLTc5Ljk5LC0yLjIyXSxbLTgwLjM3LC0yLjY5XSxbLTgwLjk3LC0yLjI1XSxbLTgwLjc2LC0xLjk3XSxbLTgwLjkzLC0xLjA2XSxbLTgwLjU4LC0uOTFdLFstODAuNCwtLjI4XSxbLTgwLjAyLC4zNl0sWy04MC4wOSwuNzddLFstNzkuNTQsLjk4XSxbLTc4Ljg2LDEuMzhdLFstNzcuODYsLjgxXSxbLTc3LjY3LC44M10sWy03Ny40MiwuNF0sWy03Ni41OCwuMjZdLFstNzYuMjksLjQyXSxbLTc1LjgsLjA4XSxbLTc1LjM3LC0uMTVdXV1dfSx7bjpgUHVlcnRvIFJpY29gLGEyOmBQUmAsYTM6YFBSSWAscDpgUFJgLGw6Wy02Ni40OCwxOC4yM10sZzpbW1tbLTY2LjI4LDE4LjUxXSxbLTY1Ljc3LDE4LjQzXSxbLTY1LjU5LDE4LjIzXSxbLTY1Ljg1LDE3Ljk4XSxbLTY2LjYsMTcuOThdLFstNjcuMTgsMTcuOTVdLFstNjcuMjQsMTguMzddLFstNjcuMSwxOC41Ml0sWy02Ni4yOCwxOC41MV1dXV19LHtuOmBKYW1haWNhYCxhMjpgSk1gLGEzOmBKQU1gLHA6YEpgLGw6Wy03Ny4zMiwxOC4xNF0sZzpbW1tbLTc3LjU3LDE4LjQ5XSxbLTc2LjksMTguNF0sWy03Ni4zNywxOC4xNl0sWy03Ni4yLDE3Ljg5XSxbLTc2LjksMTcuODddLFstNzcuMjEsMTcuN10sWy03Ny43NywxNy44Nl0sWy03OC4zNCwxOC4yM10sWy03OC4yMiwxOC40NV0sWy03Ny44LDE4LjUyXSxbLTc3LjU3LDE4LjQ5XV1dXX0se246YEN1YmFgLGEyOmBDVWAsYTM6YENVQmAscDpgQ1VgLGw6Wy03Ny45OCwyMS4zM10sZzpbW1tbLTgyLjI3LDIzLjE5XSxbLTgxLjQsMjMuMTJdLFstODAuNjIsMjMuMTFdLFstNzkuNjgsMjIuNzddLFstNzkuMjgsMjIuNF0sWy03OC4zNSwyMi41MV0sWy03Ny45OSwyMi4yOF0sWy03Ny4xNSwyMS42Nl0sWy03Ni41MiwyMS4yMV0sWy03Ni4xOSwyMS4yMl0sWy03NS42LDIxLjAyXSxbLTc1LjY3LDIwLjc0XSxbLTc0LjkzLDIwLjY5XSxbLTc0LjE4LDIwLjI4XSxbLTc0LjMsMjAuMDVdLFstNzQuOTYsMTkuOTJdLFstNzUuNjMsMTkuODddLFstNzYuMzIsMTkuOTVdLFstNzcuNzYsMTkuODZdLFstNzcuMDksMjAuNDFdLFstNzcuNDksMjAuNjddLFstNzguMTQsMjAuNzRdLFstNzguNDgsMjEuMDNdLFstNzguNzIsMjEuNl0sWy03OS4yOCwyMS41Nl0sWy04MC4yMiwyMS44M10sWy04MC41MiwyMi4wNF0sWy04MS44MiwyMi4xOV0sWy04Mi4xNywyMi4zOV0sWy04MS44LDIyLjY0XSxbLTgyLjc4LDIyLjY5XSxbLTgzLjQ5LDIyLjE3XSxbLTgzLjkxLDIyLjE1XSxbLTg0LjA1LDIxLjkxXSxbLTg0LjU1LDIxLjhdLFstODQuOTcsMjEuOV0sWy04NC40NSwyMi4yXSxbLTg0LjIzLDIyLjU3XSxbLTgzLjc4LDIyLjc5XSxbLTgzLjI3LDIyLjk4XSxbLTgyLjUxLDIzLjA4XSxbLTgyLjI3LDIzLjE5XV1dXX0se246YFppbWJhYndlYCxhMjpgWldgLGEzOmBaV0VgLHA6YFpXYCxsOlsyOS45MywtMTguOTFdLGc6W1tbWzMxLjE5LC0yMi4yNV0sWzMwLjY2LC0yMi4xNV0sWzMwLjMyLC0yMi4yN10sWzI5Ljg0LC0yMi4xXSxbMjkuNDMsLTIyLjA5XSxbMjguNzksLTIxLjY0XSxbMjguMDIsLTIxLjQ5XSxbMjcuNzMsLTIwLjg1XSxbMjcuNzIsLTIwLjVdLFsyNy4zLC0yMC4zOV0sWzI2LjE2LC0xOS4yOV0sWzI1Ljg1LC0xOC43MV0sWzI1LjY1LC0xOC41NF0sWzI1LjI2LC0xNy43NF0sWzI2LjM4LC0xNy44NV0sWzI2LjcxLC0xNy45Nl0sWzI3LjA0LC0xNy45NF0sWzI3LjYsLTE3LjI5XSxbMjguNDcsLTE2LjQ3XSxbMjguODMsLTE2LjM5XSxbMjguOTUsLTE2LjA0XSxbMjkuNTIsLTE1LjY0XSxbMzAuMjcsLTE1LjUxXSxbMzAuMzQsLTE1Ljg4XSxbMzEuMTcsLTE1Ljg2XSxbMzEuNjQsLTE2LjA3XSxbMzEuODUsLTE2LjMyXSxbMzIuMzMsLTE2LjM5XSxbMzIuODUsLTE2LjcxXSxbMzIuODUsLTE3Ljk4XSxbMzIuNjUsLTE4LjY3XSxbMzIuNjEsLTE5LjQyXSxbMzIuNzcsLTE5LjcyXSxbMzIuNjYsLTIwLjNdLFszMi41MSwtMjAuNF0sWzMyLjI0LC0yMS4xMl0sWzMxLjE5LC0yMi4yNV1dXV19LHtuOmBCb3Rzd2FuYWAsYTI6YEJXYCxhMzpgQldBYCxwOmBCV2AsbDpbMjQuMTgsLTIyLjFdLGc6W1tbWzI5LjQzLC0yMi4wOV0sWzI4LjAyLC0yMi44M10sWzI3LjEyLC0yMy41N10sWzI2Ljc5LC0yNC4yNF0sWzI2LjQ5LC0yNC42Ml0sWzI1Ljk0LC0yNC43XSxbMjUuNzcsLTI1LjE3XSxbMjUuNjYsLTI1LjQ5XSxbMjUuMDMsLTI1LjcyXSxbMjQuMjEsLTI1LjY3XSxbMjMuNzMsLTI1LjM5XSxbMjMuMzEsLTI1LjI3XSxbMjIuODIsLTI1LjVdLFsyMi41OCwtMjUuOThdLFsyMi4xMSwtMjYuMjhdLFsyMS42MSwtMjYuNzNdLFsyMC44OSwtMjYuODNdLFsyMC42NywtMjYuNDhdLFsyMC43NiwtMjUuODddLFsyMC4xNywtMjQuOTJdLFsxOS45LC0yNC43N10sWzE5LjksLTIxLjg1XSxbMjAuODgsLTIxLjgxXSxbMjAuOTEsLTE4LjI1XSxbMjEuNjYsLTE4LjIyXSxbMjMuMiwtMTcuODddLFsyMy41OCwtMTguMjhdLFsyNC4yMiwtMTcuODldLFsyNC41MiwtMTcuODldLFsyNS4wOCwtMTcuNjZdLFsyNS4yNiwtMTcuNzRdLFsyNS42NSwtMTguNTRdLFsyNS44NSwtMTguNzFdLFsyNi4xNiwtMTkuMjldLFsyNy4zLC0yMC4zOV0sWzI3LjcyLC0yMC41XSxbMjcuNzMsLTIwLjg1XSxbMjguMDIsLTIxLjQ5XSxbMjguNzksLTIxLjY0XSxbMjkuNDMsLTIyLjA5XV1dXX0se246YE5hbWliaWFgLGEyOmBOQWAsYTM6YE5BTWAscDpgTkFgLGw6WzE3LjExLC0yMC41OF0sZzpbW1tbMTkuOSwtMjQuNzddLFsxOS44OSwtMjguNDZdLFsxOSwtMjguOTddLFsxOC40NiwtMjkuMDVdLFsxNy44NCwtMjguODZdLFsxNy4zOSwtMjguNzhdLFsxNy4yMiwtMjguMzZdLFsxNi44MiwtMjguMDhdLFsxNi4zNCwtMjguNThdLFsxNS42LC0yNy44Ml0sWzE1LjIxLC0yNy4wOV0sWzE0Ljk5LC0yNi4xMl0sWzE0Ljc0LC0yNS4zOV0sWzE0LjQxLC0yMy44NV0sWzE0LjM5LC0yMi42Nl0sWzE0LjI2LC0yMi4xMV0sWzEzLjg3LC0yMS43XSxbMTMuMzUsLTIwLjg3XSxbMTIuODMsLTE5LjY3XSxbMTIuNjEsLTE5LjA1XSxbMTEuNzksLTE4LjA3XSxbMTEuNzMsLTE3LjNdLFsxMi4yMiwtMTcuMTFdLFsxMi44MSwtMTYuOTRdLFsxMy40NiwtMTYuOTddLFsxNC4wNiwtMTcuNDJdLFsxNC4yMSwtMTcuMzVdLFsxOC4yNiwtMTcuMzFdLFsxOC45NiwtMTcuNzldLFsyMS4zOCwtMTcuOTNdLFsyMy4yMiwtMTcuNTJdLFsyNC4wMywtMTcuM10sWzI0LjY4LC0xNy4zNV0sWzI1LjA4LC0xNy41OF0sWzI1LjA4LC0xNy42Nl0sWzI0LjUyLC0xNy44OV0sWzI0LjIyLC0xNy44OV0sWzIzLjU4LC0xOC4yOF0sWzIzLjIsLTE3Ljg3XSxbMjEuNjYsLTE4LjIyXSxbMjAuOTEsLTE4LjI1XSxbMjAuODgsLTIxLjgxXSxbMTkuOSwtMjEuODVdLFsxOS45LC0yNC43N11dXV19LHtuOmBTZW5lZ2FsYCxhMjpgU05gLGEzOmBTRU5gLHA6YFNOYCxsOlstMTQuNzgsMTUuMTRdLGc6W1tbWy0xNi43MSwxMy41OV0sWy0xNy4xMywxNC4zN10sWy0xNy42MywxNC43M10sWy0xNy4xOSwxNC45Ml0sWy0xNi43LDE1LjYyXSxbLTE2LjQ2LDE2LjE0XSxbLTE2LjEyLDE2LjQ2XSxbLTE1LjYyLDE2LjM3XSxbLTE1LjE0LDE2LjU5XSxbLTE0LjU4LDE2LjZdLFstMTQuMSwxNi4zXSxbLTEzLjQ0LDE2LjA0XSxbLTEyLjgzLDE1LjNdLFstMTIuMTcsMTQuNjJdLFstMTIuMTIsMTMuOTldLFstMTEuOTMsMTMuNDJdLFstMTEuNTUsMTMuMTRdLFstMTEuNDcsMTIuNzVdLFstMTEuNTEsMTIuNDRdLFstMTEuNjYsMTIuMzldLFstMTIuMiwxMi40N10sWy0xMi4yOCwxMi4zNV0sWy0xMi41LDEyLjMzXSxbLTEzLjIyLDEyLjU4XSxbLTEzLjcsMTIuNTldLFstMTUuNTUsMTIuNjNdLFstMTUuODIsMTIuNTJdLFstMTYuMTUsMTIuNTVdLFstMTYuNjgsMTIuMzhdLFstMTYuODQsMTMuMTVdLFstMTUuOTMsMTMuMTNdLFstMTUuNjksMTMuMjddLFstMTUuNTEsMTMuMjhdLFstMTUuMTQsMTMuNTFdLFstMTQuNzEsMTMuM10sWy0xNC4yOCwxMy4yOF0sWy0xMy44NCwxMy41MV0sWy0xNC4wNSwxMy43OV0sWy0xNC4zOCwxMy42M10sWy0xNC42OSwxMy42M10sWy0xNS4wOCwxMy44OF0sWy0xNS40LDEzLjg2XSxbLTE1LjYyLDEzLjYyXSxbLTE2LjcxLDEzLjU5XV1dXX0se246YE1hbGlgLGEyOmBNTGAsYTM6YE1MSWAscDpgTUxgLGw6Wy0yLjA0LDE4LjY5XSxnOltbW1stMTEuNTEsMTIuNDRdLFstMTEuNDcsMTIuNzVdLFstMTEuNTUsMTMuMTRdLFstMTEuOTMsMTMuNDJdLFstMTIuMTIsMTMuOTldLFstMTIuMTcsMTQuNjJdLFstMTEuODMsMTQuOF0sWy0xMS42NywxNS4zOV0sWy0xMS4zNSwxNS40MV0sWy0xMC42NSwxNS4xM10sWy0xMC4wOSwxNS4zM10sWy05LjcsMTUuMjZdLFstOS41NSwxNS40OV0sWy01LjU0LDE1LjVdLFstNS4zMiwxNi4yXSxbLTUuNDksMTYuMzNdLFstNS45NywyMC42NF0sWy02LjQ1LDI0Ljk2XSxbLTQuOTIsMjQuOTddLFstMS41NSwyMi43OV0sWzEuODIsMjAuNjFdLFsyLjA2LDIwLjE0XSxbMi42OCwxOS44Nl0sWzMuMTUsMTkuNjldLFszLjE2LDE5LjA2XSxbNC4yNywxOS4xNl0sWzQuMjcsMTYuODVdLFszLjcyLDE2LjE4XSxbMy42NCwxNS41N10sWzIuNzUsMTUuNDFdLFsxLjM5LDE1LjMyXSxbMS4wMiwxNC45N10sWy4zNywxNC45M10sWy0uMjcsMTQuOTJdLFstLjUyLDE1LjEyXSxbLTEuMDcsMTQuOTddLFstMiwxNC41Nl0sWy0yLjE5LDE0LjI1XSxbLTIuOTcsMTMuOF0sWy0zLjEsMTMuNTRdLFstMy41MiwxMy4zNF0sWy00LjAxLDEzLjQ3XSxbLTQuMjgsMTMuMjNdLFstNC40MywxMi41NF0sWy01LjIyLDExLjcxXSxbLTUuMiwxMS4zOF0sWy01LjQ3LDEwLjk1XSxbLTUuNCwxMC4zN10sWy01LjgyLDEwLjIyXSxbLTYuMDUsMTAuMV0sWy02LjIxLDEwLjUyXSxbLTYuNDksMTAuNDFdLFstNi42NywxMC40M10sWy02Ljg1LDEwLjE0XSxbLTcuNjIsMTAuMTVdLFstNy45LDEwLjNdLFstOC4wMywxMC4yMV0sWy04LjM0LDEwLjQ5XSxbLTguMjgsMTAuNzldLFstOC40MSwxMC45MV0sWy04LjYyLDEwLjgxXSxbLTguNTgsMTEuMTRdLFstOC4zOCwxMS4zOV0sWy04Ljc5LDExLjgxXSxbLTguOTEsMTIuMDldLFstOS4xMywxMi4zMV0sWy05LjMzLDEyLjMzXSxbLTkuNTcsMTIuMTldLFstOS44OSwxMi4wNl0sWy0xMC4xNywxMS44NF0sWy0xMC41OSwxMS45Ml0sWy0xMC44NywxMi4xOF0sWy0xMS4wNCwxMi4yMV0sWy0xMS4zLDEyLjA4XSxbLTExLjQ2LDEyLjA4XSxbLTExLjUxLDEyLjQ0XV1dXX0se246YE1hdXJpdGFuaWFgLGEyOmBNUmAsYTM6YE1SVGAscDpgTVJgLGw6Wy05Ljc0LDE5LjU5XSxnOltbW1stMTcuMDYsMjFdLFstMTYuODUsMjEuMzNdLFstMTIuOTMsMjEuMzNdLFstMTMuMTIsMjIuNzddLFstMTIuODcsMjMuMjhdLFstMTEuOTQsMjMuMzddLFstMTEuOTcsMjUuOTNdLFstOC42OSwyNS44OF0sWy04LjY4LDI3LjRdLFstNC45MiwyNC45N10sWy02LjQ1LDI0Ljk2XSxbLTUuOTcsMjAuNjRdLFstNS40OSwxNi4zM10sWy01LjMyLDE2LjJdLFstNS41NCwxNS41XSxbLTkuNTUsMTUuNDldLFstOS43LDE1LjI2XSxbLTEwLjA5LDE1LjMzXSxbLTEwLjY1LDE1LjEzXSxbLTExLjM1LDE1LjQxXSxbLTExLjY3LDE1LjM5XSxbLTExLjgzLDE0LjhdLFstMTIuMTcsMTQuNjJdLFstMTIuODMsMTUuM10sWy0xMy40NCwxNi4wNF0sWy0xNC4xLDE2LjNdLFstMTQuNTgsMTYuNl0sWy0xNS4xNCwxNi41OV0sWy0xNS42MiwxNi4zN10sWy0xNi4xMiwxNi40Nl0sWy0xNi40NiwxNi4xNF0sWy0xNi41NSwxNi42N10sWy0xNi4yNywxNy4xN10sWy0xNi4xNSwxOC4xMV0sWy0xNi4yNiwxOS4xXSxbLTE2LjM4LDE5LjU5XSxbLTE2LjI4LDIwLjA5XSxbLTE2LjU0LDIwLjU3XSxbLTE3LjA2LDIxXV1dXX0se246YEJlbmluYCxhMjpgQkpgLGEzOmBCRU5gLHA6YEJKYCxsOlsyLjM1LDEwLjMyXSxnOltbW1syLjY5LDYuMjZdLFsxLjg3LDYuMTRdLFsxLjYyLDYuODNdLFsxLjY2LDkuMTNdLFsxLjQ2LDkuMzNdLFsxLjQzLDkuODNdLFsxLjA4LDEwLjE4XSxbLjc3LDEwLjQ3XSxbLjksMTFdLFsxLjI0LDExLjExXSxbMS40NSwxMS41NV0sWzEuOTQsMTEuNjRdLFsyLjE1LDExLjk0XSxbMi40OSwxMi4yM10sWzIuODUsMTIuMjRdLFszLjYxLDExLjY2XSxbMy41NywxMS4zM10sWzMuOCwxMC43M10sWzMuNiwxMC4zM10sWzMuNzEsMTAuMDZdLFszLjIyLDkuNDRdLFsyLjkxLDkuMTRdLFsyLjcyLDguNTFdLFsyLjc1LDcuODddLFsyLjY5LDYuMjZdXV1dfSx7bjpgTmlnZXJgLGEyOmBORWAsYTM6YE5FUmAscDpgTkVgLGw6WzkuNSwxNy40NV0sZzpbW1tbMTQuODUsMjIuODZdLFsxNS4xLDIxLjMxXSxbMTUuNDcsMjEuMDVdLFsxNS40OSwyMC43M10sWzE1LjksMjAuMzldLFsxNS42OSwxOS45Nl0sWzE1LjMsMTcuOTNdLFsxNS4yNSwxNi42M10sWzEzLjk3LDE1LjY4XSxbMTMuNTQsMTQuMzddLFsxMy45NiwxNF0sWzEzLjk1LDEzLjM1XSxbMTQuNiwxMy4zM10sWzE0LjUsMTIuODZdLFsxNC4yMSwxMi44XSxbMTQuMTgsMTIuNDhdLFsxNCwxMi40Nl0sWzEzLjMyLDEzLjU2XSxbMTMuMDgsMTMuNl0sWzEyLjMsMTMuMDRdLFsxMS41MywxMy4zM10sWzEwLjk5LDEzLjM5XSxbMTAuNywxMy4yNV0sWzEwLjExLDEzLjI4XSxbOS41MiwxMi44NV0sWzkuMDEsMTIuODNdLFs3LjgsMTMuMzRdLFs3LjMzLDEzLjFdLFs2LjgyLDEzLjEyXSxbNi40NSwxMy40OV0sWzUuNDQsMTMuODddLFs0LjM3LDEzLjc1XSxbNC4xMSwxMy41M10sWzMuOTcsMTIuOTZdLFszLjY4LDEyLjU1XSxbMy42MSwxMS42Nl0sWzIuODUsMTIuMjRdLFsyLjQ5LDEyLjIzXSxbMi4xNSwxMS45NF0sWzIuMTgsMTIuNjNdLFsxLjAyLDEyLjg1XSxbLjk5LDEzLjM0XSxbLjQzLDEzLjk5XSxbLjMsMTQuNDRdLFsuMzcsMTQuOTNdLFsxLjAyLDE0Ljk3XSxbMS4zOSwxNS4zMl0sWzIuNzUsMTUuNDFdLFszLjY0LDE1LjU3XSxbMy43MiwxNi4xOF0sWzQuMjcsMTYuODVdLFs0LjI3LDE5LjE2XSxbNS42OCwxOS42XSxbOC41NywyMS41N10sWzEyLDIzLjQ3XSxbMTMuNTgsMjMuMDRdLFsxNC4xNCwyMi40OV0sWzE0Ljg1LDIyLjg2XV1dXX0se246YE5pZ2VyaWFgLGEyOmBOR2AsYTM6YE5HQWAscDpgTkdgLGw6WzcuNSw5LjQ0XSxnOltbW1syLjY5LDYuMjZdLFsyLjc1LDcuODddLFsyLjcyLDguNTFdLFsyLjkxLDkuMTRdLFszLjIyLDkuNDRdLFszLjcxLDEwLjA2XSxbMy42LDEwLjMzXSxbMy44LDEwLjczXSxbMy41NywxMS4zM10sWzMuNjEsMTEuNjZdLFszLjY4LDEyLjU1XSxbMy45NywxMi45Nl0sWzQuMTEsMTMuNTNdLFs0LjM3LDEzLjc1XSxbNS40NCwxMy44N10sWzYuNDUsMTMuNDldLFs2LjgyLDEzLjEyXSxbNy4zMywxMy4xXSxbNy44LDEzLjM0XSxbOS4wMSwxMi44M10sWzkuNTIsMTIuODVdLFsxMC4xMSwxMy4yOF0sWzEwLjcsMTMuMjVdLFsxMC45OSwxMy4zOV0sWzExLjUzLDEzLjMzXSxbMTIuMywxMy4wNF0sWzEzLjA4LDEzLjZdLFsxMy4zMiwxMy41Nl0sWzE0LDEyLjQ2XSxbMTQuMTgsMTIuNDhdLFsxNC41OCwxMi4wOV0sWzE0LjQ3LDExLjldLFsxNC40MiwxMS41N10sWzEzLjU3LDEwLjhdLFsxMy4zMSwxMC4xNl0sWzEzLjE3LDkuNjRdLFsxMi45Niw5LjQyXSxbMTIuNzUsOC43Ml0sWzEyLjIyLDguMzFdLFsxMi4wNiw3LjhdLFsxMS44NCw3LjRdLFsxMS43NSw2Ljk4XSxbMTEuMDYsNi42NF0sWzEwLjUsNy4wNl0sWzEwLjEyLDcuMDRdLFs5LjUyLDYuNDVdLFs5LjIzLDYuNDRdLFs4Ljc2LDUuNDhdLFs4LjUsNC43N10sWzcuNDYsNC40MV0sWzcuMDgsNC40Nl0sWzYuNyw0LjI0XSxbNS45LDQuMjZdLFs1LjM2LDQuODldLFs1LjAzLDUuNjFdLFs0LjMzLDYuMjddLFszLjU3LDYuMjZdLFsyLjY5LDYuMjZdXV1dfSx7bjpgQ2FtZXJvb25gLGEyOmBDTWAsYTM6YENNUmAscDpgQ01gLGw6WzEyLjQ3LDQuNTldLGc6W1tbWzE0LjUsMTIuODZdLFsxNC44OSwxMi4yMl0sWzE0Ljk2LDExLjU2XSxbMTQuOTIsMTAuODldLFsxNS40Nyw5Ljk4XSxbMTQuOTEsOS45OV0sWzE0LjYzLDkuOTJdLFsxNC4xNywxMC4wMl0sWzEzLjk1LDkuNTVdLFsxNC41NCw4Ljk3XSxbMTQuOTgsOC44XSxbMTUuMTIsOC4zOF0sWzE1LjQ0LDcuNjldLFsxNS4yOCw3LjQyXSxbMTQuNzgsNi40MV0sWzE0LjU0LDYuMjNdLFsxNC40Niw1LjQ1XSxbMTQuNTYsNS4wM10sWzE0LjQ4LDQuNzNdLFsxNC45NSw0LjIxXSxbMTUuMDQsMy44NV0sWzE1LjQxLDMuMzRdLFsxNS44NiwzLjAxXSxbMTUuOTEsMi41Nl0sWzE2LjAxLDIuMjddLFsxNS45NCwxLjczXSxbMTUuMTUsMS45Nl0sWzE0LjM0LDIuMjNdLFsxMy4wOCwyLjI3XSxbMTIuOTUsMi4zMl0sWzEyLjM2LDIuMTldLFsxMS43NSwyLjMzXSxbMTEuMjgsMi4yNl0sWzkuNjUsMi4yOF0sWzkuOCwzLjA3XSxbOS40LDMuNzNdLFs4Ljk1LDMuOV0sWzguNzQsNC4zNV0sWzguNDksNC41XSxbOC41LDQuNzddLFs4Ljc2LDUuNDhdLFs5LjIzLDYuNDRdLFs5LjUyLDYuNDVdLFsxMC4xMiw3LjA0XSxbMTAuNSw3LjA2XSxbMTEuMDYsNi42NF0sWzExLjc1LDYuOThdLFsxMS44NCw3LjRdLFsxMi4wNiw3LjhdLFsxMi4yMiw4LjMxXSxbMTIuNzUsOC43Ml0sWzEyLjk2LDkuNDJdLFsxMy4xNyw5LjY0XSxbMTMuMzEsMTAuMTZdLFsxMy41NywxMC44XSxbMTQuNDIsMTEuNTddLFsxNC40NywxMS45XSxbMTQuNTgsMTIuMDldLFsxNC4xOCwxMi40OF0sWzE0LjIxLDEyLjhdLFsxNC41LDEyLjg2XV1dXX0se246YFRvZ29gLGEyOmBUR2AsYTM6YFRHT2AscDpgVEdgLGw6WzEuMDYsOC44MV0sZzpbW1tbLjksMTFdLFsuNzcsMTAuNDddLFsxLjA4LDEwLjE4XSxbMS40Myw5LjgzXSxbMS40Niw5LjMzXSxbMS42Niw5LjEzXSxbMS42Miw2LjgzXSxbMS44Nyw2LjE0XSxbMS4wNiw1LjkzXSxbLjg0LDYuMjhdLFsuNTcsNi45MV0sWy40OSw3LjQxXSxbLjcxLDguMzFdLFsuNDYsOC42OF0sWy4zNyw5LjQ3XSxbLjM3LDEwLjE5XSxbLS4wNSwxMC43MV0sWy4wMiwxMS4wMl0sWy45LDExXV1dXX0se246YEdoYW5hYCxhMjpgR0hgLGEzOmBHSEFgLHA6YEdIYCxsOlstMS4wNCw3LjcyXSxnOltbW1suMDIsMTEuMDJdLFstLjA1LDEwLjcxXSxbLjM3LDEwLjE5XSxbLjM3LDkuNDddLFsuNDYsOC42OF0sWy43MSw4LjMxXSxbLjQ5LDcuNDFdLFsuNTcsNi45MV0sWy44NCw2LjI4XSxbMS4wNiw1LjkzXSxbLS41MSw1LjM0XSxbLTEuMDYsNV0sWy0xLjk2LDQuNzFdLFstMi44Niw0Ljk5XSxbLTIuODEsNS4zOV0sWy0zLjI0LDYuMjVdLFstMi45OCw3LjM4XSxbLTIuNTYsOC4yMl0sWy0yLjgzLDkuNjRdLFstMi45NiwxMC40XSxbLTIuOTQsMTAuOTZdLFstMS4yLDExLjAxXSxbLS43NiwxMC45NF0sWy0uNDQsMTEuMV0sWy4wMiwxMS4wMl1dXV19LHtuOmBDw7R0ZSBkJ0l2b2lyZWAsYTI6YENJYCxhMzpgQ0lWYCxwOmBDSWAsbDpbLTUuNTcsNy40OV0sZzpbW1tbLTguMDMsMTAuMjFdLFstNy45LDEwLjNdLFstNy42MiwxMC4xNV0sWy02Ljg1LDEwLjE0XSxbLTYuNjcsMTAuNDNdLFstNi40OSwxMC40MV0sWy02LjIxLDEwLjUyXSxbLTYuMDUsMTAuMV0sWy01LjgyLDEwLjIyXSxbLTUuNCwxMC4zN10sWy00Ljk1LDEwLjE1XSxbLTQuNzgsOS44Ml0sWy00LjMzLDkuNjFdLFstMy45OCw5Ljg2XSxbLTMuNTEsOS45XSxbLTIuODMsOS42NF0sWy0yLjU2LDguMjJdLFstMi45OCw3LjM4XSxbLTMuMjQsNi4yNV0sWy0yLjgxLDUuMzldLFstMi44Niw0Ljk5XSxbLTMuMzEsNC45OF0sWy00LjAxLDUuMThdLFstNC42NSw1LjE3XSxbLTUuODMsNC45OV0sWy02LjUzLDQuNzFdLFstNy41Miw0LjM0XSxbLTcuNzEsNC4zNl0sWy03LjY0LDUuMTldLFstNy41NCw1LjMxXSxbLTcuNTcsNS43MV0sWy03Ljk5LDYuMTNdLFstOC4zMSw2LjE5XSxbLTguNiw2LjQ3XSxbLTguMzksNi45MV0sWy04LjQ5LDcuNF0sWy04LjQ0LDcuNjldLFstOC4yOCw3LjY5XSxbLTguMjIsOC4xMl0sWy04LjMsOC4zMl0sWy04LjIsOC40Nl0sWy03LjgzLDguNThdLFstOC4wOCw5LjM4XSxbLTguMzEsOS43OV0sWy04LjIzLDEwLjEzXSxbLTguMDMsMTAuMjFdXV1dfSx7bjpgR3VpbmVhYCxhMjpgR05gLGEzOmBHSU5gLHA6YEdOYCxsOlstMTAuMDIsMTAuNjJdLGc6W1tbWy0xMy43LDEyLjU5XSxbLTEzLjIyLDEyLjU4XSxbLTEyLjUsMTIuMzNdLFstMTIuMjgsMTIuMzVdLFstMTIuMiwxMi40N10sWy0xMS42NiwxMi4zOV0sWy0xMS41MSwxMi40NF0sWy0xMS40NiwxMi4wOF0sWy0xMS4zLDEyLjA4XSxbLTExLjA0LDEyLjIxXSxbLTEwLjg3LDEyLjE4XSxbLTEwLjU5LDExLjkyXSxbLTEwLjE3LDExLjg0XSxbLTkuODksMTIuMDZdLFstOS41NywxMi4xOV0sWy05LjMzLDEyLjMzXSxbLTkuMTMsMTIuMzFdLFstOC45MSwxMi4wOV0sWy04Ljc5LDExLjgxXSxbLTguMzgsMTEuMzldLFstOC41OCwxMS4xNF0sWy04LjYyLDEwLjgxXSxbLTguNDEsMTAuOTFdLFstOC4yOCwxMC43OV0sWy04LjM0LDEwLjQ5XSxbLTguMDMsMTAuMjFdLFstOC4yMywxMC4xM10sWy04LjMxLDkuNzldLFstOC4wOCw5LjM4XSxbLTcuODMsOC41OF0sWy04LjIsOC40Nl0sWy04LjMsOC4zMl0sWy04LjIyLDguMTJdLFstOC4yOCw3LjY5XSxbLTguNDQsNy42OV0sWy04LjcyLDcuNzFdLFstOC45Myw3LjMxXSxbLTkuMjEsNy4zMV0sWy05LjQsNy41M10sWy05LjM0LDcuOTNdLFstOS43Niw4LjU0XSxbLTEwLjAyLDguNDNdLFstMTAuMjMsOC40MV0sWy0xMC41MSw4LjM1XSxbLTEwLjQ5LDguNzJdLFstMTAuNjUsOC45OF0sWy0xMC42Miw5LjI3XSxbLTEwLjg0LDkuNjldLFstMTEuMTIsMTAuMDVdLFstMTEuOTIsMTAuMDVdLFstMTIuMTUsOS44Nl0sWy0xMi40Myw5Ljg0XSxbLTEyLjYsOS42Ml0sWy0xMi43MSw5LjM0XSxbLTEzLjI1LDguOV0sWy0xMy42OSw5LjQ5XSxbLTE0LjA3LDkuODldLFstMTQuMzMsMTAuMDJdLFstMTQuNTgsMTAuMjFdLFstMTQuNjksMTAuNjZdLFstMTQuODQsMTAuODhdLFstMTUuMTMsMTEuMDRdLFstMTQuNjksMTEuNTNdLFstMTQuMzgsMTEuNTFdLFstMTQuMTIsMTEuNjhdLFstMTMuOSwxMS42OF0sWy0xMy43NCwxMS44MV0sWy0xMy44MywxMi4xNF0sWy0xMy43MiwxMi4yNV0sWy0xMy43LDEyLjU5XV1dXX0se246YEd1aW5lYS1CaXNzYXVgLGEyOmBHV2AsYTM6YEdOQmAscDpgR1dgLGw6Wy0xNC41MiwxMi4xNl0sZzpbW1tbLTE2LjY4LDEyLjM4XSxbLTE2LjE1LDEyLjU1XSxbLTE1LjgyLDEyLjUyXSxbLTE1LjU1LDEyLjYzXSxbLTEzLjcsMTIuNTldLFstMTMuNzIsMTIuMjVdLFstMTMuODMsMTIuMTRdLFstMTMuNzQsMTEuODFdLFstMTMuOSwxMS42OF0sWy0xNC4xMiwxMS42OF0sWy0xNC4zOCwxMS41MV0sWy0xNC42OSwxMS41M10sWy0xNS4xMywxMS4wNF0sWy0xNS42NiwxMS40Nl0sWy0xNi4wOSwxMS41Ml0sWy0xNi4zMSwxMS44MV0sWy0xNi4zMSwxMS45Nl0sWy0xNi42MSwxMi4xN10sWy0xNi42OCwxMi4zOF1dXV19LHtuOmBMaWJlcmlhYCxhMjpgTFJgLGEzOmBMQlJgLHA6YExSYCxsOlstOS40Niw2LjQ1XSxnOltbW1stOC40NCw3LjY5XSxbLTguNDksNy40XSxbLTguMzksNi45MV0sWy04LjYsNi40N10sWy04LjMxLDYuMTldLFstNy45OSw2LjEzXSxbLTcuNTcsNS43MV0sWy03LjU0LDUuMzFdLFstNy42NCw1LjE5XSxbLTcuNzEsNC4zNl0sWy03Ljk3LDQuMzZdLFstOSw0LjgzXSxbLTkuOTEsNS41OV0sWy0xMC43Nyw2LjE0XSxbLTExLjQ0LDYuNzldLFstMTEuMiw3LjExXSxbLTExLjE1LDcuNF0sWy0xMC43LDcuOTRdLFstMTAuMjMsOC40MV0sWy0xMC4wMiw4LjQzXSxbLTkuNzYsOC41NF0sWy05LjM0LDcuOTNdLFstOS40LDcuNTNdLFstOS4yMSw3LjMxXSxbLTguOTMsNy4zMV0sWy04LjcyLDcuNzFdLFstOC40NCw3LjY5XV1dXX0se246YFNpZXJyYSBMZW9uZWAsYTI6YFNMYCxhMzpgU0xFYCxwOmBTTGAsbDpbLTExLjc2LDguNjJdLGc6W1tbWy0xMy4yNSw4LjldLFstMTIuNzEsOS4zNF0sWy0xMi42LDkuNjJdLFstMTIuNDMsOS44NF0sWy0xMi4xNSw5Ljg2XSxbLTExLjkyLDEwLjA1XSxbLTExLjEyLDEwLjA1XSxbLTEwLjg0LDkuNjldLFstMTAuNjIsOS4yN10sWy0xMC42NSw4Ljk4XSxbLTEwLjQ5LDguNzJdLFstMTAuNTEsOC4zNV0sWy0xMC4yMyw4LjQxXSxbLTEwLjcsNy45NF0sWy0xMS4xNSw3LjRdLFstMTEuMiw3LjExXSxbLTExLjQ0LDYuNzldLFstMTEuNzEsNi44Nl0sWy0xMi40Myw3LjI2XSxbLTEyLjk1LDcuOF0sWy0xMy4xMiw4LjE2XSxbLTEzLjI1LDguOV1dXV19LHtuOmBCdXJraW5hIEZhc29gLGEyOmBCRmAsYTM6YEJGQWAscDpgQkZgLGw6Wy0xLjM2LDEyLjY3XSxnOltbW1stNS40LDEwLjM3XSxbLTUuNDcsMTAuOTVdLFstNS4yLDExLjM4XSxbLTUuMjIsMTEuNzFdLFstNC40MywxMi41NF0sWy00LjI4LDEzLjIzXSxbLTQuMDEsMTMuNDddLFstMy41MiwxMy4zNF0sWy0zLjEsMTMuNTRdLFstMi45NywxMy44XSxbLTIuMTksMTQuMjVdLFstMiwxNC41Nl0sWy0xLjA3LDE0Ljk3XSxbLS41MiwxNS4xMl0sWy0uMjcsMTQuOTJdLFsuMzcsMTQuOTNdLFsuMywxNC40NF0sWy40MywxMy45OV0sWy45OSwxMy4zNF0sWzEuMDIsMTIuODVdLFsyLjE4LDEyLjYzXSxbMi4xNSwxMS45NF0sWzEuOTQsMTEuNjRdLFsxLjQ1LDExLjU1XSxbMS4yNCwxMS4xMV0sWy45LDExXSxbLjAyLDExLjAyXSxbLS40NCwxMS4xXSxbLS43NiwxMC45NF0sWy0xLjIsMTEuMDFdLFstMi45NCwxMC45Nl0sWy0yLjk2LDEwLjRdLFstMi44Myw5LjY0XSxbLTMuNTEsOS45XSxbLTMuOTgsOS44Nl0sWy00LjMzLDkuNjFdLFstNC43OCw5LjgyXSxbLTQuOTUsMTAuMTVdLFstNS40LDEwLjM3XV1dXX0se246YENlbnRyYWwgQWZyaWNhbiBSZXB1YmxpY2AsYTI6YENGYCxhMzpgQ0FGYCxwOmBDRmAsbDpbMjAuOTEsNi45OV0sZzpbW1tbMjcuMzcsNS4yM10sWzI3LjA0LDUuMTNdLFsyNi40LDUuMTVdLFsyNS42NSw1LjI2XSxbMjUuMjgsNS4xN10sWzI1LjEzLDQuOTNdLFsyNC44MSw0LjldLFsyNC40MSw1LjExXSxbMjMuMyw0LjYxXSxbMjIuODQsNC43MV0sWzIyLjcsNC42M10sWzIyLjQxLDQuMDNdLFsyMS42Niw0LjIyXSxbMjAuOTMsNC4zMl0sWzIwLjI5LDQuNjldLFsxOS40Nyw1LjAzXSxbMTguOTMsNC43MV0sWzE4LjU0LDQuMl0sWzE4LjQ1LDMuNV0sWzE3LjgxLDMuNTZdLFsxNy4xMywzLjczXSxbMTYuNTQsMy4yXSxbMTYuMDEsMi4yN10sWzE1LjkxLDIuNTZdLFsxNS44NiwzLjAxXSxbMTUuNDEsMy4zNF0sWzE1LjA0LDMuODVdLFsxNC45NSw0LjIxXSxbMTQuNDgsNC43M10sWzE0LjU2LDUuMDNdLFsxNC40Niw1LjQ1XSxbMTQuNTQsNi4yM10sWzE0Ljc4LDYuNDFdLFsxNS4yOCw3LjQyXSxbMTYuMTEsNy41XSxbMTYuMjksNy43NV0sWzE2LjQ2LDcuNzNdLFsxNi43MSw3LjUxXSxbMTcuOTYsNy44OV0sWzE4LjM5LDguMjhdLFsxOC45MSw4LjYzXSxbMTguODEsOC45OF0sWzE5LjA5LDkuMDddLFsyMC4wNiw5LjAxXSxbMjEsOS40OF0sWzIxLjcyLDEwLjU3XSxbMjIuMjMsMTAuOTddLFsyMi44NiwxMS4xNF0sWzIyLjk4LDEwLjcxXSxbMjMuNTUsMTAuMDldLFsyMy41Niw5LjY4XSxbMjMuMzksOS4yN10sWzIzLjQ2LDguOTVdLFsyMy44MSw4LjY3XSxbMjQuNTcsOC4yM10sWzI1LjExLDcuODNdLFsyNS4xMiw3LjVdLFsyNS44LDYuOThdLFsyNi4yMSw2LjU1XSxbMjYuNDcsNS45NV0sWzI3LjIxLDUuNTVdLFsyNy4zNyw1LjIzXV1dXX0se246YFJlcHVibGljIG9mIHRoZSBDb25nb2AsYTI6YENHYCxhMzpgQ09HYCxwOmBDR2AsbDpbMTUuOSwuMTRdLGc6W1tbWzE4LjQ1LDMuNV0sWzE4LjM5LDIuOV0sWzE4LjA5LDIuMzddLFsxNy45LDEuNzRdLFsxNy43NywuODZdLFsxNy44MywuMjldLFsxNy42NiwtLjA2XSxbMTcuNjQsLS40Ml0sWzE3LjUyLC0uNzRdLFsxNi44NywtMS4yM10sWzE2LjQxLC0xLjc0XSxbMTUuOTcsLTIuNzFdLFsxNi4wMSwtMy41NF0sWzE1Ljc1LC0zLjg2XSxbMTUuMTcsLTQuMzRdLFsxNC41OCwtNC45N10sWzE0LjIxLC00Ljc5XSxbMTQuMTQsLTQuNTFdLFsxMy42LC00LjVdLFsxMy4yNiwtNC44OF0sWzEzLC00Ljc4XSxbMTIuNjIsLTQuNDRdLFsxMi4zMiwtNC42MV0sWzExLjkxLC01LjA0XSxbMTEuMDksLTMuOThdLFsxMS44NiwtMy40M10sWzExLjQ4LC0yLjc3XSxbMTEuODIsLTIuNTFdLFsxMi41LC0yLjM5XSxbMTIuNTgsLTEuOTVdLFsxMy4xMSwtMi40M10sWzEzLjk5LC0yLjQ3XSxbMTQuMywtMl0sWzE0LjQzLC0xLjMzXSxbMTQuMzIsLS41NV0sWzEzLjg0LC4wNF0sWzE0LjI4LDEuMl0sWzE0LjAzLDEuNF0sWzEzLjI4LDEuMzFdLFsxMywxLjgzXSxbMTMuMDgsMi4yN10sWzE0LjM0LDIuMjNdLFsxNS4xNSwxLjk2XSxbMTUuOTQsMS43M10sWzE2LjAxLDIuMjddLFsxNi41NCwzLjJdLFsxNy4xMywzLjczXSxbMTcuODEsMy41Nl0sWzE4LjQ1LDMuNV1dXV19LHtuOmBHYWJvbmAsYTI6YEdBYCxhMzpgR0FCYCxwOmBHQWAsbDpbMTEuODQsLS40NF0sZzpbW1tbMTEuMjgsMi4yNl0sWzExLjc1LDIuMzNdLFsxMi4zNiwyLjE5XSxbMTIuOTUsMi4zMl0sWzEzLjA4LDIuMjddLFsxMywxLjgzXSxbMTMuMjgsMS4zMV0sWzE0LjAzLDEuNF0sWzE0LjI4LDEuMl0sWzEzLjg0LC4wNF0sWzE0LjMyLC0uNTVdLFsxNC40MywtMS4zM10sWzE0LjMsLTJdLFsxMy45OSwtMi40N10sWzEzLjExLC0yLjQzXSxbMTIuNTgsLTEuOTVdLFsxMi41LC0yLjM5XSxbMTEuODIsLTIuNTFdLFsxMS40OCwtMi43N10sWzExLjg2LC0zLjQzXSxbMTEuMDksLTMuOThdLFsxMC4wNywtMi45N10sWzkuNDEsLTIuMTRdLFs4LjgsLTEuMTFdLFs4LjgzLC0uNzhdLFs5LjA1LC0uNDZdLFs5LjI5LC4yN10sWzkuNDksMS4wMV0sWzkuODMsMS4wN10sWzExLjI5LDEuMDZdLFsxMS4yOCwyLjI2XV1dXX0se246YEVxdWF0b3JpYWwgR3VpbmVhYCxhMjpgR1FgLGEzOmBHTlFgLHA6YEdRYCxsOls4Ljk5LDIuMzNdLGc6W1tbWzkuNjUsMi4yOF0sWzExLjI4LDIuMjZdLFsxMS4yOSwxLjA2XSxbOS44MywxLjA3XSxbOS40OSwxLjAxXSxbOS4zMSwxLjE2XSxbOS42NSwyLjI4XV1dXX0se246YFphbWJpYWAsYTI6YFpNYCxhMzpgWk1CYCxwOmBaTWAsbDpbMjYuNCwtMTQuNjZdLGc6W1tbWzMwLjc0LC04LjM0XSxbMzEuMTYsLTguNTldLFszMS41NiwtOC43Nl0sWzMyLjE5LC04LjkzXSxbMzIuNzYsLTkuMjNdLFszMy4yMywtOS42OF0sWzMzLjQ5LC0xMC41M10sWzMzLjMyLC0xMC44XSxbMzMuMTEsLTExLjYxXSxbMzMuMzEsLTEyLjQ0XSxbMzIuOTksLTEyLjc4XSxbMzIuNjksLTEzLjcxXSxbMzMuMjEsLTEzLjk3XSxbMzAuMTgsLTE0LjhdLFszMC4yNywtMTUuNTFdLFsyOS41MiwtMTUuNjRdLFsyOC45NSwtMTYuMDRdLFsyOC44MywtMTYuMzldLFsyOC40NywtMTYuNDddLFsyNy42LC0xNy4yOV0sWzI3LjA0LC0xNy45NF0sWzI2LjcxLC0xNy45Nl0sWzI2LjM4LC0xNy44NV0sWzI1LjI2LC0xNy43NF0sWzI1LjA4LC0xNy42Nl0sWzI1LjA4LC0xNy41OF0sWzI0LjY4LC0xNy4zNV0sWzI0LjAzLC0xNy4zXSxbMjMuMjIsLTE3LjUyXSxbMjIuNTYsLTE2LjldLFsyMS44OSwtMTYuMDhdLFsyMS45MywtMTIuOV0sWzI0LjAyLC0xMi45MV0sWzIzLjkzLC0xMi41N10sWzI0LjA4LC0xMi4xOV0sWzIzLjksLTExLjcyXSxbMjQuMDIsLTExLjI0XSxbMjMuOTEsLTEwLjkzXSxbMjQuMjYsLTEwLjk1XSxbMjQuMzEsLTExLjI2XSxbMjQuNzgsLTExLjI0XSxbMjUuNDIsLTExLjMzXSxbMjUuNzUsLTExLjc4XSxbMjYuNTUsLTExLjkyXSxbMjcuMTYsLTExLjYxXSxbMjcuMzksLTEyLjEzXSxbMjguMTYsLTEyLjI3XSxbMjguNTIsLTEyLjddLFsyOC45MywtMTMuMjVdLFsyOS43LC0xMy4yNl0sWzI5LjYyLC0xMi4xOF0sWzI5LjM0LC0xMi4zNl0sWzI4LjY0LC0xMS45N10sWzI4LjM3LC0xMS43OV0sWzI4LjUsLTEwLjc5XSxbMjguNjcsLTkuNjFdLFsyOC40NSwtOS4xNl0sWzI4LjczLC04LjUzXSxbMjksLTguNDFdLFszMC4zNSwtOC4yNF0sWzMwLjc0LC04LjM0XV1dXX0se246YE1hbGF3aWAsYTI6YE1XYCxhMzpgTVdJYCxwOmBNV2AsbDpbMzMuNjEsLTEzLjM5XSxnOltbW1szMi43NiwtOS4yM10sWzMzLjc0LC05LjQyXSxbMzMuOTQsLTkuNjldLFszNC4yOCwtMTAuMTZdLFszNC41NiwtMTEuNTJdLFszNC4yOCwtMTIuMjhdLFszNC41NiwtMTMuNThdLFszNC45MSwtMTMuNTddLFszNS4yNywtMTMuODldLFszNS42OSwtMTQuNjFdLFszNS43NywtMTUuOV0sWzM1LjM0LC0xNi4xMV0sWzM1LjAzLC0xNi44XSxbMzQuMzgsLTE2LjE4XSxbMzQuMzEsLTE1LjQ4XSxbMzQuNTIsLTE1LjAxXSxbMzQuNDYsLTE0LjYxXSxbMzQuMDYsLTE0LjM2XSxbMzMuNzksLTE0LjQ1XSxbMzMuMjEsLTEzLjk3XSxbMzIuNjksLTEzLjcxXSxbMzIuOTksLTEyLjc4XSxbMzMuMzEsLTEyLjQ0XSxbMzMuMTEsLTExLjYxXSxbMzMuMzIsLTEwLjhdLFszMy40OSwtMTAuNTNdLFszMy4yMywtOS42OF0sWzMyLjc2LC05LjIzXV1dXX0se246YE1vemFtYmlxdWVgLGEyOmBNWmAsYTM6YE1PWmAscDpgTVpgLGw6WzM3Ljg0LC0xMy45NF0sZzpbW1tbMzQuNTYsLTExLjUyXSxbMzUuMzEsLTExLjQ0XSxbMzYuNTEsLTExLjcyXSxbMzYuNzgsLTExLjU5XSxbMzcuNDcsLTExLjU3XSxbMzcuODMsLTExLjI3XSxbMzguNDMsLTExLjI5XSxbMzkuNTIsLTEwLjldLFs0MC4zMiwtMTAuMzJdLFs0MC40OCwtMTAuNzddLFs0MC40NCwtMTEuNzZdLFs0MC41NiwtMTIuNjRdLFs0MC42LC0xNC4yXSxbNDAuNzgsLTE0LjY5XSxbNDAuNDgsLTE1LjQxXSxbNDAuMDksLTE2LjFdLFszOS40NSwtMTYuNzJdLFszOC41NCwtMTcuMV0sWzM3LjQxLC0xNy41OV0sWzM2LjI4LC0xOC42Nl0sWzM1LjksLTE4Ljg0XSxbMzUuMiwtMTkuNTVdLFszNC43OSwtMTkuNzhdLFszNC43LC0yMC41XSxbMzUuMTgsLTIxLjI1XSxbMzUuMzcsLTIxLjg0XSxbMzUuMzksLTIyLjE0XSxbMzUuNTYsLTIyLjA5XSxbMzUuNTMsLTIzLjA3XSxbMzUuMzcsLTIzLjU0XSxbMzUuNjEsLTIzLjcxXSxbMzUuNDYsLTI0LjEyXSxbMzUuMDQsLTI0LjQ4XSxbMzQuMjIsLTI0LjgyXSxbMzMuMDEsLTI1LjM2XSxbMzIuNTcsLTI1LjczXSxbMzIuNjYsLTI2LjE1XSxbMzIuOTIsLTI2LjIyXSxbMzIuODMsLTI2Ljc0XSxbMzIuMDcsLTI2LjczXSxbMzEuOTksLTI2LjI5XSxbMzEuODQsLTI1Ljg0XSxbMzEuNzUsLTI1LjQ4XSxbMzEuOTMsLTI0LjM3XSxbMzEuNjcsLTIzLjY2XSxbMzEuMTksLTIyLjI1XSxbMzIuMjQsLTIxLjEyXSxbMzIuNTEsLTIwLjRdLFszMi42NiwtMjAuM10sWzMyLjc3LC0xOS43Ml0sWzMyLjYxLC0xOS40Ml0sWzMyLjY1LC0xOC42N10sWzMyLjg1LC0xNy45OF0sWzMyLjg1LC0xNi43MV0sWzMyLjMzLC0xNi4zOV0sWzMxLjg1LC0xNi4zMl0sWzMxLjY0LC0xNi4wN10sWzMxLjE3LC0xNS44Nl0sWzMwLjM0LC0xNS44OF0sWzMwLjI3LC0xNS41MV0sWzMwLjE4LC0xNC44XSxbMzMuMjEsLTEzLjk3XSxbMzMuNzksLTE0LjQ1XSxbMzQuMDYsLTE0LjM2XSxbMzQuNDYsLTE0LjYxXSxbMzQuNTIsLTE1LjAxXSxbMzQuMzEsLTE1LjQ4XSxbMzQuMzgsLTE2LjE4XSxbMzUuMDMsLTE2LjhdLFszNS4zNCwtMTYuMTFdLFszNS43NywtMTUuOV0sWzM1LjY5LC0xNC42MV0sWzM1LjI3LC0xMy44OV0sWzM0LjkxLC0xMy41N10sWzM0LjU2LC0xMy41OF0sWzM0LjI4LC0xMi4yOF0sWzM0LjU2LC0xMS41Ml1dXV19LHtuOmBLaW5nZG9tIG9mIGVTd2F0aW5pYCxhMjpgU1pgLGEzOmBTV1pgLHA6YEVTYCxsOlszMS40NywtMjYuNTNdLGc6W1tbWzMyLjA3LC0yNi43M10sWzMxLjg3LC0yNy4xOF0sWzMxLjI4LC0yNy4yOV0sWzMwLjY5LC0yNi43NF0sWzMwLjY4LC0yNi40XSxbMzAuOTUsLTI2LjAyXSxbMzEuMDQsLTI1LjczXSxbMzEuMzMsLTI1LjY2XSxbMzEuODQsLTI1Ljg0XSxbMzEuOTksLTI2LjI5XSxbMzIuMDcsLTI2LjczXV1dXX0se246YEFuZ29sYWAsYTI6YEFPYCxhMzpgQUdPYCxwOmBBT2AsbDpbMTcuOTgsLTEyLjE4XSxnOltbW1sxMywtNC43OF0sWzEyLjYzLC00Ljk5XSxbMTIuNDcsLTUuMjVdLFsxMi40NCwtNS42OF0sWzEyLjE4LC01Ljc5XSxbMTEuOTEsLTUuMDRdLFsxMi4zMiwtNC42MV0sWzEyLjYyLC00LjQ0XSxbMTMsLTQuNzhdXV0sW1tbMTIuMzIsLTYuMV0sWzEyLjc0LC01Ljk3XSxbMTMuMDIsLTUuOThdLFsxMy4zOCwtNS44Nl0sWzE2LjMzLC01Ljg4XSxbMTYuNTcsLTYuNjJdLFsxNi44NiwtNy4yMl0sWzE3LjA5LC03LjU1XSxbMTcuNDcsLTguMDddLFsxOC4xMywtNy45OV0sWzE4LjQ2LC03Ljg1XSxbMTkuMDIsLTcuOTldLFsxOS4xNywtNy43NF0sWzE5LjQyLC03LjE2XSxbMjAuMDQsLTcuMTJdLFsyMC4wOSwtNi45NF0sWzIwLjYsLTYuOTRdLFsyMC41MSwtNy4zXSxbMjEuNzMsLTcuMjldLFsyMS43NSwtNy45Ml0sWzIxLjk1LC04LjMxXSxbMjEuOCwtOC45MV0sWzIxLjg4LC05LjUyXSxbMjIuMjEsLTkuODldLFsyMi4xNiwtMTEuMDhdLFsyMi40LC0xMC45OV0sWzIyLjg0LC0xMS4wMl0sWzIzLjQ2LC0xMC44N10sWzIzLjkxLC0xMC45M10sWzI0LjAyLC0xMS4yNF0sWzIzLjksLTExLjcyXSxbMjQuMDgsLTEyLjE5XSxbMjMuOTMsLTEyLjU3XSxbMjQuMDIsLTEyLjkxXSxbMjEuOTMsLTEyLjldLFsyMS44OSwtMTYuMDhdLFsyMi41NiwtMTYuOV0sWzIzLjIyLC0xNy41Ml0sWzIxLjM4LC0xNy45M10sWzE4Ljk2LC0xNy43OV0sWzE4LjI2LC0xNy4zMV0sWzE0LjIxLC0xNy4zNV0sWzE0LjA2LC0xNy40Ml0sWzEzLjQ2LC0xNi45N10sWzEyLjgxLC0xNi45NF0sWzEyLjIyLC0xNy4xMV0sWzExLjczLC0xNy4zXSxbMTEuNjQsLTE2LjY3XSxbMTEuNzgsLTE1Ljc5XSxbMTIuMTIsLTE0Ljg4XSxbMTIuMTgsLTE0LjQ1XSxbMTIuNSwtMTMuNTVdLFsxMi43NCwtMTMuMTRdLFsxMy4zMSwtMTIuNDhdLFsxMy42MywtMTIuMDRdLFsxMy43NCwtMTEuM10sWzEzLjY5LC0xMC43M10sWzEzLjM5LC0xMC4zN10sWzEzLjEyLC05Ljc3XSxbMTIuODgsLTkuMTddLFsxMi45MywtOC45Nl0sWzEzLjI0LC04LjU2XSxbMTIuOTMsLTcuNl0sWzEyLjczLC02LjkzXSxbMTIuMjMsLTYuMjldLFsxMi4zMiwtNi4xXV1dXX0se246YEJ1cnVuZGlgLGEyOmBCSWAsYTM6YEJESWAscDpgQklgLGw6WzI5LjkyLC0zLjMzXSxnOltbW1szMC40NywtMi40MV0sWzMwLjUzLC0yLjgxXSxbMzAuNzQsLTMuMDNdLFszMC43NSwtMy4zNl0sWzMwLjUxLC0zLjU3XSxbMzAuMTIsLTQuMDldLFsyOS43NSwtNC40NV0sWzI5LjM0LC00LjVdLFsyOS4yOCwtMy4yOV0sWzI5LjAyLC0yLjg0XSxbMjkuNjMsLTIuOTJdLFsyOS45NCwtMi4zNV0sWzMwLjQ3LC0yLjQxXV1dXX0se246YElzcmFlbGAsYTI6YElMYCxhMzpgSVNSYCxwOmBJU2AsbDpbMzQuODUsMzAuOTFdLGc6W1tbWzM1LjcyLDMyLjcxXSxbMzUuNTUsMzIuMzldLFszNS4xOCwzMi41M10sWzM0Ljk3LDMxLjg3XSxbMzUuMjMsMzEuNzVdLFszNC45NywzMS42Ml0sWzM0LjkzLDMxLjM1XSxbMzUuNCwzMS40OV0sWzM1LjQyLDMxLjFdLFszNC45MiwyOS41XSxbMzQuODIsMjkuNzZdLFszNC4yNywzMS4yMl0sWzM0LjU2LDMxLjU1XSxbMzQuNDksMzEuNjFdLFszNC43NSwzMi4wN10sWzM0Ljk2LDMyLjgzXSxbMzUuMSwzMy4wOF0sWzM1LjEzLDMzLjA5XSxbMzUuNDYsMzMuMDldLFszNS41NSwzMy4yNl0sWzM1LjgyLDMzLjI4XSxbMzUuODQsMzIuODddLFszNS43LDMyLjcyXSxbMzUuNzIsMzIuNzFdXV1dfSx7bjpgTGViYW5vbmAsYTI6YExCYCxhMzpgTEJOYCxwOmBMQmAsbDpbMzUuOTksMzQuMTNdLGc6W1tbWzM1LjgyLDMzLjI4XSxbMzUuNTUsMzMuMjZdLFszNS40NiwzMy4wOV0sWzM1LjEzLDMzLjA5XSxbMzUuNDgsMzMuOTFdLFszNS45OCwzNC42MV0sWzM2LDM0LjY0XSxbMzYuNDUsMzQuNTldLFszNi42MSwzNC4yXSxbMzYuMDcsMzMuODJdLFszNS44MiwzMy4yOF1dXV19LHtuOmBNYWRhZ2FzY2FyYCxhMjpgTUdgLGEzOmBNREdgLHA6YE1HYCxsOls0Ni43LC0xOC42M10sZzpbW1tbNDkuNTQsLTEyLjQ3XSxbNDkuODEsLTEyLjldLFs1MC4wNiwtMTMuNTZdLFs1MC4yMiwtMTQuNzZdLFs1MC40OCwtMTUuMjNdLFs1MC4zOCwtMTUuNzFdLFs1MC4yLC0xNl0sWzQ5Ljg2LC0xNS40MV0sWzQ5LjY3LC0xNS43MV0sWzQ5Ljg2LC0xNi40NV0sWzQ5Ljc3LC0xNi44OF0sWzQ5LjUsLTE3LjExXSxbNDkuNDQsLTE3Ljk1XSxbNDkuMDQsLTE5LjEyXSxbNDguNTUsLTIwLjVdLFs0Ny45MywtMjIuMzldLFs0Ny41NSwtMjMuNzhdLFs0Ny4xLC0yNC45NF0sWzQ2LjI4LC0yNS4xOF0sWzQ1LjQxLC0yNS42XSxbNDQuODMsLTI1LjM1XSxbNDQuMDQsLTI0Ljk5XSxbNDMuNzYsLTI0LjQ2XSxbNDMuNywtMjMuNTddLFs0My4zNSwtMjIuNzhdLFs0My4yNSwtMjIuMDZdLFs0My40MywtMjEuMzRdLFs0My44OSwtMjEuMTZdLFs0My45LC0yMC44M10sWzQ0LjM3LC0yMC4wN10sWzQ0LjQ2LC0xOS40NF0sWzQ0LjIzLC0xOC45Nl0sWzQ0LjA0LC0xOC4zM10sWzQzLjk2LC0xNy40MV0sWzQ0LjMxLC0xNi44NV0sWzQ0LjQ1LC0xNi4yMl0sWzQ0Ljk0LC0xNi4xOF0sWzQ1LjUsLTE1Ljk3XSxbNDUuODcsLTE1Ljc5XSxbNDYuMzEsLTE1Ljc4XSxbNDYuODgsLTE1LjIxXSxbNDcuNzEsLTE0LjU5XSxbNDguMDEsLTE0LjA5XSxbNDcuODcsLTEzLjY2XSxbNDguMjksLTEzLjc4XSxbNDguODUsLTEzLjA5XSxbNDguODYsLTEyLjQ5XSxbNDkuMTksLTEyLjA0XSxbNDkuNTQsLTEyLjQ3XV1dXX0se246YFBhbGVzdGluZWAsYTI6YFBTYCxhMzpgUFNFYCxwOmBQQUxgLGw6WzM1LjI5LDMyLjA1XSxnOltbW1szNS40LDMxLjQ5XSxbMzQuOTMsMzEuMzVdLFszNC45NywzMS42Ml0sWzM1LjIzLDMxLjc1XSxbMzQuOTcsMzEuODddLFszNS4xOCwzMi41M10sWzM1LjU1LDMyLjM5XSxbMzUuNTUsMzEuNzhdLFszNS40LDMxLjQ5XV1dXX0se246YFRoZSBHYW1iaWFgLGEyOmBHTWAsYTM6YEdNQmAscDpgR01gLGw6Wy0xNSwxMy42NF0sZzpbW1tbLTE2LjcxLDEzLjU5XSxbLTE1LjYyLDEzLjYyXSxbLTE1LjQsMTMuODZdLFstMTUuMDgsMTMuODhdLFstMTQuNjksMTMuNjNdLFstMTQuMzgsMTMuNjNdLFstMTQuMDUsMTMuNzldLFstMTMuODQsMTMuNTFdLFstMTQuMjgsMTMuMjhdLFstMTQuNzEsMTMuM10sWy0xNS4xNCwxMy41MV0sWy0xNS41MSwxMy4yOF0sWy0xNS42OSwxMy4yN10sWy0xNS45MywxMy4xM10sWy0xNi44NCwxMy4xNV0sWy0xNi43MSwxMy41OV1dXV19LHtuOmBUdW5pc2lhYCxhMjpgVE5gLGEzOmBUVU5gLHA6YFROYCxsOls5LjAxLDMzLjY5XSxnOltbW1s5LjQ4LDMwLjMxXSxbOS4wNiwzMi4xXSxbOC40NCwzMi41MV0sWzguNDMsMzIuNzVdLFs3LjYxLDMzLjM0XSxbNy41MiwzNC4xXSxbOC4xNCwzNC42Nl0sWzguMzgsMzUuNDhdLFs4LjIyLDM2LjQzXSxbOC40MiwzNi45NV0sWzkuNTEsMzcuMzVdLFsxMC4yMSwzNy4yM10sWzEwLjE4LDM2LjcyXSxbMTEuMDMsMzcuMDldLFsxMS4xLDM2LjldLFsxMC42LDM2LjQxXSxbMTAuNTksMzUuOTVdLFsxMC45NCwzNS43XSxbMTAuODEsMzQuODNdLFsxMC4xNSwzNC4zM10sWzEwLjM0LDMzLjc5XSxbMTAuODYsMzMuNzddLFsxMS4xMSwzMy4yOV0sWzExLjQ5LDMzLjE0XSxbMTEuNDMsMzIuMzddLFsxMC45NCwzMi4wOF0sWzEwLjY0LDMxLjc2XSxbOS45NSwzMS4zOF0sWzEwLjA2LDMwLjk2XSxbOS45NywzMC41NF0sWzkuNDgsMzAuMzFdXV1dfSx7bjpgQWxnZXJpYWAsYTI6YERaYCxhMzpgRFpBYCxwOmBEWmAsbDpbMi44MSwyNy40XSxnOltbW1stOC42OCwyNy40XSxbLTguNjcsMjcuNTldLFstOC42NywyNy42Nl0sWy04LjY3LDI4Ljg0XSxbLTcuMDYsMjkuNThdLFstNi4wNiwyOS43M10sWy01LjI0LDMwXSxbLTQuODYsMzAuNV0sWy0zLjY5LDMwLjldLFstMy42NSwzMS42NF0sWy0zLjA3LDMxLjcyXSxbLTIuNjIsMzIuMDldLFstMS4zMSwzMi4yNl0sWy0xLjEyLDMyLjY1XSxbLTEuMzksMzIuODZdLFstMS43MywzMy45Ml0sWy0xLjc5LDM0LjUzXSxbLTIuMTcsMzUuMTddLFstMS4yMSwzNS43MV0sWy0uMTMsMzUuODldLFsuNSwzNi4zXSxbMS40NywzNi42MV0sWzMuMTYsMzYuNzhdLFs0LjgyLDM2Ljg3XSxbNS4zMiwzNi43Ml0sWzYuMjYsMzcuMTFdLFs3LjMzLDM3LjEyXSxbNy43NCwzNi44OV0sWzguNDIsMzYuOTVdLFs4LjIyLDM2LjQzXSxbOC4zOCwzNS40OF0sWzguMTQsMzQuNjZdLFs3LjUyLDM0LjFdLFs3LjYxLDMzLjM0XSxbOC40MywzMi43NV0sWzguNDQsMzIuNTFdLFs5LjA2LDMyLjFdLFs5LjQ4LDMwLjMxXSxbOS44MSwyOS40Ml0sWzkuODYsMjguOTZdLFs5LjY4LDI4LjE0XSxbOS43NiwyNy42OV0sWzkuNjMsMjcuMTRdLFs5LjcyLDI2LjUxXSxbOS4zMiwyNi4wOV0sWzkuOTEsMjUuMzddLFs5Ljk1LDI0Ljk0XSxbMTAuMywyNC4zOF0sWzEwLjc3LDI0LjU2XSxbMTEuNTYsMjQuMV0sWzEyLDIzLjQ3XSxbOC41NywyMS41N10sWzUuNjgsMTkuNl0sWzQuMjcsMTkuMTZdLFszLjE2LDE5LjA2XSxbMy4xNSwxOS42OV0sWzIuNjgsMTkuODZdLFsyLjA2LDIwLjE0XSxbMS44MiwyMC42MV0sWy0xLjU1LDIyLjc5XSxbLTQuOTIsMjQuOTddLFstOC42OCwyNy40XV1dXX0se246YEpvcmRhbmAsYTI6YEpPYCxhMzpgSk9SYCxwOmBKYCxsOlszNi4zOCwzMC44MV0sZzpbW1tbMzUuNTUsMzIuMzldLFszNS43MiwzMi43MV0sWzM2LjgzLDMyLjMxXSxbMzguNzksMzMuMzhdLFszOS4yLDMyLjE2XSxbMzksMzIuMDFdLFszNywzMS41MV0sWzM4LDMwLjUxXSxbMzcuNjcsMzAuMzRdLFszNy41LDMwXSxbMzYuNzQsMjkuODddLFszNi41LDI5LjUxXSxbMzYuMDcsMjkuMl0sWzM0Ljk2LDI5LjM2XSxbMzQuOTIsMjkuNV0sWzM1LjQyLDMxLjFdLFszNS40LDMxLjQ5XSxbMzUuNTUsMzEuNzhdLFszNS41NSwzMi4zOV1dXV19LHtuOmBVbml0ZWQgQXJhYiBFbWlyYXRlc2AsYTI6YEFFYCxhMzpgQVJFYCxwOmBBRWAsbDpbNTQuNTUsMjMuNDddLGc6W1tbWzUxLjU4LDI0LjI1XSxbNTEuNzYsMjQuMjldLFs1MS43OSwyNC4wMl0sWzUyLjU4LDI0LjE4XSxbNTMuNCwyNC4xNV0sWzU0LjAxLDI0LjEyXSxbNTQuNjksMjQuOF0sWzU1LjQ0LDI1LjQ0XSxbNTYuMDcsMjYuMDZdLFs1Ni4yNiwyNS43MV0sWzU2LjQsMjQuOTJdLFs1NS44OSwyNC45Ml0sWzU1LjgsMjQuMjddLFs1NS45OCwyNC4xM10sWzU1LjUzLDIzLjkzXSxbNTUuNTMsMjMuNTJdLFs1NS4yMywyMy4xMV0sWzU1LjIxLDIyLjcxXSxbNTUuMDEsMjIuNV0sWzUyLDIzXSxbNTEuNjIsMjQuMDFdLFs1MS41OCwyNC4yNV1dXV19LHtuOmBRYXRhcmAsYTI6YFFBYCxhMzpgUUFUYCxwOmBRQWAsbDpbNTEuMTQsMjUuMjRdLGc6W1tbWzUwLjgxLDI0Ljc1XSxbNTAuNzQsMjUuNDhdLFs1MS4wMSwyNi4wMV0sWzUxLjI5LDI2LjExXSxbNTEuNTksMjUuOF0sWzUxLjYxLDI1LjIyXSxbNTEuMzksMjQuNjNdLFs1MS4xMSwyNC41Nl0sWzUwLjgxLDI0Ljc1XV1dXX0se246YEt1d2FpdGAsYTI6YEtXYCxhMzpgS1dUYCxwOmBLV2AsbDpbNDcuMzEsMjkuNDFdLGc6W1tbWzQ3Ljk3LDI5Ljk4XSxbNDguMTgsMjkuNTNdLFs0OC4wOSwyOS4zMV0sWzQ4LjQyLDI4LjU1XSxbNDcuNzEsMjguNTNdLFs0Ny40NiwyOV0sWzQ2LjU3LDI5LjFdLFs0Ny4zLDMwLjA2XSxbNDcuOTcsMjkuOThdXV1dfSx7bjpgSXJhcWAsYTI6YElRYCxhMzpgSVJRYCxwOmBJUlFgLGw6WzQzLjI2LDMzLjA5XSxnOltbW1szOS4yLDMyLjE2XSxbMzguNzksMzMuMzhdLFs0MS4wMSwzNC40Ml0sWzQxLjM4LDM1LjYzXSxbNDEuMjksMzYuMzZdLFs0MS44NCwzNi42MV0sWzQyLjM1LDM3LjIzXSxbNDIuNzgsMzcuMzldLFs0My45NCwzNy4yNl0sWzQ0LjI5LDM3XSxbNDQuNzcsMzcuMTddLFs0NS40MiwzNS45OF0sWzQ2LjA4LDM1LjY4XSxbNDYuMTUsMzUuMDldLFs0NS42NSwzNC43NV0sWzQ1LjQyLDMzLjk3XSxbNDYuMTEsMzMuMDJdLFs0Ny4zMywzMi40N10sWzQ3Ljg1LDMxLjcxXSxbNDcuNjksMzAuOThdLFs0OCwzMC45OV0sWzQ4LjAxLDMwLjQ1XSxbNDguNTcsMjkuOTNdLFs0Ny45NywyOS45OF0sWzQ3LjMsMzAuMDZdLFs0Ni41NywyOS4xXSxbNDQuNzEsMjkuMThdLFs0MS44OSwzMS4xOV0sWzQwLjQsMzEuODldLFszOS4yLDMyLjE2XV1dXX0se246YE9tYW5gLGEyOmBPTWAsYTM6YE9NTmAscDpgT01gLGw6WzU3LjM0LDIyLjEyXSxnOltbW1s1NS4yMSwyMi43MV0sWzU1LjIzLDIzLjExXSxbNTUuNTMsMjMuNTJdLFs1NS41MywyMy45M10sWzU1Ljk4LDI0LjEzXSxbNTUuOCwyNC4yN10sWzU1Ljg5LDI0LjkyXSxbNTYuNCwyNC45Ml0sWzU2Ljg1LDI0LjI0XSxbNTcuNCwyMy44OF0sWzU4LjE0LDIzLjc1XSxbNTguNzMsMjMuNTddLFs1OS4xOCwyMi45OV0sWzU5LjQ1LDIyLjY2XSxbNTkuODEsMjIuNTNdLFs1OS44MSwyMi4zMV0sWzU5LjQ0LDIxLjcxXSxbNTkuMjgsMjEuNDNdLFs1OC44NiwyMS4xMV0sWzU4LjQ5LDIwLjQzXSxbNTguMDMsMjAuNDhdLFs1Ny44MywyMC4yNF0sWzU3LjY3LDE5Ljc0XSxbNTcuNzksMTkuMDddLFs1Ny42OSwxOC45NF0sWzU3LjIzLDE4Ljk1XSxbNTYuNjEsMTguNTddLFs1Ni41MSwxOC4wOV0sWzU2LjI4LDE3Ljg4XSxbNTUuNjYsMTcuODhdLFs1NS4yNywxNy42M10sWzU1LjI3LDE3LjIzXSxbNTQuNzksMTYuOTVdLFs1NC4yNCwxNy4wNF0sWzUzLjU3LDE2LjcxXSxbNTMuMTEsMTYuNjVdLFs1Mi43OCwxNy4zNV0sWzUyLDE5XSxbNTUsMjBdLFs1NS42NywyMl0sWzU1LjIxLDIyLjcxXV1dLFtbWzU2LjI2LDI1LjcxXSxbNTYuMDcsMjYuMDZdLFs1Ni4zNiwyNi40XSxbNTYuNDksMjYuMzFdLFs1Ni4zOSwyNS45XSxbNTYuMjYsMjUuNzFdXV1dfSx7bjpgVmFudWF0dWAsYTI6YFZVYCxhMzpgVlVUYCxwOmBWVWAsbDpbMTY2LjkxLC0xNS4zN10sZzpbW1tbMTY3LjIyLC0xNS44OV0sWzE2Ny44NCwtMTYuNDddLFsxNjcuNTIsLTE2LjZdLFsxNjcuMTgsLTE2LjE2XSxbMTY3LjIyLC0xNS44OV1dXSxbW1sxNjYuNzksLTE1LjY3XSxbMTY2LjY1LC0xNS4zOV0sWzE2Ni42MywtMTQuNjNdLFsxNjcuMTEsLTE0LjkzXSxbMTY3LjI3LC0xNS43NF0sWzE2NywtMTUuNjFdLFsxNjYuNzksLTE1LjY3XV1dXX0se246YENhbWJvZGlhYCxhMjpgS0hgLGEzOmBLSE1gLHA6YEtIYCxsOlsxMDQuNSwxMi42NV0sZzpbW1tbMTAyLjU4LDEyLjE5XSxbMTAyLjM1LDEzLjM5XSxbMTAyLjk5LDE0LjIzXSxbMTA0LjI4LDE0LjQyXSxbMTA1LjIyLDE0LjI3XSxbMTA2LjA0LDEzLjg4XSxbMTA2LjUsMTQuNTddLFsxMDcuMzgsMTQuMl0sWzEwNy42MSwxMy41NF0sWzEwNy40OSwxMi4zNF0sWzEwNS44MSwxMS41N10sWzEwNi4yNSwxMC45Nl0sWzEwNS4yLDEwLjg5XSxbMTA0LjMzLDEwLjQ5XSxbMTAzLjUsMTAuNjNdLFsxMDMuMDksMTEuMTVdLFsxMDIuNTgsMTIuMTldXV1dfSx7bjpgVGhhaWxhbmRgLGEyOmBUSGAsYTM6YFRIQWAscDpgVEhgLGw6WzEwMS4wNywxNS40Nl0sZzpbW1tbMTA1LjIyLDE0LjI3XSxbMTA0LjI4LDE0LjQyXSxbMTAyLjk5LDE0LjIzXSxbMTAyLjM1LDEzLjM5XSxbMTAyLjU4LDEyLjE5XSxbMTAxLjY5LDEyLjY1XSxbMTAwLjgzLDEyLjYzXSxbMTAwLjk4LDEzLjQxXSxbMTAwLjEsMTMuNDFdLFsxMDAuMDIsMTIuMzFdLFs5OS40OCwxMC44NV0sWzk5LjE1LDkuOTZdLFs5OS4yMiw5LjI0XSxbOTkuODcsOS4yMV0sWzEwMC4yOCw4LjNdLFsxMDAuNDYsNy40M10sWzEwMS4wMiw2Ljg2XSxbMTAxLjYyLDYuNzRdLFsxMDIuMTQsNi4yMl0sWzEwMS44MSw1LjgxXSxbMTAxLjE1LDUuNjldLFsxMDEuMDgsNi4yXSxbMTAwLjI2LDYuNjRdLFsxMDAuMDksNi40Nl0sWzk5LjY5LDYuODVdLFs5OS41Miw3LjM0XSxbOTguOTksNy45MV0sWzk4LjUsOC4zOF0sWzk4LjM0LDcuNzldLFs5OC4xNSw4LjM1XSxbOTguMjYsOC45N10sWzk4LjU1LDkuOTNdLFs5OS4wNCwxMC45Nl0sWzk5LjU5LDExLjg5XSxbOTkuMiwxMi44XSxbOTkuMjEsMTMuMjddLFs5OS4xLDEzLjgzXSxbOTguNDMsMTQuNjJdLFs5OC4xOSwxNS4xMl0sWzk4LjU0LDE1LjMxXSxbOTguOSwxNi4xOF0sWzk4LjQ5LDE2Ljg0XSxbOTcuODYsMTcuNTddLFs5Ny4zOCwxOC40NV0sWzk3LjgsMTguNjNdLFs5OC4yNSwxOS43MV0sWzk4Ljk2LDE5Ljc1XSxbOTkuNTQsMjAuMTldLFsxMDAuMTIsMjAuNDJdLFsxMDAuNTUsMjAuMTFdLFsxMDAuNjEsMTkuNTFdLFsxMDEuMjgsMTkuNDZdLFsxMDEuMDQsMTguNDFdLFsxMDEuMDYsMTcuNTFdLFsxMDIuMTEsMTguMTFdLFsxMDIuNDEsMTcuOTNdLFsxMDMsMTcuOTZdLFsxMDMuMiwxOC4zMV0sWzEwMy45NiwxOC4yNF0sWzEwNC43MiwxNy40M10sWzEwNC43OCwxNi40NF0sWzEwNS41OSwxNS41N10sWzEwNS41NCwxNC43Ml0sWzEwNS4yMiwxNC4yN11dXV19LHtuOmBMYW8gUERSYCxhMjpgTEFgLGEzOmBMQU9gLHA6YExBYCxsOlsxMDIuNTMsMTkuNDNdLGc6W1tbWzEwNy4zOCwxNC4yXSxbMTA2LjUsMTQuNTddLFsxMDYuMDQsMTMuODhdLFsxMDUuMjIsMTQuMjddLFsxMDUuNTQsMTQuNzJdLFsxMDUuNTksMTUuNTddLFsxMDQuNzgsMTYuNDRdLFsxMDQuNzIsMTcuNDNdLFsxMDMuOTYsMTguMjRdLFsxMDMuMiwxOC4zMV0sWzEwMywxNy45Nl0sWzEwMi40MSwxNy45M10sWzEwMi4xMSwxOC4xMV0sWzEwMS4wNiwxNy41MV0sWzEwMS4wNCwxOC40MV0sWzEwMS4yOCwxOS40Nl0sWzEwMC42MSwxOS41MV0sWzEwMC41NSwyMC4xMV0sWzEwMC4xMiwyMC40Ml0sWzEwMC4zMywyMC43OV0sWzEwMS4xOCwyMS40NF0sWzEwMS4yNywyMS4yXSxbMTAxLjgsMjEuMTddLFsxMDEuNjUsMjIuMzJdLFsxMDIuMTcsMjIuNDZdLFsxMDIuNzUsMjEuNjhdLFsxMDMuMiwyMC43N10sWzEwNC40NCwyMC43Nl0sWzEwNC44MiwxOS44OV0sWzEwNC4xOCwxOS42Ml0sWzEwMy45LDE5LjI3XSxbMTA1LjA5LDE4LjY3XSxbMTA1LjkzLDE3LjQ5XSxbMTA2LjU2LDE2LjZdLFsxMDcuMzEsMTUuOTFdLFsxMDcuNTYsMTUuMl0sWzEwNy4zOCwxNC4yXV1dXX0se246YE15YW5tYXJgLGEyOmBNTWAsYTM6YE1NUmAscDpgTU1gLGw6Wzk1LjgsMjEuNTddLGc6W1tbWzEwMC4xMiwyMC40Ml0sWzk5LjU0LDIwLjE5XSxbOTguOTYsMTkuNzVdLFs5OC4yNSwxOS43MV0sWzk3LjgsMTguNjNdLFs5Ny4zOCwxOC40NV0sWzk3Ljg2LDE3LjU3XSxbOTguNDksMTYuODRdLFs5OC45LDE2LjE4XSxbOTguNTQsMTUuMzFdLFs5OC4xOSwxNS4xMl0sWzk4LjQzLDE0LjYyXSxbOTkuMSwxMy44M10sWzk5LjIxLDEzLjI3XSxbOTkuMiwxMi44XSxbOTkuNTksMTEuODldLFs5OS4wNCwxMC45Nl0sWzk4LjU1LDkuOTNdLFs5OC40NiwxMC42OF0sWzk4Ljc2LDExLjQ0XSxbOTguNDMsMTIuMDNdLFs5OC41MSwxMy4xMl0sWzk4LjEsMTMuNjRdLFs5Ny43OCwxNC44NF0sWzk3LjYsMTYuMV0sWzk3LjE2LDE2LjkzXSxbOTYuNTEsMTYuNDNdLFs5NS4zNywxNS43MV0sWzk0LjgxLDE1LjhdLFs5NC4xOSwxNi4wNF0sWzk0LjUzLDE3LjI4XSxbOTQuMzIsMTguMjFdLFs5My41NCwxOS4zN10sWzkzLjY2LDE5LjczXSxbOTMuMDgsMTkuODZdLFs5Mi4zNywyMC42N10sWzkyLjMsMjEuNDhdLFs5Mi42NSwyMS4zMl0sWzkyLjY3LDIyLjA0XSxbOTMuMTcsMjIuMjhdLFs5My4wNiwyMi43XSxbOTMuMjksMjMuMDRdLFs5My4zMywyNC4wOF0sWzk0LjExLDIzLjg1XSxbOTQuNTUsMjQuNjhdLFs5NC42LDI1LjE2XSxbOTUuMTYsMjZdLFs5NS4xMiwyNi41N10sWzk2LjQyLDI3LjI2XSxbOTcuMTMsMjcuMDhdLFs5Ny4wNSwyNy43XSxbOTcuNCwyNy44OF0sWzk3LjMzLDI4LjI2XSxbOTcuOTEsMjguMzRdLFs5OC4yNSwyNy43NV0sWzk4LjY4LDI3LjUxXSxbOTguNzEsMjYuNzRdLFs5OC42NywyNS45Ml0sWzk3LjcyLDI1LjA4XSxbOTcuNiwyMy45XSxbOTguNjYsMjQuMDZdLFs5OC45LDIzLjE0XSxbOTkuNTMsMjIuOTVdLFs5OS4yNCwyMi4xMl0sWzk5Ljk4LDIxLjc0XSxbMTAwLjQyLDIxLjU2XSxbMTAxLjE1LDIxLjg1XSxbMTAxLjE4LDIxLjQ0XSxbMTAwLjMzLDIwLjc5XSxbMTAwLjEyLDIwLjQyXV1dXX0se246YFZpZXRuYW1gLGEyOmBWTmAsYTM6YFZOTWAscDpgVk5gLGw6WzEwNS4zOSwyMS43Ml0sZzpbW1tbMTA0LjMzLDEwLjQ5XSxbMTA1LjIsMTAuODldLFsxMDYuMjUsMTAuOTZdLFsxMDUuODEsMTEuNTddLFsxMDcuNDksMTIuMzRdLFsxMDcuNjEsMTMuNTRdLFsxMDcuMzgsMTQuMl0sWzEwNy41NiwxNS4yXSxbMTA3LjMxLDE1LjkxXSxbMTA2LjU2LDE2LjZdLFsxMDUuOTMsMTcuNDldLFsxMDUuMDksMTguNjddLFsxMDMuOSwxOS4yN10sWzEwNC4xOCwxOS42Ml0sWzEwNC44MiwxOS44OV0sWzEwNC40NCwyMC43Nl0sWzEwMy4yLDIwLjc3XSxbMTAyLjc1LDIxLjY4XSxbMTAyLjE3LDIyLjQ2XSxbMTAyLjcxLDIyLjcxXSxbMTAzLjUsMjIuN10sWzEwNC40OCwyMi44Ml0sWzEwNS4zMywyMy4zNV0sWzEwNS44MSwyMi45OF0sWzEwNi43MywyMi43OV0sWzEwNi41NywyMi4yMl0sWzEwNy4wNCwyMS44MV0sWzEwOC4wNSwyMS41NV0sWzEwNi43MiwyMC43XSxbMTA1Ljg4LDE5Ljc1XSxbMTA1LjY2LDE5LjA2XSxbMTA2LjQzLDE4XSxbMTA3LjM2LDE2LjddLFsxMDguMjcsMTYuMDhdLFsxMDguODgsMTUuMjhdLFsxMDkuMzQsMTMuNDNdLFsxMDkuMiwxMS42N10sWzEwOC4zNywxMS4wMV0sWzEwNy4yMiwxMC4zNl0sWzEwNi40MSw5LjUzXSxbMTA1LjE2LDguNl0sWzEwNC44LDkuMjRdLFsxMDUuMDgsOS45Ml0sWzEwNC4zMywxMC40OV1dXV19LHtuOmBEZW0uIFJlcC4gS29yZWFgLGEyOmBLUGAsYTM6YFBSS2AscDpgS1BgLGw6WzEyNi40NCwzOS44OV0sZzpbW1tbMTMwLjY0LDQyLjRdLFsxMzAuNzgsNDIuMjJdLFsxMzAuNCw0Mi4yOF0sWzEyOS45Nyw0MS45NF0sWzEyOS42Nyw0MS42XSxbMTI5LjcxLDQwLjg4XSxbMTI5LjE5LDQwLjY2XSxbMTI5LjAxLDQwLjQ5XSxbMTI4LjYzLDQwLjE5XSxbMTI3Ljk3LDQwLjAzXSxbMTI3LjUzLDM5Ljc2XSxbMTI3LjUsMzkuMzJdLFsxMjcuMzksMzkuMjFdLFsxMjcuNzgsMzkuMDVdLFsxMjguMzUsMzguNjFdLFsxMjguMjEsMzguMzddLFsxMjcuNzgsMzguM10sWzEyNy4wNywzOC4yNl0sWzEyNi42OCwzNy44XSxbMTI2LjI0LDM3Ljg0XSxbMTI2LjE3LDM3Ljc1XSxbMTI1LjY5LDM3Ljk0XSxbMTI1LjU3LDM3Ljc1XSxbMTI1LjI4LDM3LjY3XSxbMTI1LjI0LDM3Ljg2XSxbMTI0Ljk4LDM3Ljk1XSxbMTI0LjcxLDM4LjExXSxbMTI0Ljk5LDM4LjU1XSxbMTI1LjIyLDM4LjY3XSxbMTI1LjEzLDM4Ljg1XSxbMTI1LjM5LDM5LjM5XSxbMTI1LjMyLDM5LjU1XSxbMTI0Ljc0LDM5LjY2XSxbMTI0LjI3LDM5LjkzXSxbMTI1LjA4LDQwLjU3XSxbMTI2LjE4LDQxLjExXSxbMTI2Ljg3LDQxLjgyXSxbMTI3LjM0LDQxLjVdLFsxMjguMjEsNDEuNDddLFsxMjguMDUsNDEuOTldLFsxMjkuNiw0Mi40Ml0sWzEyOS45OSw0Mi45OV0sWzEzMC42NCw0Mi40XV1dXX0se246YFJlcHVibGljIG9mIEtvcmVhYCxhMjpgS1JgLGEzOmBLT1JgLHA6YEtSYCxsOlsxMjguMTMsMzYuMzhdLGc6W1tbWzEyNi4xNywzNy43NV0sWzEyNi4yNCwzNy44NF0sWzEyNi42OCwzNy44XSxbMTI3LjA3LDM4LjI2XSxbMTI3Ljc4LDM4LjNdLFsxMjguMjEsMzguMzddLFsxMjguMzUsMzguNjFdLFsxMjkuMjEsMzcuNDNdLFsxMjkuNDYsMzYuNzhdLFsxMjkuNDcsMzUuNjNdLFsxMjkuMDksMzUuMDhdLFsxMjguMTksMzQuODldLFsxMjcuMzksMzQuNDhdLFsxMjYuNDksMzQuMzldLFsxMjYuMzcsMzQuOTNdLFsxMjYuNTYsMzUuNjhdLFsxMjYuMTIsMzYuNzNdLFsxMjYuODYsMzYuODldLFsxMjYuMTcsMzcuNzVdXV1dfSx7bjpgTW9uZ29saWFgLGEyOmBNTmAsYTM6YE1OR2AscDpgTU5gLGw6WzEwNC4xNSw0Nl0sZzpbW1tbODcuNzUsNDkuM10sWzg4LjgxLDQ5LjQ3XSxbOTAuNzEsNTAuMzNdLFs5Mi4yMyw1MC44XSxbOTMuMSw1MC41XSxbOTQuMTUsNTAuNDhdLFs5NC44Miw1MC4wMV0sWzk1LjgxLDQ5Ljk4XSxbOTcuMjYsNDkuNzNdLFs5OC4yMyw1MC40Ml0sWzk3LjgzLDUxLjAxXSxbOTguODYsNTIuMDVdLFs5OS45OCw1MS42M10sWzEwMC44OSw1MS41Ml0sWzEwMi4wNyw1MS4yNl0sWzEwMi4yNiw1MC41MV0sWzEwMy42OCw1MC4wOV0sWzEwNC42Miw1MC4yOF0sWzEwNS44OSw1MC40MV0sWzEwNi44OSw1MC4yN10sWzEwNy44Nyw0OS43OV0sWzEwOC40OCw0OS4yOF0sWzEwOS40LDQ5LjI5XSxbMTEwLjY2LDQ5LjEzXSxbMTExLjU4LDQ5LjM4XSxbMTEyLjksNDkuNTRdLFsxMTQuMzYsNTAuMjVdLFsxMTQuOTYsNTAuMTRdLFsxMTUuNDksNDkuODFdLFsxMTYuNjgsNDkuODldLFsxMTYuMTksNDkuMTNdLFsxMTUuNDksNDguMTRdLFsxMTUuNzQsNDcuNzNdLFsxMTYuMzEsNDcuODVdLFsxMTcuMyw0Ny43XSxbMTE4LjA2LDQ4LjA3XSxbMTE4Ljg3LDQ3Ljc1XSxbMTE5Ljc3LDQ3LjA1XSxbMTE5LjY2LDQ2LjY5XSxbMTE4Ljg3LDQ2LjgxXSxbMTE3LjQyLDQ2LjY3XSxbMTE2LjcyLDQ2LjM5XSxbMTE1Ljk5LDQ1LjczXSxbMTE0LjQ2LDQ1LjM0XSxbMTEzLjQ2LDQ0LjgxXSxbMTEyLjQ0LDQ1LjAxXSxbMTExLjg3LDQ1LjFdLFsxMTEuMzUsNDQuNDZdLFsxMTEuNjcsNDQuMDddLFsxMTEuODMsNDMuNzRdLFsxMTEuMTMsNDMuNDFdLFsxMTAuNDEsNDIuODddLFsxMDkuMjQsNDIuNTJdLFsxMDcuNzQsNDIuNDhdLFsxMDYuMTMsNDIuMTNdLFsxMDQuOTYsNDEuNl0sWzEwNC41Miw0MS45MV0sWzEwMy4zMSw0MS45MV0sWzEwMS44Myw0Mi41MV0sWzEwMC44NSw0Mi42Nl0sWzk5LjUyLDQyLjUyXSxbOTcuNDUsNDIuNzVdLFs5Ni4zNSw0Mi43M10sWzk1Ljc2LDQzLjMyXSxbOTUuMzEsNDQuMjRdLFs5NC42OSw0NC4zNV0sWzkzLjQ4LDQ0Ljk4XSxbOTIuMTMsNDUuMTJdLFs5MC45NSw0NS4yOV0sWzkwLjU5LDQ1LjcyXSxbOTAuOTcsNDYuODldLFs5MC4yOCw0Ny42OV0sWzg4Ljg1LDQ4LjA3XSxbODguMDEsNDguNl0sWzg3Ljc1LDQ5LjNdXV1dfSx7bjpgSW5kaWFgLGEyOmBJTmAsYTM6YElORGAscDpgSU5EYCxsOls3OS4zNiwyMi42OV0sZzpbW1tbOTcuMzMsMjguMjZdLFs5Ny40LDI3Ljg4XSxbOTcuMDUsMjcuN10sWzk3LjEzLDI3LjA4XSxbOTYuNDIsMjcuMjZdLFs5NS4xMiwyNi41N10sWzk1LjE2LDI2XSxbOTQuNiwyNS4xNl0sWzk0LjU1LDI0LjY4XSxbOTQuMTEsMjMuODVdLFs5My4zMywyNC4wOF0sWzkzLjI5LDIzLjA0XSxbOTMuMDYsMjIuN10sWzkzLjE3LDIyLjI4XSxbOTIuNjcsMjIuMDRdLFs5Mi4xNSwyMy42M10sWzkxLjg3LDIzLjYyXSxbOTEuNzEsMjIuOTldLFs5MS4xNiwyMy41XSxbOTEuNDcsMjQuMDddLFs5MS45MiwyNC4xM10sWzkyLjM4LDI0Ljk4XSxbOTEuOCwyNS4xNV0sWzkwLjg3LDI1LjEzXSxbODkuOTIsMjUuMjddLFs4OS44MywyNS45N10sWzg5LjM2LDI2LjAxXSxbODguNTYsMjYuNDVdLFs4OC4yMSwyNS43N10sWzg4LjkzLDI1LjI0XSxbODguMzEsMjQuODddLFs4OC4wOCwyNC41XSxbODguNywyNC4yM10sWzg4LjUzLDIzLjYzXSxbODguODgsMjIuODhdLFs4OS4wMywyMi4wNl0sWzg4Ljg5LDIxLjY5XSxbODguMjEsMjEuN10sWzg2Ljk4LDIxLjVdLFs4Ny4wMywyMC43NF0sWzg2LjUsMjAuMTVdLFs4NS4wNiwxOS40OF0sWzgzLjk0LDE4LjNdLFs4My4xOSwxNy42N10sWzgyLjE5LDE3LjAyXSxbODIuMTksMTYuNTZdLFs4MS42OSwxNi4zMV0sWzgwLjc5LDE1Ljk1XSxbODAuMzIsMTUuOV0sWzgwLjAzLDE1LjE0XSxbODAuMjMsMTMuODRdLFs4MC4yOSwxMy4wMV0sWzc5Ljg2LDEyLjA2XSxbNzkuODYsMTAuMzZdLFs3OS4zNCwxMC4zMV0sWzc4Ljg5LDkuNTVdLFs3OS4xOSw5LjIyXSxbNzguMjgsOC45M10sWzc3Ljk0LDguMjVdLFs3Ny41NCw3Ljk3XSxbNzYuNTksOC45XSxbNzYuMTMsMTAuM10sWzc1Ljc1LDExLjMxXSxbNzUuNCwxMS43OF0sWzc0Ljg2LDEyLjc0XSxbNzQuNjIsMTMuOTldLFs3NC40NCwxNC42Ml0sWzczLjUzLDE1Ljk5XSxbNzMuMTIsMTcuOTNdLFs3Mi44MiwxOS4yMV0sWzcyLjgyLDIwLjQyXSxbNzIuNjMsMjEuMzZdLFs3MS4xOCwyMC43Nl0sWzcwLjQ3LDIwLjg4XSxbNjkuMTYsMjIuMDldLFs2OS42NCwyMi40NV0sWzY5LjM1LDIyLjg0XSxbNjguMTgsMjMuNjldLFs2OC44NCwyNC4zNl0sWzcxLjA0LDI0LjM2XSxbNzAuODQsMjUuMjJdLFs3MC4yOCwyNS43Ml0sWzcwLjE3LDI2LjQ5XSxbNjkuNTEsMjYuOTRdLFs3MC42MiwyNy45OV0sWzcxLjc4LDI3LjkxXSxbNzIuODIsMjguOTZdLFs3My40NSwyOS45OF0sWzc0LjQyLDMwLjk4XSxbNzQuNDEsMzEuNjldLFs3NS4yNiwzMi4yN10sWzc0LjQ1LDMyLjc2XSxbNzQuMSwzMy40NF0sWzczLjc1LDM0LjMyXSxbNzQuMjQsMzQuNzVdLFs3NS43NiwzNC41XSxbNzYuODcsMzQuNjVdLFs3Ny44NCwzNS40OV0sWzc4LjkxLDM0LjMyXSxbNzguODEsMzMuNTFdLFs3OS4yMSwzMi45OV0sWzc5LjE4LDMyLjQ4XSxbNzguNDYsMzIuNjJdLFs3OC43NCwzMS41Ml0sWzc5LjcyLDMwLjg4XSxbODEuMTEsMzAuMThdLFs4MC40OCwyOS43M10sWzgwLjA5LDI4Ljc5XSxbODEuMDYsMjguNDJdLFs4MiwyNy45M10sWzgzLjMsMjcuMzZdLFs4NC42OCwyNy4yM10sWzg1LjI1LDI2LjczXSxbODYuMDIsMjYuNjNdLFs4Ny4yMywyNi40XSxbODguMDYsMjYuNDFdLFs4OC4xNywyNi44MV0sWzg4LjA0LDI3LjQ1XSxbODguMTIsMjcuODhdLFs4OC43MywyOC4wOV0sWzg4LjgxLDI3LjNdLFs4OC44NCwyNy4xXSxbODkuNzQsMjYuNzJdLFs5MC4zNywyNi44OF0sWzkxLjIyLDI2LjgxXSxbOTIuMDMsMjYuODRdLFs5Mi4xLDI3LjQ1XSxbOTEuNywyNy43N10sWzkyLjUsMjcuOV0sWzkzLjQxLDI4LjY0XSxbOTQuNTcsMjkuMjhdLFs5NS40LDI5LjAzXSxbOTYuMTIsMjkuNDVdLFs5Ni41OSwyOC44M10sWzk2LjI1LDI4LjQxXSxbOTcuMzMsMjguMjZdXV1dfSx7bjpgQmFuZ2xhZGVzaGAsYTI6YEJEYCxhMzpgQkdEYCxwOmBCRGAsbDpbODkuNjgsMjQuMjFdLGc6W1tbWzkyLjY3LDIyLjA0XSxbOTIuNjUsMjEuMzJdLFs5Mi4zLDIxLjQ4XSxbOTIuMzcsMjAuNjddLFs5Mi4wOCwyMS4xOV0sWzkyLjAzLDIxLjddLFs5MS44MywyMi4xOF0sWzkxLjQyLDIyLjc3XSxbOTAuNSwyMi44MV0sWzkwLjU5LDIyLjM5XSxbOTAuMjcsMjEuODRdLFs4OS44NSwyMi4wNF0sWzg5LjcsMjEuODZdLFs4OS40MiwyMS45N10sWzg5LjAzLDIyLjA2XSxbODguODgsMjIuODhdLFs4OC41MywyMy42M10sWzg4LjcsMjQuMjNdLFs4OC4wOCwyNC41XSxbODguMzEsMjQuODddLFs4OC45MywyNS4yNF0sWzg4LjIxLDI1Ljc3XSxbODguNTYsMjYuNDVdLFs4OS4zNiwyNi4wMV0sWzg5LjgzLDI1Ljk3XSxbODkuOTIsMjUuMjddLFs5MC44NywyNS4xM10sWzkxLjgsMjUuMTVdLFs5Mi4zOCwyNC45OF0sWzkxLjkyLDI0LjEzXSxbOTEuNDcsMjQuMDddLFs5MS4xNiwyMy41XSxbOTEuNzEsMjIuOTldLFs5MS44NywyMy42Ml0sWzkyLjE1LDIzLjYzXSxbOTIuNjcsMjIuMDRdXV1dfSx7bjpgQmh1dGFuYCxhMjpgQlRgLGEzOmBCVE5gLHA6YEJUYCxsOls5MC4wNCwyNy41NF0sZzpbW1tbOTEuNywyNy43N10sWzkyLjEsMjcuNDVdLFs5Mi4wMywyNi44NF0sWzkxLjIyLDI2LjgxXSxbOTAuMzcsMjYuODhdLFs4OS43NCwyNi43Ml0sWzg4Ljg0LDI3LjFdLFs4OC44MSwyNy4zXSxbODkuNDgsMjguMDRdLFs5MC4wMiwyOC4zXSxbOTAuNzMsMjguMDZdLFs5MS4yNiwyOC4wNF0sWzkxLjcsMjcuNzddXV1dfSx7bjpgTmVwYWxgLGEyOmBOUGAsYTM6YE5QTGAscDpgTlBgLGw6WzgzLjY0LDI4LjNdLGc6W1tbWzg4LjEyLDI3Ljg4XSxbODguMDQsMjcuNDVdLFs4OC4xNywyNi44MV0sWzg4LjA2LDI2LjQxXSxbODcuMjMsMjYuNF0sWzg2LjAyLDI2LjYzXSxbODUuMjUsMjYuNzNdLFs4NC42OCwyNy4yM10sWzgzLjMsMjcuMzZdLFs4MiwyNy45M10sWzgxLjA2LDI4LjQyXSxbODAuMDksMjguNzldLFs4MC40OCwyOS43M10sWzgxLjExLDMwLjE4XSxbODEuNTMsMzAuNDJdLFs4Mi4zMywzMC4xMl0sWzgzLjM0LDI5LjQ2XSxbODMuOSwyOS4zMl0sWzg0LjIzLDI4Ljg0XSxbODUuMDEsMjguNjRdLFs4NS44MiwyOC4yXSxbODYuOTUsMjcuOTddLFs4OC4xMiwyNy44OF1dXV19LHtuOmBQYWtpc3RhbmAsYTI6YFBLYCxhMzpgUEFLYCxwOmBQS2AsbDpbNjguNTUsMjkuMzNdLGc6W1tbWzc3Ljg0LDM1LjQ5XSxbNzYuODcsMzQuNjVdLFs3NS43NiwzNC41XSxbNzQuMjQsMzQuNzVdLFs3My43NSwzNC4zMl0sWzc0LjEsMzMuNDRdLFs3NC40NSwzMi43Nl0sWzc1LjI2LDMyLjI3XSxbNzQuNDEsMzEuNjldLFs3NC40MiwzMC45OF0sWzczLjQ1LDI5Ljk4XSxbNzIuODIsMjguOTZdLFs3MS43OCwyNy45MV0sWzcwLjYyLDI3Ljk5XSxbNjkuNTEsMjYuOTRdLFs3MC4xNywyNi40OV0sWzcwLjI4LDI1LjcyXSxbNzAuODQsMjUuMjJdLFs3MS4wNCwyNC4zNl0sWzY4Ljg0LDI0LjM2XSxbNjguMTgsMjMuNjldLFs2Ny40NCwyMy45NF0sWzY3LjE1LDI0LjY2XSxbNjYuMzcsMjUuNDNdLFs2NC41MywyNS4yNF0sWzYyLjkxLDI1LjIyXSxbNjEuNSwyNS4wOF0sWzYxLjg3LDI2LjI0XSxbNjMuMzIsMjYuNzZdLFs2My4yMywyNy4yMl0sWzYyLjc2LDI3LjM4XSxbNjIuNzMsMjguMjZdLFs2MS43NywyOC43XSxbNjEuMzcsMjkuM10sWzYwLjg3LDI5LjgzXSxbNjIuNTUsMjkuMzJdLFs2My41NSwyOS40N10sWzY0LjE1LDI5LjM0XSxbNjQuMzUsMjkuNTZdLFs2NS4wNSwyOS40N10sWzY2LjM1LDI5Ljg5XSxbNjYuMzgsMzAuNzRdLFs2Ni45NCwzMS4zXSxbNjcuNjgsMzEuM10sWzY3Ljc5LDMxLjU4XSxbNjguNTYsMzEuNzFdLFs2OC45MywzMS42Ml0sWzY5LjMyLDMxLjldLFs2OS4yNiwzMi41XSxbNjkuNjksMzMuMTFdLFs3MC4zMiwzMy4zNl0sWzY5LjkzLDM0LjAyXSxbNzAuODgsMzMuOTldLFs3MS4xNiwzNC4zNV0sWzcxLjEyLDM0LjczXSxbNzEuNjEsMzUuMTVdLFs3MS41LDM1LjY1XSxbNzEuMjYsMzYuMDddLFs3MS44NSwzNi41MV0sWzcyLjkyLDM2LjcyXSxbNzQuMDcsMzYuODRdLFs3NC41OCwzNy4wMl0sWzc1LjE2LDM3LjEzXSxbNzUuOSwzNi42N10sWzc2LjE5LDM1LjldLFs3Ny44NCwzNS40OV1dXV19LHtuOmBBZmdoYW5pc3RhbmAsYTI6YEFGYCxhMzpgQUZHYCxwOmBBRmAsbDpbNjYuNSwzNC4xNl0sZzpbW1tbNjYuNTIsMzcuMzZdLFs2Ny4wOCwzNy4zNl0sWzY3LjgzLDM3LjE0XSxbNjguMTQsMzcuMDJdLFs2OC44NiwzNy4zNF0sWzY5LjIsMzcuMTVdLFs2OS41MiwzNy42MV0sWzcwLjEyLDM3LjU5XSxbNzAuMjcsMzcuNzRdLFs3MC4zOCwzOC4xNF0sWzcwLjgxLDM4LjQ5XSxbNzEuMzUsMzguMjZdLFs3MS4yNCwzNy45NV0sWzcxLjU0LDM3LjkxXSxbNzEuNDUsMzcuMDddLFs3MS44NCwzNi43NF0sWzcyLjE5LDM2Ljk1XSxbNzIuNjQsMzcuMDVdLFs3My4yNiwzNy41XSxbNzMuOTUsMzcuNDJdLFs3NC45OCwzNy40Ml0sWzc1LjE2LDM3LjEzXSxbNzQuNTgsMzcuMDJdLFs3NC4wNywzNi44NF0sWzcyLjkyLDM2LjcyXSxbNzEuODUsMzYuNTFdLFs3MS4yNiwzNi4wN10sWzcxLjUsMzUuNjVdLFs3MS42MSwzNS4xNV0sWzcxLjEyLDM0LjczXSxbNzEuMTYsMzQuMzVdLFs3MC44OCwzMy45OV0sWzY5LjkzLDM0LjAyXSxbNzAuMzIsMzMuMzZdLFs2OS42OSwzMy4xMV0sWzY5LjI2LDMyLjVdLFs2OS4zMiwzMS45XSxbNjguOTMsMzEuNjJdLFs2OC41NiwzMS43MV0sWzY3Ljc5LDMxLjU4XSxbNjcuNjgsMzEuM10sWzY2Ljk0LDMxLjNdLFs2Ni4zOCwzMC43NF0sWzY2LjM1LDI5Ljg5XSxbNjUuMDUsMjkuNDddLFs2NC4zNSwyOS41Nl0sWzY0LjE1LDI5LjM0XSxbNjMuNTUsMjkuNDddLFs2Mi41NSwyOS4zMl0sWzYwLjg3LDI5LjgzXSxbNjEuNzgsMzAuNzRdLFs2MS43LDMxLjM4XSxbNjAuOTQsMzEuNTVdLFs2MC44NiwzMi4xOF0sWzYwLjU0LDMyLjk4XSxbNjAuOTYsMzMuNTNdLFs2MC41MywzMy42OF0sWzYwLjgsMzQuNF0sWzYxLjIxLDM1LjY1XSxbNjIuMjMsMzUuMjddLFs2Mi45OCwzNS40XSxbNjMuMTksMzUuODZdLFs2My45OCwzNi4wMV0sWzY0LjU1LDM2LjMxXSxbNjQuNzUsMzcuMTFdLFs2NS41OSwzNy4zMV0sWzY1Ljc1LDM3LjY2XSxbNjYuMjIsMzcuMzldLFs2Ni41MiwzNy4zNl1dXV19LHtuOmBUYWppa2lzdGFuYCxhMjpgVEpgLGEzOmBUSktgLHA6YFRKYCxsOls3Mi41OSwzOC4yXSxnOltbW1s2Ny44MywzNy4xNF0sWzY4LjM5LDM4LjE2XSxbNjguMTgsMzguOV0sWzY3LjQ0LDM5LjE0XSxbNjcuNywzOS41OF0sWzY4LjU0LDM5LjUzXSxbNjkuMDEsNDAuMDldLFs2OS4zMyw0MC43M10sWzcwLjY3LDQwLjk2XSxbNzAuNDYsNDAuNV0sWzcwLjYsNDAuMjJdLFs3MS4wMSw0MC4yNF0sWzcwLjY1LDM5Ljk0XSxbNjkuNTYsNDAuMV0sWzY5LjQ2LDM5LjUzXSxbNzAuNTUsMzkuNl0sWzcxLjc4LDM5LjI4XSxbNzMuNjgsMzkuNDNdLFs3My45MywzOC41MV0sWzc0LjI2LDM4LjYxXSxbNzQuODYsMzguMzhdLFs3NC44MywzNy45OV0sWzc0Ljk4LDM3LjQyXSxbNzMuOTUsMzcuNDJdLFs3My4yNiwzNy41XSxbNzIuNjQsMzcuMDVdLFs3Mi4xOSwzNi45NV0sWzcxLjg0LDM2Ljc0XSxbNzEuNDUsMzcuMDddLFs3MS41NCwzNy45MV0sWzcxLjI0LDM3Ljk1XSxbNzEuMzUsMzguMjZdLFs3MC44MSwzOC40OV0sWzcwLjM4LDM4LjE0XSxbNzAuMjcsMzcuNzRdLFs3MC4xMiwzNy41OV0sWzY5LjUyLDM3LjYxXSxbNjkuMiwzNy4xNV0sWzY4Ljg2LDM3LjM0XSxbNjguMTQsMzcuMDJdLFs2Ny44MywzNy4xNF1dXV19LHtuOmBLeXJneXpzdGFuYCxhMjpgS0dgLGEzOmBLR1pgLHA6YEtHYCxsOls3NC41Myw0MS42N10sZzpbW1tbNzAuOTYsNDIuMjddLFs3MS4xOSw0Mi43XSxbNzEuODQsNDIuODVdLFs3My40OSw0Mi41XSxbNzMuNjUsNDMuMDldLFs3NC4yMSw0My4zXSxbNzUuNjQsNDIuODhdLFs3Niw0Mi45OV0sWzc3LjY2LDQyLjk2XSxbNzkuMTQsNDIuODZdLFs3OS42NCw0Mi41XSxbODAuMjYsNDIuMzVdLFs4MC4xMiw0Mi4xMl0sWzc4LjU0LDQxLjU4XSxbNzguMTksNDEuMTldLFs3Ni45LDQxLjA3XSxbNzYuNTMsNDAuNDNdLFs3NS40Nyw0MC41Nl0sWzc0Ljc4LDQwLjM3XSxbNzMuODIsMzkuODldLFs3My45NiwzOS42Nl0sWzczLjY4LDM5LjQzXSxbNzEuNzgsMzkuMjhdLFs3MC41NSwzOS42XSxbNjkuNDYsMzkuNTNdLFs2OS41Niw0MC4xXSxbNzAuNjUsMzkuOTRdLFs3MS4wMSw0MC4yNF0sWzcxLjc3LDQwLjE1XSxbNzMuMDYsNDAuODddLFs3MS44Nyw0MS4zOV0sWzcxLjE2LDQxLjE0XSxbNzAuNDIsNDEuNTJdLFs3MS4yNiw0Mi4xN10sWzcwLjk2LDQyLjI3XV1dXX0se246YFR1cmttZW5pc3RhbmAsYTI6YFRNYCxhMzpgVEtNYCxwOmBUTWAsbDpbNTguNjgsMzkuODZdLGc6W1tbWzUyLjUsNDEuNzhdLFs1Mi45NCw0Mi4xMl0sWzU0LjA4LDQyLjMyXSxbNTQuNzYsNDIuMDRdLFs1NS40Niw0MS4yNl0sWzU1Ljk3LDQxLjMxXSxbNTcuMSw0MS4zMl0sWzU2LjkzLDQxLjgzXSxbNTcuNzksNDIuMTddLFs1OC42Myw0Mi43NV0sWzU5Ljk4LDQyLjIyXSxbNjAuMDgsNDEuNDNdLFs2MC40Nyw0MS4yMl0sWzYxLjU1LDQxLjI3XSxbNjEuODgsNDEuMDhdLFs2Mi4zNyw0MC4wNV0sWzYzLjUyLDM5LjM2XSxbNjQuMTcsMzguODldLFs2NS4yMiwzOC40XSxbNjYuNTUsMzcuOTddLFs2Ni41MiwzNy4zNl0sWzY2LjIyLDM3LjM5XSxbNjUuNzUsMzcuNjZdLFs2NS41OSwzNy4zMV0sWzY0Ljc1LDM3LjExXSxbNjQuNTUsMzYuMzFdLFs2My45OCwzNi4wMV0sWzYzLjE5LDM1Ljg2XSxbNjIuOTgsMzUuNF0sWzYyLjIzLDM1LjI3XSxbNjEuMjEsMzUuNjVdLFs2MS4xMiwzNi40OV0sWzYwLjM4LDM2LjUzXSxbNTkuMjMsMzcuNDFdLFs1OC40NCwzNy41Ml0sWzU3LjMzLDM4LjAzXSxbNTYuNjIsMzguMTJdLFs1Ni4xOCwzNy45NF0sWzU1LjUxLDM3Ljk2XSxbNTQuOCwzNy4zOV0sWzUzLjkyLDM3LjJdLFs1My43NCwzNy45MV0sWzUzLjg4LDM4Ljk1XSxbNTMuMSwzOS4yOV0sWzUzLjM2LDM5Ljk4XSxbNTIuNjksNDAuMDNdLFs1Mi45Miw0MC44OF0sWzUzLjg2LDQwLjYzXSxbNTQuNzQsNDAuOTVdLFs1NC4wMSw0MS41NV0sWzUzLjcyLDQyLjEyXSxbNTIuOTIsNDEuODddLFs1Mi44MSw0MS4xNF0sWzUyLjUsNDEuNzhdXV1dfSx7bjpgSXJhbmAsYTI6YElSYCxhMzpgSVJOYCxwOmBJUk5gLGw6WzU0LjkzLDMyLjE3XSxnOltbW1s0OC41NywyOS45M10sWzQ4LjAxLDMwLjQ1XSxbNDgsMzAuOTldLFs0Ny42OSwzMC45OF0sWzQ3Ljg1LDMxLjcxXSxbNDcuMzMsMzIuNDddLFs0Ni4xMSwzMy4wMl0sWzQ1LjQyLDMzLjk3XSxbNDUuNjUsMzQuNzVdLFs0Ni4xNSwzNS4wOV0sWzQ2LjA4LDM1LjY4XSxbNDUuNDIsMzUuOThdLFs0NC43NywzNy4xN10sWzQ0LjIzLDM3Ljk3XSxbNDQuNDIsMzguMjhdLFs0NC4xMSwzOS40M10sWzQ0Ljc5LDM5LjcxXSxbNDQuOTUsMzkuMzRdLFs0NS40NiwzOC44N10sWzQ2LjE0LDM4Ljc0XSxbNDYuNTEsMzguNzddLFs0Ny42OSwzOS41MV0sWzQ4LjA2LDM5LjU4XSxbNDguMzYsMzkuMjldLFs0OC4wMSwzOC43OV0sWzQ4LjYzLDM4LjI3XSxbNDguODgsMzguMzJdLFs0OS4yLDM3LjU4XSxbNTAuMTUsMzcuMzddLFs1MC44NCwzNi44N10sWzUyLjI2LDM2LjddLFs1My44MywzNi45N10sWzUzLjkyLDM3LjJdLFs1NC44LDM3LjM5XSxbNTUuNTEsMzcuOTZdLFs1Ni4xOCwzNy45NF0sWzU2LjYyLDM4LjEyXSxbNTcuMzMsMzguMDNdLFs1OC40NCwzNy41Ml0sWzU5LjIzLDM3LjQxXSxbNjAuMzgsMzYuNTNdLFs2MS4xMiwzNi40OV0sWzYxLjIxLDM1LjY1XSxbNjAuOCwzNC40XSxbNjAuNTMsMzMuNjhdLFs2MC45NiwzMy41M10sWzYwLjU0LDMyLjk4XSxbNjAuODYsMzIuMThdLFs2MC45NCwzMS41NV0sWzYxLjcsMzEuMzhdLFs2MS43OCwzMC43NF0sWzYwLjg3LDI5LjgzXSxbNjEuMzcsMjkuM10sWzYxLjc3LDI4LjddLFs2Mi43MywyOC4yNl0sWzYyLjc2LDI3LjM4XSxbNjMuMjMsMjcuMjJdLFs2My4zMiwyNi43Nl0sWzYxLjg3LDI2LjI0XSxbNjEuNSwyNS4wOF0sWzU5LjYyLDI1LjM4XSxbNTguNTMsMjUuNjFdLFs1Ny40LDI1Ljc0XSxbNTYuOTcsMjYuOTddLFs1Ni40OSwyNy4xNF0sWzU1LjcyLDI2Ljk2XSxbNTQuNzIsMjYuNDhdLFs1My40OSwyNi44MV0sWzUyLjQ4LDI3LjU4XSxbNTEuNTIsMjcuODddLFs1MC44NSwyOC44MV0sWzUwLjEyLDMwLjE1XSxbNDkuNTgsMjkuOTldLFs0OC45NCwzMC4zMl0sWzQ4LjU3LDI5LjkzXV1dXX0se246YFN5cmlhYCxhMjpgU1lgLGEzOmBTWVJgLHA6YFNZUmAsbDpbMzguMjgsMzUuMDFdLGc6W1tbWzM1LjcyLDMyLjcxXSxbMzUuNywzMi43Ml0sWzM1Ljg0LDMyLjg3XSxbMzUuODIsMzMuMjhdLFszNi4wNywzMy44Ml0sWzM2LjYxLDM0LjJdLFszNi40NSwzNC41OV0sWzM2LDM0LjY0XSxbMzUuOTEsMzUuNDFdLFszNi4xNSwzNS44Ml0sWzM2LjQyLDM2LjA0XSxbMzYuNjksMzYuMjZdLFszNi43NCwzNi44Ml0sWzM3LjA3LDM2LjYyXSxbMzguMTcsMzYuOV0sWzM4LjcsMzYuNzFdLFszOS41MiwzNi43Ml0sWzQwLjY3LDM3LjA5XSxbNDEuMjEsMzcuMDddLFs0Mi4zNSwzNy4yM10sWzQxLjg0LDM2LjYxXSxbNDEuMjksMzYuMzZdLFs0MS4zOCwzNS42M10sWzQxLjAxLDM0LjQyXSxbMzguNzksMzMuMzhdLFszNi44MywzMi4zMV0sWzM1LjcyLDMyLjcxXV1dXX0se246YEFybWVuaWFgLGEyOmBBTWAsYTM6YEFSTWAscDpgQVJNYCxsOls0NC44LDQwLjQ2XSxnOltbW1s0Ni41MSwzOC43N10sWzQ2LjE0LDM4Ljc0XSxbNDUuNzQsMzkuMzJdLFs0NS43NCwzOS40N10sWzQ1LjMsMzkuNDddLFs0NSwzOS43NF0sWzQ0Ljc5LDM5LjcxXSxbNDQuNCw0MC4wMV0sWzQzLjY2LDQwLjI1XSxbNDMuNzUsNDAuNzRdLFs0My41OCw0MS4wOV0sWzQ0Ljk3LDQxLjI1XSxbNDUuMTgsNDAuOTldLFs0NS41Niw0MC44MV0sWzQ1LjM2LDQwLjU2XSxbNDUuODksNDAuMjJdLFs0NS42MSwzOS45XSxbNDYuMDMsMzkuNjNdLFs0Ni40OCwzOS40Nl0sWzQ2LjUxLDM4Ljc3XV1dXX0se246YFN3ZWRlbmAsYTI6YFNFYCxhMzpgU1dFYCxwOmBTYCxsOlsxOS4wMiw2NS44Nl0sZzpbW1tbMTEuMDMsNTguODZdLFsxMS40Nyw1OS40M10sWzEyLjMsNjAuMTJdLFsxMi42Myw2MS4yOV0sWzExLjk5LDYxLjhdLFsxMS45Myw2My4xM10sWzEyLjU4LDY0LjA3XSxbMTMuNTcsNjQuMDVdLFsxMy45Miw2NC40NV0sWzEzLjU2LDY0Ljc5XSxbMTUuMTEsNjYuMTldLFsxNi4xMSw2Ny4zXSxbMTYuNzcsNjguMDFdLFsxNy43Myw2OC4wMV0sWzE3Ljk5LDY4LjU3XSxbMTkuODgsNjguNDFdLFsyMC4wMyw2OS4wN10sWzIwLjY1LDY5LjExXSxbMjEuOTgsNjguNjJdLFsyMy41NCw2Ny45NF0sWzIzLjU3LDY2LjRdLFsyMy45LDY2LjAxXSxbMjIuMTgsNjUuNzJdLFsyMS4yMSw2NS4wM10sWzIxLjM3LDY0LjQxXSxbMTkuNzgsNjMuNjFdLFsxNy44NSw2Mi43NV0sWzE3LjEyLDYxLjM0XSxbMTcuODMsNjAuNjRdLFsxOC43OSw2MC4wOF0sWzE3Ljg3LDU4Ljk1XSxbMTYuODMsNTguNzJdLFsxNi40NSw1Ny4wNF0sWzE1Ljg4LDU2LjFdLFsxNC42Nyw1Ni4yXSxbMTQuMSw1NS40MV0sWzEyLjk0LDU1LjM2XSxbMTIuNjMsNTYuMzFdLFsxMS43OSw1Ny40NF0sWzExLjAzLDU4Ljg2XV1dXX0se246YEJlbGFydXNgLGEyOmBCWWAsYTM6YEJMUmAscDpgQllgLGw6WzI4LjQyLDUzLjgyXSxnOltbW1syOC4xOCw1Ni4xN10sWzI5LjIzLDU1LjkyXSxbMjkuMzcsNTUuNjddLFsyOS45LDU1Ljc5XSxbMzAuODcsNTUuNTVdLFszMC45Nyw1NS4wOF0sWzMwLjc2LDU0LjgxXSxbMzEuMzgsNTQuMTZdLFszMS43OSw1My45N10sWzMxLjczLDUzLjc5XSxbMzIuNDEsNTMuNjJdLFszMi42OSw1My4zNV0sWzMyLjMsNTMuMTNdLFszMS41LDUzLjE3XSxbMzEuMzEsNTMuMDddLFszMS41NCw1Mi43NF0sWzMxLjc5LDUyLjFdLFszMC45Myw1Mi4wNF0sWzMwLjYyLDUxLjgyXSxbMzAuNTYsNTEuMzJdLFszMC4xNiw1MS40Ml0sWzI5LjI1LDUxLjM3XSxbMjguOTksNTEuNl0sWzI4LjYyLDUxLjQzXSxbMjguMjQsNTEuNTddLFsyNy40NSw1MS41OV0sWzI2LjM0LDUxLjgzXSxbMjUuMzMsNTEuOTFdLFsyNC41NSw1MS44OV0sWzI0LjAxLDUxLjYyXSxbMjMuNTMsNTEuNThdLFsyMy41MSw1Mi4wMl0sWzIzLjIsNTIuNDldLFsyMy44LDUyLjY5XSxbMjMuOCw1My4wOV0sWzIzLjUzLDUzLjQ3XSxbMjMuNDgsNTMuOTFdLFsyNC40NSw1My45MV0sWzI1LjU0LDU0LjI4XSxbMjUuNzcsNTQuODVdLFsyNi41OSw1NS4xN10sWzI2LjQ5LDU1LjYyXSxbMjcuMSw1NS43OF0sWzI4LjE4LDU2LjE3XV1dXX0se246YFVrcmFpbmVgLGEyOmBVQWAsYTM6YFVLUmAscDpgVUFgLGw6WzMyLjE0LDQ5LjcyXSxnOltbW1szMS43OSw1Mi4xXSxbMzIuMTYsNTIuMDZdLFszMi40MSw1Mi4yOV0sWzMyLjcyLDUyLjI0XSxbMzMuNzUsNTIuMzRdLFszNC4zOSw1MS43N10sWzM0LjE0LDUxLjU3XSxbMzQuMjIsNTEuMjZdLFszNS4wMiw1MS4yMV0sWzM1LjM4LDUwLjc3XSxbMzUuMzYsNTAuNThdLFszNi42Myw1MC4yM10sWzM3LjM5LDUwLjM4XSxbMzguMDEsNDkuOTJdLFszOC41OSw0OS45M10sWzQwLjA3LDQ5LjZdLFs0MC4wOCw0OS4zMV0sWzM5LjY3LDQ4Ljc4XSxbMzkuOSw0OC4yM10sWzM5Ljc0LDQ3LjldLFszOC43Nyw0Ny44M10sWzM4LjI2LDQ3LjU1XSxbMzguMjIsNDcuMV0sWzM3LjQzLDQ3LjAyXSxbMzYuNzYsNDYuN10sWzM1LjgyLDQ2LjY1XSxbMzQuOTYsNDYuMjddLFszNS4wMSw0NS43NF0sWzM0Ljg2LDQ1Ljc3XSxbMzQuNzMsNDUuOTddLFszNC40MSw0Ni4wMV0sWzMzLjcsNDYuMjJdLFszMy40NCw0NS45N10sWzMzLjMsNDYuMDhdLFszMS43NCw0Ni4zM10sWzMxLjY4LDQ2LjcxXSxbMzAuNzUsNDYuNThdLFszMC4zOCw0Ni4wM10sWzI5LjYsNDUuMjldLFsyOS4xNSw0NS40Nl0sWzI4LjY4LDQ1LjNdLFsyOC4yMyw0NS40OV0sWzI4LjQ5LDQ1LjZdLFsyOC42Niw0NS45NF0sWzI4LjkzLDQ2LjI2XSxbMjguODYsNDYuNDRdLFsyOS4wNyw0Ni41Ml0sWzI5LjE3LDQ2LjM4XSxbMjkuNzYsNDYuMzVdLFszMC4wMiw0Ni40Ml0sWzI5Ljg0LDQ2LjUzXSxbMjkuOTEsNDYuNjddLFsyOS41Niw0Ni45M10sWzI5LjQyLDQ3LjM1XSxbMjkuMDUsNDcuNTFdLFsyOS4xMiw0Ny44NV0sWzI4LjY3LDQ4LjEyXSxbMjguMjYsNDguMTZdLFsyNy41Miw0OC40N10sWzI2Ljg2LDQ4LjM3XSxbMjYuNjIsNDguMjJdLFsyNi4yLDQ4LjIyXSxbMjUuOTUsNDcuOTldLFsyNS4yMSw0Ny44OV0sWzI0Ljg3LDQ3Ljc0XSxbMjQuNCw0Ny45OF0sWzIzLjc2LDQ3Ljk5XSxbMjMuMTQsNDguMV0sWzIyLjcxLDQ3Ljg4XSxbMjIuNjQsNDguMTVdLFsyMi4wOSw0OC40Ml0sWzIyLjI4LDQ4LjgzXSxbMjIuNTYsNDkuMDldLFsyMi43OCw0OS4wM10sWzIyLjUyLDQ5LjQ4XSxbMjMuNDMsNTAuMzFdLFsyMy45Miw1MC40Ml0sWzI0LjAzLDUwLjcxXSxbMjMuNTMsNTEuNThdLFsyNC4wMSw1MS42Ml0sWzI0LjU1LDUxLjg5XSxbMjUuMzMsNTEuOTFdLFsyNi4zNCw1MS44M10sWzI3LjQ1LDUxLjU5XSxbMjguMjQsNTEuNTddLFsyOC42Miw1MS40M10sWzI4Ljk5LDUxLjZdLFsyOS4yNSw1MS4zN10sWzMwLjE2LDUxLjQyXSxbMzAuNTYsNTEuMzJdLFszMC42Miw1MS44Ml0sWzMwLjkzLDUyLjA0XSxbMzEuNzksNTIuMV1dXV19LHtuOmBQb2xhbmRgLGEyOmBQTGAsYTM6YFBPTGAscDpgUExgLGw6WzE5LjQ5LDUxLjk5XSxnOltbW1syMy40OCw1My45MV0sWzIzLjUzLDUzLjQ3XSxbMjMuOCw1My4wOV0sWzIzLjgsNTIuNjldLFsyMy4yLDUyLjQ5XSxbMjMuNTEsNTIuMDJdLFsyMy41Myw1MS41OF0sWzI0LjAzLDUwLjcxXSxbMjMuOTIsNTAuNDJdLFsyMy40Myw1MC4zMV0sWzIyLjUyLDQ5LjQ4XSxbMjIuNzgsNDkuMDNdLFsyMi41Niw0OS4wOV0sWzIxLjYxLDQ5LjQ3XSxbMjAuODksNDkuMzNdLFsyMC40Miw0OS40M10sWzE5LjgzLDQ5LjIyXSxbMTkuMzIsNDkuNTddLFsxOC45MSw0OS40NF0sWzE4Ljg1LDQ5LjVdLFsxOC4zOSw0OS45OV0sWzE3LjY1LDUwLjA1XSxbMTcuNTUsNTAuMzZdLFsxNi44Nyw1MC40N10sWzE2LjcyLDUwLjIyXSxbMTYuMTgsNTAuNDJdLFsxNi4yNCw1MC43XSxbMTUuNDksNTAuNzhdLFsxNS4wMiw1MS4xMV0sWzE0LjYxLDUxLjc1XSxbMTQuNjksNTIuMDldLFsxNC40NCw1Mi42Ml0sWzE0LjA3LDUyLjk4XSxbMTQuMzUsNTMuMjVdLFsxNC4xMiw1My43Nl0sWzE0LjgsNTQuMDVdLFsxNi4zNiw1NC41MV0sWzE3LjYyLDU0Ljg1XSxbMTguNjIsNTQuNjhdLFsxOC43LDU0LjQ0XSxbMTkuNjYsNTQuNDNdLFsyMC44OSw1NC4zMV0sWzIyLjczLDU0LjMzXSxbMjMuMjQsNTQuMjJdLFsyMy40OCw1My45MV1dXV19LHtuOmBBdXN0cmlhYCxhMjpgQVRgLGEzOmBBVVRgLHA6YEFgLGw6WzE0LjEzLDQ3LjUyXSxnOltbW1sxNi45OCw0OC4xMl0sWzE2LjksNDcuNzFdLFsxNi4zNCw0Ny43MV0sWzE2LjUzLDQ3LjVdLFsxNi4yLDQ2Ljg1XSxbMTYuMDEsNDYuNjhdLFsxNS4xNCw0Ni42Nl0sWzE0LjYzLDQ2LjQzXSxbMTMuODEsNDYuNTFdLFsxMi4zOCw0Ni43N10sWzEyLjE1LDQ3LjEyXSxbMTEuMTYsNDYuOTRdLFsxMS4wNSw0Ni43NV0sWzEwLjQ0LDQ2Ljg5XSxbOS45Myw0Ni45Ml0sWzkuNDgsNDcuMV0sWzkuNjMsNDcuMzVdLFs5LjU5LDQ3LjUzXSxbOS45LDQ3LjU4XSxbMTAuNCw0Ny4zXSxbMTAuNTQsNDcuNTddLFsxMS40Myw0Ny41Ml0sWzEyLjE0LDQ3LjddLFsxMi42Miw0Ny42N10sWzEyLjkzLDQ3LjQ3XSxbMTMuMDMsNDcuNjRdLFsxMi44OCw0OC4yOV0sWzEzLjI0LDQ4LjQyXSxbMTMuNiw0OC44OF0sWzE0LjM0LDQ4LjU2XSxbMTQuOSw0OC45Nl0sWzE1LjI1LDQ5LjA0XSxbMTYuMDMsNDguNzNdLFsxNi41LDQ4Ljc5XSxbMTYuOTYsNDguNl0sWzE2Ljg4LDQ4LjQ3XSxbMTYuOTgsNDguMTJdXV1dfSx7bjpgSHVuZ2FyeWAsYTI6YEhVYCxhMzpgSFVOYCxwOmBIVWAsbDpbMTkuNDUsNDcuMDldLGc6W1tbWzIyLjA5LDQ4LjQyXSxbMjIuNjQsNDguMTVdLFsyMi43MSw0Ny44OF0sWzIyLjEsNDcuNjddLFsyMS42Myw0Ni45OV0sWzIxLjAyLDQ2LjMyXSxbMjAuMjIsNDYuMTNdLFsxOS42LDQ2LjE3XSxbMTguODMsNDUuOTFdLFsxOC40Niw0NS43Nl0sWzE3LjYzLDQ1Ljk1XSxbMTYuODgsNDYuMzhdLFsxNi41Niw0Ni41XSxbMTYuMzcsNDYuODRdLFsxNi4yLDQ2Ljg1XSxbMTYuNTMsNDcuNV0sWzE2LjM0LDQ3LjcxXSxbMTYuOSw0Ny43MV0sWzE2Ljk4LDQ4LjEyXSxbMTcuNDksNDcuODddLFsxNy44Niw0Ny43Nl0sWzE4LjcsNDcuODhdLFsxOC43OCw0OC4wOF0sWzE5LjE3LDQ4LjExXSxbMTkuNjYsNDguMjddLFsxOS43Nyw0OC4yXSxbMjAuMjQsNDguMzNdLFsyMC40Nyw0OC41Nl0sWzIwLjgsNDguNjJdLFsyMS44Nyw0OC4zMl0sWzIyLjA5LDQ4LjQyXV1dXX0se246YE1vbGRvdmFgLGEyOmBNRGAsYTM6YE1EQWAscDpgTURgLGw6WzI4LjQ5LDQ3LjQzXSxnOltbW1syNi42Miw0OC4yMl0sWzI2Ljg2LDQ4LjM3XSxbMjcuNTIsNDguNDddLFsyOC4yNiw0OC4xNl0sWzI4LjY3LDQ4LjEyXSxbMjkuMTIsNDcuODVdLFsyOS4wNSw0Ny41MV0sWzI5LjQyLDQ3LjM1XSxbMjkuNTYsNDYuOTNdLFsyOS45MSw0Ni42N10sWzI5Ljg0LDQ2LjUzXSxbMzAuMDIsNDYuNDJdLFsyOS43Niw0Ni4zNV0sWzI5LjE3LDQ2LjM4XSxbMjkuMDcsNDYuNTJdLFsyOC44Niw0Ni40NF0sWzI4LjkzLDQ2LjI2XSxbMjguNjYsNDUuOTRdLFsyOC40OSw0NS42XSxbMjguMjMsNDUuNDldLFsyOC4wNSw0NS45NF0sWzI4LjE2LDQ2LjM3XSxbMjguMTMsNDYuODFdLFsyNy41NSw0Ny40MV0sWzI3LjIzLDQ3LjgzXSxbMjYuOTIsNDguMTJdLFsyNi42Miw0OC4yMl1dXV19LHtuOmBSb21hbmlhYCxhMjpgUk9gLGEzOmBST1VgLHA6YFJPYCxsOlsyNC45Nyw0NS43M10sZzpbW1tbMjguMjMsNDUuNDldLFsyOC42OCw0NS4zXSxbMjkuMTUsNDUuNDZdLFsyOS42LDQ1LjI5XSxbMjkuNjMsNDUuMDRdLFsyOS4xNCw0NC44Ml0sWzI4Ljg0LDQ0LjkxXSxbMjguNTYsNDMuNzFdLFsyNy45Nyw0My44MV0sWzI3LjI0LDQ0LjE4XSxbMjYuMDcsNDMuOTRdLFsyNS41Nyw0My42OV0sWzI0LjEsNDMuNzRdLFsyMy4zMyw0My45XSxbMjIuOTQsNDMuODJdLFsyMi42Niw0NC4yM10sWzIyLjQ3LDQ0LjQxXSxbMjIuNzEsNDQuNThdLFsyMi40Niw0NC43XSxbMjIuMTUsNDQuNDhdLFsyMS41Niw0NC43N10sWzIxLjQ4LDQ1LjE4XSxbMjAuODcsNDUuNDJdLFsyMC43Niw0NS43M10sWzIwLjIyLDQ2LjEzXSxbMjEuMDIsNDYuMzJdLFsyMS42Myw0Ni45OV0sWzIyLjEsNDcuNjddLFsyMi43MSw0Ny44OF0sWzIzLjE0LDQ4LjFdLFsyMy43Niw0Ny45OV0sWzI0LjQsNDcuOThdLFsyNC44Nyw0Ny43NF0sWzI1LjIxLDQ3Ljg5XSxbMjUuOTUsNDcuOTldLFsyNi4yLDQ4LjIyXSxbMjYuNjIsNDguMjJdLFsyNi45Miw0OC4xMl0sWzI3LjIzLDQ3LjgzXSxbMjcuNTUsNDcuNDFdLFsyOC4xMyw0Ni44MV0sWzI4LjE2LDQ2LjM3XSxbMjguMDUsNDUuOTRdLFsyOC4yMyw0NS40OV1dXV19LHtuOmBMaXRodWFuaWFgLGEyOmBMVGAsYTM6YExUVWAscDpgTFRgLGw6WzI0LjA5LDU1LjFdLGc6W1tbWzI2LjQ5LDU1LjYyXSxbMjYuNTksNTUuMTddLFsyNS43Nyw1NC44NV0sWzI1LjU0LDU0LjI4XSxbMjQuNDUsNTMuOTFdLFsyMy40OCw1My45MV0sWzIzLjI0LDU0LjIyXSxbMjIuNzMsNTQuMzNdLFsyMi42NSw1NC41OF0sWzIyLjc2LDU0Ljg2XSxbMjIuMzIsNTUuMDJdLFsyMS4yNyw1NS4xOV0sWzIxLjA2LDU2LjAzXSxbMjIuMiw1Ni4zNF0sWzIzLjg4LDU2LjI3XSxbMjQuODYsNTYuMzddLFsyNSw1Ni4xNl0sWzI1LjUzLDU2LjFdLFsyNi40OSw1NS42Ml1dXV19LHtuOmBMYXR2aWFgLGEyOmBMVmAsYTM6YExWQWAscDpgTFZgLGw6WzI1LjQ2LDU3LjA3XSxnOltbW1syNy4yOSw1Ny40N10sWzI3Ljc3LDU3LjI0XSxbMjcuODYsNTYuNzZdLFsyOC4xOCw1Ni4xN10sWzI3LjEsNTUuNzhdLFsyNi40OSw1NS42Ml0sWzI1LjUzLDU2LjFdLFsyNSw1Ni4xNl0sWzI0Ljg2LDU2LjM3XSxbMjMuODgsNTYuMjddLFsyMi4yLDU2LjM0XSxbMjEuMDYsNTYuMDNdLFsyMS4wOSw1Ni43OF0sWzIxLjU4LDU3LjQxXSxbMjIuNTIsNTcuNzVdLFsyMy4zMiw1Ny4wMV0sWzI0LjEyLDU3LjAzXSxbMjQuMzEsNTcuNzldLFsyNS4xNiw1Ny45N10sWzI1LjYsNTcuODVdLFsyNi40Niw1Ny40OF0sWzI3LjI5LDU3LjQ3XV1dXX0se246YEVzdG9uaWFgLGEyOmBFRWAsYTM6YEVTVGAscDpgRVNUYCxsOlsyNS44Nyw1OC43Ml0sZzpbW1tbMjcuOTgsNTkuNDhdLFsyOC4xMyw1OS4zXSxbMjcuNDIsNTguNzJdLFsyNy43Miw1Ny43OV0sWzI3LjI5LDU3LjQ3XSxbMjYuNDYsNTcuNDhdLFsyNS42LDU3Ljg1XSxbMjUuMTYsNTcuOTddLFsyNC4zMSw1Ny43OV0sWzI0LjQzLDU4LjM4XSxbMjQuMDYsNTguMjZdLFsyMy40Myw1OC42MV0sWzIzLjM0LDU5LjE5XSxbMjQuNiw1OS40N10sWzI1Ljg2LDU5LjYxXSxbMjYuOTUsNTkuNDVdLFsyNy45OCw1OS40OF1dXV19LHtuOmBHZXJtYW55YCxhMjpgREVgLGEzOmBERVVgLHA6YERgLGw6WzkuNjgsNTAuOTZdLGc6W1tbWzE0LjEyLDUzLjc2XSxbMTQuMzUsNTMuMjVdLFsxNC4wNyw1Mi45OF0sWzE0LjQ0LDUyLjYyXSxbMTQuNjksNTIuMDldLFsxNC42MSw1MS43NV0sWzE1LjAyLDUxLjExXSxbMTQuNTcsNTFdLFsxNC4zMSw1MS4xMl0sWzE0LjA2LDUwLjkzXSxbMTMuMzQsNTAuNzNdLFsxMi45Nyw1MC40OF0sWzEyLjI0LDUwLjI3XSxbMTIuNDIsNDkuOTddLFsxMi41Miw0OS41NV0sWzEzLjAzLDQ5LjMxXSxbMTMuNiw0OC44OF0sWzEzLjI0LDQ4LjQyXSxbMTIuODgsNDguMjldLFsxMy4wMyw0Ny42NF0sWzEyLjkzLDQ3LjQ3XSxbMTIuNjIsNDcuNjddLFsxMi4xNCw0Ny43XSxbMTEuNDMsNDcuNTJdLFsxMC41NCw0Ny41N10sWzEwLjQsNDcuM10sWzkuOSw0Ny41OF0sWzkuNTksNDcuNTNdLFs4LjUyLDQ3LjgzXSxbOC4zMiw0Ny42MV0sWzcuNDcsNDcuNjJdLFs3LjU5LDQ4LjMzXSxbOC4xLDQ5LjAyXSxbNi42Niw0OS4yXSxbNi4xOSw0OS40Nl0sWzYuMjQsNDkuOV0sWzYuMDQsNTAuMTNdLFs2LjE2LDUwLjhdLFs1Ljk5LDUxLjg1XSxbNi41OSw1MS44NV0sWzYuODQsNTIuMjNdLFs3LjA5LDUzLjE0XSxbNi45MSw1My40OF0sWzcuMSw1My42OV0sWzcuOTQsNTMuNzVdLFs4LjEyLDUzLjUzXSxbOC44LDU0LjAyXSxbOC41Nyw1NC40XSxbOC41Myw1NC45Nl0sWzkuMjgsNTQuODNdLFs5LjkyLDU0Ljk4XSxbOS45NCw1NC42XSxbMTAuOTUsNTQuMzZdLFsxMC45NCw1NC4wMV0sWzExLjk2LDU0LjJdLFsxMi41Miw1NC40N10sWzEzLjY1LDU0LjA4XSxbMTQuMTIsNTMuNzZdXV1dfSx7bjpgQnVsZ2FyaWFgLGEyOmBCR2AsYTM6YEJHUmAscDpgQkdgLGw6WzI1LjE2LDQyLjUxXSxnOltbW1syMi42Niw0NC4yM10sWzIyLjk0LDQzLjgyXSxbMjMuMzMsNDMuOV0sWzI0LjEsNDMuNzRdLFsyNS41Nyw0My42OV0sWzI2LjA3LDQzLjk0XSxbMjcuMjQsNDQuMThdLFsyNy45Nyw0My44MV0sWzI4LjU2LDQzLjcxXSxbMjguMDQsNDMuMjldLFsyNy42Nyw0Mi41OF0sWzI4LDQyLjAxXSxbMjcuMTQsNDIuMTRdLFsyNi4xMiw0MS44M10sWzI2LjExLDQxLjMzXSxbMjUuMiw0MS4yM10sWzI0LjQ5LDQxLjU4XSxbMjMuNjksNDEuMzFdLFsyMi45NSw0MS4zNF0sWzIyLjg4LDQyXSxbMjIuMzgsNDIuMzJdLFsyMi41NSw0Mi40Nl0sWzIyLjQ0LDQyLjU4XSxbMjIuNiw0Mi45XSxbMjIuOTksNDMuMjFdLFsyMi41LDQzLjY0XSxbMjIuNDEsNDQuMDFdLFsyMi42Niw0NC4yM11dXV19LHtuOmBHcmVlY2VgLGEyOmBHUmAsYTM6YEdSQ2AscDpgR1JgLGw6WzIxLjczLDM5LjQ5XSxnOltbW1syNi4yOSwzNS4zXSxbMjYuMTYsMzVdLFsyNC43MiwzNC45Ml0sWzI0Ljc0LDM1LjA4XSxbMjMuNTEsMzUuMjhdLFsyMy43LDM1LjcxXSxbMjQuMjUsMzUuMzddLFsyNS4wMywzNS40Ml0sWzI1Ljc3LDM1LjM1XSxbMjUuNzUsMzUuMThdLFsyNi4yOSwzNS4zXV1dLFtbWzIyLjk1LDQxLjM0XSxbMjMuNjksNDEuMzFdLFsyNC40OSw0MS41OF0sWzI1LjIsNDEuMjNdLFsyNi4xMSw0MS4zM10sWzI2LjEyLDQxLjgzXSxbMjYuNiw0MS41Nl0sWzI2LjI5LDQwLjk0XSxbMjYuMDYsNDAuODJdLFsyNS40NSw0MC44NV0sWzI0LjkzLDQwLjk1XSxbMjMuNzEsNDAuNjldLFsyNC40MSw0MC4xMl0sWzIzLjksMzkuOTZdLFsyMy4zNCwzOS45Nl0sWzIyLjgxLDQwLjQ4XSxbMjIuNjMsNDAuMjZdLFsyMi44NSwzOS42Nl0sWzIzLjM1LDM5LjE5XSxbMjIuOTcsMzguOTddLFsyMy41MywzOC41MV0sWzI0LjAzLDM4LjIyXSxbMjQuMDQsMzcuNjZdLFsyMy4xMiwzNy45Ml0sWzIzLjQxLDM3LjQxXSxbMjIuNzcsMzcuMzFdLFsyMy4xNSwzNi40Ml0sWzIyLjQ5LDM2LjQxXSxbMjEuNjcsMzYuODRdLFsyMS4zLDM3LjY0XSxbMjEuMTIsMzguMzFdLFsyMC43MywzOC43N10sWzIwLjIyLDM5LjM0XSxbMjAuMTUsMzkuNjJdLFsyMC42Miw0MC4xMV0sWzIwLjY3LDQwLjQ0XSxbMjEsNDAuNThdLFsyMS4wMiw0MC44NF0sWzIxLjY3LDQwLjkzXSxbMjIuMDYsNDEuMTVdLFsyMi42LDQxLjEzXSxbMjIuNzYsNDEuM10sWzIyLjk1LDQxLjM0XV1dXX0se246YFR1cmtleWAsYTI6YFRSYCxhMzpgVFVSYCxwOmBUUmAsbDpbMzQuNTEsMzkuMzVdLGc6W1tbWzQ0Ljc3LDM3LjE3XSxbNDQuMjksMzddLFs0My45NCwzNy4yNl0sWzQyLjc4LDM3LjM5XSxbNDIuMzUsMzcuMjNdLFs0MS4yMSwzNy4wN10sWzQwLjY3LDM3LjA5XSxbMzkuNTIsMzYuNzJdLFszOC43LDM2LjcxXSxbMzguMTcsMzYuOV0sWzM3LjA3LDM2LjYyXSxbMzYuNzQsMzYuODJdLFszNi42OSwzNi4yNl0sWzM2LjQyLDM2LjA0XSxbMzYuMTUsMzUuODJdLFszNS43OCwzNi4yN10sWzM2LjE2LDM2LjY1XSxbMzUuNTUsMzYuNTddLFszNC43MSwzNi44XSxbMzQuMDMsMzYuMjJdLFszMi41MSwzNi4xMV0sWzMxLjcsMzYuNjRdLFszMC42MiwzNi42OF0sWzMwLjM5LDM2LjI2XSxbMjkuNywzNi4xNF0sWzI4LjczLDM2LjY4XSxbMjcuNjQsMzYuNjZdLFsyNy4wNSwzNy42NV0sWzI2LjMyLDM4LjIxXSxbMjYuOCwzOC45OV0sWzI2LjE3LDM5LjQ2XSxbMjcuMjgsNDAuNDJdLFsyOC44Miw0MC40Nl0sWzI5LjI0LDQxLjIyXSxbMzEuMTUsNDEuMDldLFszMi4zNSw0MS43NF0sWzMzLjUxLDQyLjAyXSxbMzUuMTcsNDIuMDRdLFszNi45MSw0MS4zNF0sWzM4LjM1LDQwLjk1XSxbMzkuNTEsNDEuMV0sWzQwLjM3LDQxLjAxXSxbNDEuNTUsNDEuNTRdLFs0Mi42Miw0MS41OF0sWzQzLjU4LDQxLjA5XSxbNDMuNzUsNDAuNzRdLFs0My42Niw0MC4yNV0sWzQ0LjQsNDAuMDFdLFs0NC43OSwzOS43MV0sWzQ0LjExLDM5LjQzXSxbNDQuNDIsMzguMjhdLFs0NC4yMywzNy45N10sWzQ0Ljc3LDM3LjE3XV1dLFtbWzI2LjEyLDQxLjgzXSxbMjcuMTQsNDIuMTRdLFsyOCw0Mi4wMV0sWzI4LjEyLDQxLjYyXSxbMjguOTksNDEuM10sWzI4LjgxLDQxLjA1XSxbMjcuNjIsNDFdLFsyNy4xOSw0MC42OV0sWzI2LjM2LDQwLjE1XSxbMjYuMDQsNDAuNjJdLFsyNi4wNiw0MC44Ml0sWzI2LjI5LDQwLjk0XSxbMjYuNiw0MS41Nl0sWzI2LjEyLDQxLjgzXV1dXX0se246YEFsYmFuaWFgLGEyOmBBTGAsYTM6YEFMQmAscDpgQUxgLGw6WzIwLjExLDQwLjY1XSxnOltbW1syMS4wMiw0MC44NF0sWzIxLDQwLjU4XSxbMjAuNjcsNDAuNDRdLFsyMC42Miw0MC4xMV0sWzIwLjE1LDM5LjYyXSxbMTkuOTgsMzkuNjldLFsxOS45NiwzOS45Ml0sWzE5LjQxLDQwLjI1XSxbMTkuMzIsNDAuNzNdLFsxOS40LDQxLjQxXSxbMTkuNTQsNDEuNzJdLFsxOS4zNyw0MS44OF0sWzE5LjMsNDIuMl0sWzE5Ljc0LDQyLjY5XSxbMTkuOCw0Mi41XSxbMjAuMDcsNDIuNTldLFsyMC4yOCw0Mi4zMl0sWzIwLjUyLDQyLjIyXSxbMjAuNTksNDEuODZdLFsyMC40Niw0MS41Ml0sWzIwLjYxLDQxLjA5XSxbMjEuMDIsNDAuODRdXV1dfSx7bjpgQ3JvYXRpYWAsYTI6YEhSYCxhMzpgSFJWYCxwOmBIUmAsbDpbMTYuMzcsNDUuODFdLGc6W1tbWzE2LjU2LDQ2LjVdLFsxNi44OCw0Ni4zOF0sWzE3LjYzLDQ1Ljk1XSxbMTguNDYsNDUuNzZdLFsxOC44Myw0NS45MV0sWzE5LjA3LDQ1LjUyXSxbMTkuMzksNDUuMjRdLFsxOS4wMSw0NC44Nl0sWzE4LjU1LDQ1LjA4XSxbMTcuODYsNDUuMDddLFsxNyw0NS4yM10sWzE2LjUzLDQ1LjIxXSxbMTYuMzIsNDVdLFsxNS45Niw0NS4yM10sWzE1Ljc1LDQ0LjgyXSxbMTYuMjQsNDQuMzVdLFsxNi40Niw0NC4wNF0sWzE2LjkyLDQzLjY3XSxbMTcuMyw0My40NV0sWzE3LjY3LDQzLjAzXSxbMTguNTYsNDIuNjVdLFsxOC40NSw0Mi40OF0sWzE3LjUxLDQyLjg1XSxbMTYuOTMsNDMuMjFdLFsxNi4wMiw0My41MV0sWzE1LjE3LDQ0LjI0XSxbMTUuMzgsNDQuMzJdLFsxNC45Miw0NC43NF0sWzE0LjksNDUuMDhdLFsxNC4yNiw0NS4yM10sWzEzLjk1LDQ0LjhdLFsxMy42Niw0NS4xNF0sWzEzLjY4LDQ1LjQ4XSxbMTMuNzIsNDUuNV0sWzE0LjQxLDQ1LjQ3XSxbMTQuNiw0NS42M10sWzE0Ljk0LDQ1LjQ3XSxbMTUuMzMsNDUuNDVdLFsxNS4zMiw0NS43M10sWzE1LjY3LDQ1LjgzXSxbMTUuNzcsNDYuMjRdLFsxNi41Niw0Ni41XV1dXX0se246YFN3aXR6ZXJsYW5kYCxhMjpgQ0hgLGEzOmBDSEVgLHA6YENIYCxsOls3LjQ2LDQ2LjcyXSxnOltbW1s5LjU5LDQ3LjUzXSxbOS42Myw0Ny4zNV0sWzkuNDgsNDcuMV0sWzkuOTMsNDYuOTJdLFsxMC40NCw0Ni44OV0sWzEwLjM2LDQ2LjQ4XSxbOS45Miw0Ni4zMV0sWzkuMTgsNDYuNDRdLFs4Ljk3LDQ2LjA0XSxbOC40OSw0Ni4wMV0sWzguMzIsNDYuMTZdLFs3Ljc2LDQ1LjgyXSxbNy4yNyw0NS43OF0sWzYuODQsNDUuOTldLFs2LjUsNDYuNDNdLFs2LjAyLDQ2LjI3XSxbNi4wNCw0Ni43M10sWzYuNzcsNDcuMjldLFs2Ljc0LDQ3LjU0XSxbNy4xOSw0Ny40NV0sWzcuNDcsNDcuNjJdLFs4LjMyLDQ3LjYxXSxbOC41Miw0Ny44M10sWzkuNTksNDcuNTNdXV1dfSx7bjpgTHV4ZW1ib3VyZ2AsYTI6YExVYCxhMzpgTFVYYCxwOmBMYCxsOls2LjA4LDQ5LjczXSxnOltbW1s2LjA0LDUwLjEzXSxbNi4yNCw0OS45XSxbNi4xOSw0OS40Nl0sWzUuOSw0OS40NF0sWzUuNjcsNDkuNTNdLFs1Ljc4LDUwLjA5XSxbNi4wNCw1MC4xM11dXV19LHtuOmBCZWxnaXVtYCxhMjpgQkVgLGEzOmBCRUxgLHA6YEJgLGw6WzQuOCw1MC43OV0sZzpbW1tbNi4xNiw1MC44XSxbNi4wNCw1MC4xM10sWzUuNzgsNTAuMDldLFs1LjY3LDQ5LjUzXSxbNC44LDQ5Ljk5XSxbNC4yOSw0OS45MV0sWzMuNTksNTAuMzhdLFszLjEyLDUwLjc4XSxbMi42Niw1MC44XSxbMi41MSw1MS4xNV0sWzMuMzEsNTEuMzVdLFszLjMyLDUxLjM1XSxbMy4zMSw1MS4zNV0sWzQuMDUsNTEuMjddLFs0Ljk3LDUxLjQ4XSxbNS42MSw1MS4wNF0sWzYuMTYsNTAuOF1dXV19LHtuOmBOZXRoZXJsYW5kc2AsYTI6YE5MYCxhMzpgTkxEYCxwOmBOTGAsbDpbNS42MSw1Mi40Ml0sZzpbW1tbNi45MSw1My40OF0sWzcuMDksNTMuMTRdLFs2Ljg0LDUyLjIzXSxbNi41OSw1MS44NV0sWzUuOTksNTEuODVdLFs2LjE2LDUwLjhdLFs1LjYxLDUxLjA0XSxbNC45Nyw1MS40OF0sWzQuMDUsNTEuMjddLFszLjMxLDUxLjM1XSxbMy4zMiw1MS4zNV0sWzMuODMsNTEuNjJdLFs0LjcxLDUzLjA5XSxbNi4wNyw1My41MV0sWzYuOTEsNTMuNDhdXV1dfSx7bjpgUG9ydHVnYWxgLGEyOmBQVGAsYTM6YFBSVGAscDpgUGAsbDpbLTguMjcsMzkuNjFdLGc6W1tbWy05LjAzLDQxLjg4XSxbLTguNjcsNDIuMTNdLFstOC4yNiw0Mi4yOF0sWy04LjAxLDQxLjc5XSxbLTcuNDIsNDEuNzldLFstNy4yNSw0MS45Ml0sWy02LjY3LDQxLjg4XSxbLTYuMzksNDEuMzhdLFstNi44NSw0MS4xMV0sWy02Ljg2LDQwLjMzXSxbLTcuMDMsNDAuMThdLFstNy4wNywzOS43MV0sWy03LjUsMzkuNjNdLFstNy4xLDM5LjAzXSxbLTcuMzcsMzguMzddLFstNy4wMywzOC4wOF0sWy03LjE3LDM3LjhdLFstNy41NCwzNy40M10sWy03LjQ1LDM3LjFdLFstNy44NiwzNi44NF0sWy04LjM4LDM2Ljk4XSxbLTguOSwzNi44N10sWy04Ljc1LDM3LjY1XSxbLTguODQsMzguMjddLFstOS4yOSwzOC4zNl0sWy05LjUzLDM4Ljc0XSxbLTkuNDUsMzkuMzldLFstOS4wNSwzOS43Nl0sWy04Ljk4LDQwLjE2XSxbLTguNzcsNDAuNzZdLFstOC43OSw0MS4xOF0sWy04Ljk5LDQxLjU0XSxbLTkuMDMsNDEuODhdXV1dfSx7bjpgU3BhaW5gLGEyOmBFU2AsYTM6YEVTUGAscDpgRWAsbDpbLTMuNDYsNDAuMDldLGc6W1tbWy03LjQ1LDM3LjFdLFstNy41NCwzNy40M10sWy03LjE3LDM3LjhdLFstNy4wMywzOC4wOF0sWy03LjM3LDM4LjM3XSxbLTcuMSwzOS4wM10sWy03LjUsMzkuNjNdLFstNy4wNywzOS43MV0sWy03LjAzLDQwLjE4XSxbLTYuODYsNDAuMzNdLFstNi44NSw0MS4xMV0sWy02LjM5LDQxLjM4XSxbLTYuNjcsNDEuODhdLFstNy4yNSw0MS45Ml0sWy03LjQyLDQxLjc5XSxbLTguMDEsNDEuNzldLFstOC4yNiw0Mi4yOF0sWy04LjY3LDQyLjEzXSxbLTkuMDMsNDEuODhdLFstOC45OCw0Mi41OV0sWy05LjM5LDQzLjAzXSxbLTcuOTgsNDMuNzVdLFstNi43NSw0My41N10sWy01LjQxLDQzLjU3XSxbLTQuMzUsNDMuNF0sWy0zLjUyLDQzLjQ2XSxbLTEuOSw0My40Ml0sWy0xLjUsNDMuMDNdLFsuMzQsNDIuNThdLFsuNyw0Mi44XSxbMS44Myw0Mi4zNF0sWzIuOTksNDIuNDddLFszLjA0LDQxLjg5XSxbMi4wOSw0MS4yM10sWy44MSw0MS4wMV0sWy43Miw0MC42OF0sWy4xMSw0MC4xMl0sWy0uMjgsMzkuMzFdLFsuMTEsMzguNzRdLFstLjQ3LDM4LjI5XSxbLS42OCwzNy42NF0sWy0xLjQ0LDM3LjQ0XSxbLTIuMTUsMzYuNjddLFstMy40MiwzNi42Nl0sWy00LjM3LDM2LjY4XSxbLTUsMzYuMzJdLFstNS4zOCwzNS45NV0sWy01Ljg3LDM2LjAzXSxbLTYuMjQsMzYuMzddLFstNi41MiwzNi45NF0sWy03LjQ1LDM3LjFdXV1dfSx7bjpgSXJlbGFuZGAsYTI6YElFYCxhMzpgSVJMYCxwOmBJUkxgLGw6Wy03LjgsNTMuMDhdLGc6W1tbWy02LjIsNTMuODddLFstNi4wMyw1My4xNV0sWy02Ljc5LDUyLjI2XSxbLTguNTYsNTEuNjddLFstOS45OCw1MS44Ml0sWy05LjE3LDUyLjg2XSxbLTkuNjksNTMuODhdLFstOC4zMyw1NC42Nl0sWy03LjU3LDU1LjEzXSxbLTcuMzcsNTQuNl0sWy03LjU3LDU0LjA2XSxbLTYuOTUsNTQuMDddLFstNi4yLDUzLjg3XV1dXX0se246YE5ldyBDYWxlZG9uaWFgLGEyOmBOQ2AsYTM6YE5DTGAscDpgTkNgLGw6WzE2NS4wOCwtMjEuMDZdLGc6W1tbWzE2NS43OCwtMjEuMDhdLFsxNjYuNiwtMjEuN10sWzE2Ny4xMiwtMjIuMTZdLFsxNjYuNzQsLTIyLjRdLFsxNjYuMTksLTIyLjEzXSxbMTY1LjQ3LC0yMS42OF0sWzE2NC44MywtMjEuMTVdLFsxNjQuMTcsLTIwLjQ0XSxbMTY0LjAzLC0yMC4xMV0sWzE2NC40NiwtMjAuMTJdLFsxNjUuMDIsLTIwLjQ2XSxbMTY1LjQ2LC0yMC44XSxbMTY1Ljc4LC0yMS4wOF1dXV19LHtuOmBTb2xvbW9uIElzbGFuZHNgLGEyOmBTQmAsYTM6YFNMQmAscDpgU0JgLGw6WzE1OS4xNywtOC4wM10sZzpbW1tbMTYyLjEyLC0xMC40OF0sWzE2Mi40LC0xMC44M10sWzE2MS43LC0xMC44Ml0sWzE2MS4zMiwtMTAuMl0sWzE2MS45MiwtMTAuNDVdLFsxNjIuMTIsLTEwLjQ4XV1dLFtbWzE2MS42OCwtOS42XSxbMTYxLjUzLC05Ljc4XSxbMTYwLjc5LC04LjkyXSxbMTYwLjU4LC04LjMyXSxbMTYwLjkyLC04LjMyXSxbMTYxLjI4LC05LjEyXSxbMTYxLjY4LC05LjZdXV0sW1tbMTYwLjg1LC05Ljg3XSxbMTYwLjQ2LC05LjldLFsxNTkuODUsLTkuNzldLFsxNTkuNjQsLTkuNjRdLFsxNTkuNywtOS4yNF0sWzE2MC4zNiwtOS40XSxbMTYwLjY5LC05LjYxXSxbMTYwLjg1LC05Ljg3XV1dLFtbWzE1OS42NCwtOC4wMl0sWzE1OS44OCwtOC4zNF0sWzE1OS45MiwtOC41NF0sWzE1OS4xMywtOC4xMV0sWzE1OC41OSwtNy43NV0sWzE1OC4yMSwtNy40Ml0sWzE1OC4zNiwtNy4zMl0sWzE1OC44MiwtNy41Nl0sWzE1OS42NCwtOC4wMl1dXSxbW1sxNTcuMTQsLTcuMDJdLFsxNTcuNTQsLTcuMzVdLFsxNTcuMzQsLTcuNF0sWzE1Ni45LC03LjE4XSxbMTU2LjQ5LC02Ljc3XSxbMTU2LjU0LC02LjZdLFsxNTcuMTQsLTcuMDJdXV1dfSx7bjpgTmV3IFplYWxhbmRgLGEyOmBOWmAsYTM6YE5aTGAscDpgTlpgLGw6WzE3Mi43OSwtMzkuNzZdLGc6W1tbWzE3Ni44OSwtNDAuMDddLFsxNzYuNTEsLTQwLjZdLFsxNzYuMDEsLTQxLjI5XSxbMTc1LjI0LC00MS42OV0sWzE3NS4wNywtNDEuNDNdLFsxNzQuNjUsLTQxLjI4XSxbMTc1LjIzLC00MC40Nl0sWzE3NC45LC0zOS45MV0sWzE3My44MiwtMzkuNTFdLFsxNzMuODUsLTM5LjE1XSxbMTc0LjU3LC0zOC44XSxbMTc0Ljc0LC0zOC4wM10sWzE3NC43LC0zNy4zOF0sWzE3NC4yOSwtMzYuNzFdLFsxNzQuMzIsLTM2LjUzXSxbMTczLjg0LC0zNi4xMl0sWzE3My4wNSwtMzUuMjRdLFsxNzIuNjQsLTM0LjUzXSxbMTczLjAxLC0zNC40NV0sWzE3My41NSwtMzUuMDFdLFsxNzQuMzMsLTM1LjI3XSxbMTc0LjYxLC0zNi4xNl0sWzE3NS4zNCwtMzcuMjFdLFsxNzUuMzYsLTM2LjUzXSxbMTc1LjgxLC0zNi44XSxbMTc1Ljk2LC0zNy41Nl0sWzE3Ni43NiwtMzcuODhdLFsxNzcuNDQsLTM3Ljk2XSxbMTc4LjAxLC0zNy41OF0sWzE3OC41MiwtMzcuN10sWzE3OC4yNywtMzguNThdLFsxNzcuOTcsLTM5LjE3XSxbMTc3LjIxLC0zOS4xNV0sWzE3Ni45NCwtMzkuNDVdLFsxNzcuMDMsLTM5Ljg4XSxbMTc2Ljg5LC00MC4wN11dXSxbW1sxNjkuNjcsLTQzLjU2XSxbMTcwLjUyLC00My4wM10sWzE3MS4xMywtNDIuNTFdLFsxNzEuNTcsLTQxLjc3XSxbMTcxLjk1LC00MS41MV0sWzE3Mi4xLC00MC45Nl0sWzE3Mi44LC00MC40OV0sWzE3My4wMiwtNDAuOTJdLFsxNzMuMjUsLTQxLjMzXSxbMTczLjk2LC00MC45M10sWzE3NC4yNSwtNDEuMzVdLFsxNzQuMjUsLTQxLjc3XSxbMTczLjg4LC00Mi4yM10sWzE3My4yMiwtNDIuOTddLFsxNzIuNzEsLTQzLjM3XSxbMTczLjA4LC00My44NV0sWzE3Mi4zMSwtNDMuODddLFsxNzEuNDUsLTQ0LjI0XSxbMTcxLjE5LC00NC45XSxbMTcwLjYyLC00NS45MV0sWzE2OS44MywtNDYuMzZdLFsxNjkuMzMsLTQ2LjY0XSxbMTY4LjQxLC00Ni42Ml0sWzE2Ny43NiwtNDYuMjldLFsxNjYuNjgsLTQ2LjIyXSxbMTY2LjUxLC00NS44NV0sWzE2Ny4wNSwtNDUuMTFdLFsxNjguMywtNDQuMTJdLFsxNjguOTUsLTQzLjk0XSxbMTY5LjY3LC00My41Nl1dXV19LHtuOmBBdXN0cmFsaWFgLGEyOmBBVWAsYTM6YEFVU2AscDpgQVVgLGw6WzEzNC4wNSwtMjQuMTNdLGc6W1tbWzE0Ny42OSwtNDAuODFdLFsxNDguMjksLTQwLjg4XSxbMTQ4LjM2LC00Mi4wNl0sWzE0OC4wMiwtNDIuNDFdLFsxNDcuOTEsLTQzLjIxXSxbMTQ3LjU2LC00Mi45NF0sWzE0Ni44NywtNDMuNjNdLFsxNDYuNjYsLTQzLjU4XSxbMTQ2LjA1LC00My41NV0sWzE0NS40MywtNDIuNjldLFsxNDUuMywtNDIuMDNdLFsxNDQuNzIsLTQxLjE2XSxbMTQ0Ljc0LC00MC43XSxbMTQ1LjQsLTQwLjc5XSxbMTQ2LjM2LC00MS4xNF0sWzE0Ni45MSwtNDFdLFsxNDcuNjksLTQwLjgxXV1dLFtbWzEyNi4xNSwtMzIuMjJdLFsxMjUuMDksLTMyLjczXSxbMTI0LjIyLC0zMi45Nl0sWzEyNC4wMywtMzMuNDhdLFsxMjMuNjYsLTMzLjg5XSxbMTIyLjgxLC0zMy45MV0sWzEyMi4xOCwtMzRdLFsxMjEuMywtMzMuODJdLFsxMjAuNTgsLTMzLjkzXSxbMTE5Ljg5LC0zMy45OF0sWzExOS4zLC0zNC41MV0sWzExOS4wMSwtMzQuNDZdLFsxMTguNTEsLTM0Ljc1XSxbMTE4LjAyLC0zNS4wNl0sWzExNy4zLC0zNS4wM10sWzExNi42MywtMzUuMDNdLFsxMTUuNTYsLTM0LjM5XSxbMTE1LjAzLC0zNC4yXSxbMTE1LjA1LC0zMy42Ml0sWzExNS41NSwtMzMuNDldLFsxMTUuNzEsLTMzLjI2XSxbMTE1LjY4LC0zMi45XSxbMTE1LjgsLTMyLjIxXSxbMTE1LjY5LC0zMS42MV0sWzExNS4xNiwtMzAuNl0sWzExNSwtMzAuMDNdLFsxMTUuMDQsLTI5LjQ2XSxbMTE0LjY0LC0yOC44MV0sWzExNC42MiwtMjguNTJdLFsxMTQuMTcsLTI4LjEyXSxbMTE0LjA1LC0yNy4zM10sWzExMy40OCwtMjYuNTRdLFsxMTMuMzQsLTI2LjEyXSxbMTEzLjc4LC0yNi41NV0sWzExMy40NCwtMjUuNjJdLFsxMTMuOTQsLTI1LjkxXSxbMTE0LjIzLC0yNi4zXSxbMTE0LjIyLC0yNS43OV0sWzExMy43MiwtMjVdLFsxMTMuNjMsLTI0LjY4XSxbMTEzLjM5LC0yNC4zOF0sWzExMy41LC0yMy44MV0sWzExMy43MSwtMjMuNTZdLFsxMTMuODQsLTIzLjA2XSxbMTEzLjc0LC0yMi40OF0sWzExNC4xNSwtMjEuNzZdLFsxMTQuMjMsLTIyLjUyXSxbMTE0LjY1LC0yMS44M10sWzExNS40NiwtMjEuNV0sWzExNS45NSwtMjEuMDddLFsxMTYuNzEsLTIwLjddLFsxMTcuMTcsLTIwLjYyXSxbMTE3LjQ0LC0yMC43NV0sWzExOC4yMywtMjAuMzddLFsxMTguODQsLTIwLjI2XSxbMTE4Ljk5LC0yMC4wNF0sWzExOS4yNSwtMTkuOTVdLFsxMTkuODEsLTE5Ljk4XSxbMTIwLjg2LC0xOS42OF0sWzEyMS40LC0xOS4yNF0sWzEyMS42NiwtMTguNzFdLFsxMjIuMjQsLTE4LjJdLFsxMjIuMjksLTE3LjhdLFsxMjIuMzEsLTE3LjI1XSxbMTIzLjAxLC0xNi40MV0sWzEyMy40MywtMTcuMjddLFsxMjMuODYsLTE3LjA3XSxbMTIzLjUsLTE2LjZdLFsxMjMuODIsLTE2LjExXSxbMTI0LjI2LC0xNi4zM10sWzEyNC4zOCwtMTUuNTddLFsxMjQuOTMsLTE1LjA4XSxbMTI1LjE3LC0xNC42OF0sWzEyNS42NywtMTQuNTFdLFsxMjUuNjksLTE0LjIzXSxbMTI2LjEzLC0xNC4zNV0sWzEyNi4xNCwtMTQuMV0sWzEyNi41OCwtMTMuOTVdLFsxMjcuMDcsLTEzLjgyXSxbMTI3LjgsLTE0LjI4XSxbMTI4LjM2LC0xNC44N10sWzEyOC45OSwtMTQuODhdLFsxMjkuNjIsLTE0Ljk3XSxbMTI5LjQxLC0xNC40Ml0sWzEyOS44OSwtMTMuNjJdLFsxMzAuMzQsLTEzLjM2XSxbMTMwLjE4LC0xMy4xMV0sWzEzMC42MiwtMTIuNTRdLFsxMzEuMjIsLTEyLjE4XSxbMTMxLjc0LC0xMi4zXSxbMTMyLjU4LC0xMi4xMV0sWzEzMi41NiwtMTEuNl0sWzEzMS44MiwtMTEuMjddLFsxMzIuMzYsLTExLjEzXSxbMTMzLjAyLC0xMS4zOF0sWzEzMy41NSwtMTEuNzldLFsxMzQuMzksLTEyLjA0XSxbMTM0LjY4LC0xMS45NF0sWzEzNS4zLC0xMi4yNV0sWzEzNS44OCwtMTEuOTZdLFsxMzYuMjYsLTEyLjA1XSxbMTM2LjQ5LC0xMS44Nl0sWzEzNi45NSwtMTIuMzVdLFsxMzYuNjksLTEyLjg5XSxbMTM2LjMxLC0xMy4yOV0sWzEzNS45NiwtMTMuMzJdLFsxMzYuMDgsLTEzLjcyXSxbMTM1Ljc4LC0xNC4yMl0sWzEzNS40MywtMTQuNzJdLFsxMzUuNSwtMTVdLFsxMzYuMywtMTUuNTVdLFsxMzcuMDcsLTE1Ljg3XSxbMTM3LjU4LC0xNi4yMl0sWzEzOC4zLC0xNi44MV0sWzEzOC41OSwtMTYuODFdLFsxMzkuMTEsLTE3LjA2XSxbMTM5LjI2LC0xNy4zN10sWzE0MC4yMiwtMTcuNzFdLFsxNDAuODgsLTE3LjM3XSxbMTQxLjA3LC0xNi44M10sWzE0MS4yNywtMTYuMzldLFsxNDEuNCwtMTUuODRdLFsxNDEuNywtMTUuMDRdLFsxNDEuNTYsLTE0LjU2XSxbMTQxLjY0LC0xNC4yN10sWzE0MS41MiwtMTMuN10sWzE0MS42NSwtMTIuOTRdLFsxNDEuODQsLTEyLjc0XSxbMTQxLjY5LC0xMi40MV0sWzE0MS45MywtMTEuODhdLFsxNDIuMTIsLTExLjMzXSxbMTQyLjE0LC0xMS4wNF0sWzE0Mi41MiwtMTAuNjddLFsxNDIuOCwtMTEuMTZdLFsxNDIuODcsLTExLjc4XSxbMTQzLjEyLC0xMS45MV0sWzE0My4xNiwtMTIuMzNdLFsxNDMuNTIsLTEyLjgzXSxbMTQzLjYsLTEzLjRdLFsxNDMuNTYsLTEzLjc2XSxbMTQzLjkyLC0xNC41NV0sWzE0NC41NiwtMTQuMTddLFsxNDQuODksLTE0LjU5XSxbMTQ1LjM3LC0xNC45OF0sWzE0NS4yNywtMTUuNDNdLFsxNDUuNDksLTE2LjI5XSxbMTQ1LjY0LC0xNi43OF0sWzE0NS44OSwtMTYuOTFdLFsxNDYuMTYsLTE3Ljc2XSxbMTQ2LjA2LC0xOC4yOF0sWzE0Ni4zOSwtMTguOTZdLFsxNDcuNDcsLTE5LjQ4XSxbMTQ4LjE4LC0xOS45Nl0sWzE0OC44NSwtMjAuMzldLFsxNDguNzIsLTIwLjYzXSxbMTQ5LjI5LC0yMS4yNl0sWzE0OS42OCwtMjIuMzRdLFsxNTAuMDgsLTIyLjEyXSxbMTUwLjQ4LC0yMi41Nl0sWzE1MC43MywtMjIuNF0sWzE1MC45LC0yMy40Nl0sWzE1MS42MSwtMjQuMDhdLFsxNTIuMDcsLTI0LjQ2XSxbMTUyLjg2LC0yNS4yN10sWzE1My4xNCwtMjYuMDddLFsxNTMuMTYsLTI2LjY0XSxbMTUzLjA5LC0yNy4yNl0sWzE1My41NywtMjguMTFdLFsxNTMuNTEsLTI5XSxbMTUzLjM0LC0yOS40Nl0sWzE1My4wNywtMzAuMzVdLFsxNTMuMDksLTMwLjkyXSxbMTUyLjg5LC0zMS42NF0sWzE1Mi40NSwtMzIuNTVdLFsxNTEuNzEsLTMzLjA0XSxbMTUxLjM0LC0zMy44Ml0sWzE1MS4wMSwtMzQuMzFdLFsxNTAuNzEsLTM1LjE3XSxbMTUwLjMzLC0zNS42N10sWzE1MC4wOCwtMzYuNDJdLFsxNDkuOTUsLTM3LjExXSxbMTUwLC0zNy40M10sWzE0OS40MiwtMzcuNzddLFsxNDguMywtMzcuODFdLFsxNDcuMzgsLTM4LjIyXSxbMTQ2LjkyLC0zOC42MV0sWzE0Ni4zMiwtMzkuMDRdLFsxNDUuNDksLTM4LjU5XSxbMTQ0Ljg4LC0zOC40Ml0sWzE0NS4wMywtMzcuOV0sWzE0NC40OSwtMzguMDldLFsxNDMuNjEsLTM4LjgxXSxbMTQyLjc1LC0zOC41NF0sWzE0Mi4xOCwtMzguMzhdLFsxNDEuNjEsLTM4LjMxXSxbMTQwLjY0LC0zOC4wMl0sWzEzOS45OSwtMzcuNF0sWzEzOS44MSwtMzYuNjRdLFsxMzkuNTcsLTM2LjE0XSxbMTM5LjA4LC0zNS43M10sWzEzOC4xMiwtMzUuNjFdLFsxMzguNDUsLTM1LjEzXSxbMTM4LjIxLC0zNC4zOF0sWzEzNy43MiwtMzUuMDhdLFsxMzYuODMsLTM1LjI2XSxbMTM3LjM1LC0zNC43MV0sWzEzNy41LC0zNC4xM10sWzEzNy44OSwtMzMuNjRdLFsxMzcuODEsLTMyLjldLFsxMzcsLTMzLjc1XSxbMTM2LjM3LC0zNC4wOV0sWzEzNS45OSwtMzQuODldLFsxMzUuMjEsLTM0LjQ4XSxbMTM1LjI0LC0zMy45NV0sWzEzNC42MSwtMzMuMjJdLFsxMzQuMDksLTMyLjg1XSxbMTM0LjI3LC0zMi42Ml0sWzEzMi45OSwtMzIuMDFdLFsxMzIuMjksLTMxLjk4XSxbMTMxLjMzLC0zMS41XSxbMTI5LjU0LC0zMS41OV0sWzEyOC4yNCwtMzEuOTVdLFsxMjcuMSwtMzIuMjhdLFsxMjYuMTUsLTMyLjIyXV1dXX0se246YFNyaSBMYW5rYWAsYTI6YExLYCxhMzpgTEtBYCxwOmBMS2AsbDpbODAuNyw3LjU4XSxnOltbW1s4MS43OSw3LjUyXSxbODEuNjQsNi40OF0sWzgxLjIyLDYuMl0sWzgwLjM1LDUuOTddLFs3OS44Nyw2Ljc2XSxbNzkuNyw4LjJdLFs4MC4xNSw5LjgyXSxbODAuODQsOS4yN10sWzgxLjMsOC41Nl0sWzgxLjc5LDcuNTJdXV1dfSx7bjpgQ2hpbmFgLGEyOmBDTmAsYTM6YENITmAscDpgQ05gLGw6WzEwNi4zNCwzMi41XSxnOltbW1sxMDkuNDgsMTguMl0sWzEwOC42NiwxOC41MV0sWzEwOC42MywxOS4zN10sWzEwOS4xMiwxOS44Ml0sWzExMC4yMSwyMC4xXSxbMTEwLjc5LDIwLjA4XSxbMTExLjAxLDE5LjddLFsxMTAuNTcsMTkuMjZdLFsxMTAuMzQsMTguNjhdLFsxMDkuNDgsMTguMl1dXSxbW1s4MC4yNiw0Mi4zNV0sWzgwLjE4LDQyLjkyXSxbODAuODcsNDMuMThdLFs3OS45Nyw0NC45Ml0sWzgxLjk1LDQ1LjMyXSxbODIuNDYsNDUuNTRdLFs4My4xOCw0Ny4zM10sWzg1LjE2LDQ3XSxbODUuNzIsNDcuNDVdLFs4NS43Nyw0OC40Nl0sWzg2LjYsNDguNTVdLFs4Ny4zNiw0OS4yMV0sWzg3Ljc1LDQ5LjNdLFs4OC4wMSw0OC42XSxbODguODUsNDguMDddLFs5MC4yOCw0Ny42OV0sWzkwLjk3LDQ2Ljg5XSxbOTAuNTksNDUuNzJdLFs5MC45NSw0NS4yOV0sWzkyLjEzLDQ1LjEyXSxbOTMuNDgsNDQuOThdLFs5NC42OSw0NC4zNV0sWzk1LjMxLDQ0LjI0XSxbOTUuNzYsNDMuMzJdLFs5Ni4zNSw0Mi43M10sWzk3LjQ1LDQyLjc1XSxbOTkuNTIsNDIuNTJdLFsxMDAuODUsNDIuNjZdLFsxMDEuODMsNDIuNTFdLFsxMDMuMzEsNDEuOTFdLFsxMDQuNTIsNDEuOTFdLFsxMDQuOTYsNDEuNl0sWzEwNi4xMyw0Mi4xM10sWzEwNy43NCw0Mi40OF0sWzEwOS4yNCw0Mi41Ml0sWzExMC40MSw0Mi44N10sWzExMS4xMyw0My40MV0sWzExMS44Myw0My43NF0sWzExMS42Nyw0NC4wN10sWzExMS4zNSw0NC40Nl0sWzExMS44Nyw0NS4xXSxbMTEyLjQ0LDQ1LjAxXSxbMTEzLjQ2LDQ0LjgxXSxbMTE0LjQ2LDQ1LjM0XSxbMTE1Ljk5LDQ1LjczXSxbMTE2LjcyLDQ2LjM5XSxbMTE3LjQyLDQ2LjY3XSxbMTE4Ljg3LDQ2LjgxXSxbMTE5LjY2LDQ2LjY5XSxbMTE5Ljc3LDQ3LjA1XSxbMTE4Ljg3LDQ3Ljc1XSxbMTE4LjA2LDQ4LjA3XSxbMTE3LjMsNDcuN10sWzExNi4zMSw0Ny44NV0sWzExNS43NCw0Ny43M10sWzExNS40OSw0OC4xNF0sWzExNi4xOSw0OS4xM10sWzExNi42OCw0OS44OV0sWzExNy44OCw0OS41MV0sWzExOS4yOSw1MC4xNF0sWzExOS4yOCw1MC41OF0sWzEyMC4xOCw1MS42NF0sWzEyMC43NCw1MS45Nl0sWzEyMC43Myw1Mi41Ml0sWzEyMC4xOCw1Mi43NV0sWzEyMSw1My4yNV0sWzEyMi4yNSw1My40M10sWzEyMy41Nyw1My40Nl0sWzEyNS4wNyw1My4xNl0sWzEyNS45NSw1Mi43OV0sWzEyNi41Niw1MS43OF0sWzEyNi45NCw1MS4zNV0sWzEyNy4yOSw1MC43NF0sWzEyNy42Niw0OS43Nl0sWzEyOS40LDQ5LjQ0XSxbMTMwLjU4LDQ4LjczXSxbMTMwLjk5LDQ3Ljc5XSxbMTMyLjUxLDQ3Ljc5XSxbMTMzLjM3LDQ4LjE4XSxbMTM1LjAzLDQ4LjQ4XSxbMTM0LjUsNDcuNThdLFsxMzQuMTEsNDcuMjFdLFsxMzMuNzcsNDYuMTJdLFsxMzMuMSw0NS4xNF0sWzEzMS44OCw0NS4zMl0sWzEzMS4wMyw0NC45N10sWzEzMS4yOSw0NC4xMV0sWzEzMS4xNCw0Mi45M10sWzEzMC42Myw0Mi45XSxbMTMwLjY0LDQyLjRdLFsxMjkuOTksNDIuOTldLFsxMjkuNiw0Mi40Ml0sWzEyOC4wNSw0MS45OV0sWzEyOC4yMSw0MS40N10sWzEyNy4zNCw0MS41XSxbMTI2Ljg3LDQxLjgyXSxbMTI2LjE4LDQxLjExXSxbMTI1LjA4LDQwLjU3XSxbMTI0LjI3LDM5LjkzXSxbMTIyLjg3LDM5LjY0XSxbMTIyLjEzLDM5LjE3XSxbMTIxLjA1LDM4LjldLFsxMjEuNTksMzkuMzZdLFsxMjEuMzgsMzkuNzVdLFsxMjIuMTcsNDAuNDJdLFsxMjEuNjQsNDAuOTVdLFsxMjAuNzcsNDAuNTldLFsxMTkuNjQsMzkuOV0sWzExOS4wMiwzOS4yNV0sWzExOC4wNCwzOS4yXSxbMTE3LjUzLDM4Ljc0XSxbMTE4LjA2LDM4LjA2XSxbMTE4Ljg4LDM3LjldLFsxMTguOTEsMzcuNDVdLFsxMTkuNywzNy4xNl0sWzEyMC44MiwzNy44N10sWzEyMS43MSwzNy40OF0sWzEyMi4zNiwzNy40NV0sWzEyMi41MiwzNi45M10sWzEyMS4xLDM2LjY1XSxbMTIwLjY0LDM2LjExXSxbMTE5LjY2LDM1LjYxXSxbMTE5LjE1LDM0LjkxXSxbMTIwLjIzLDM0LjM2XSxbMTIwLjYyLDMzLjM4XSxbMTIxLjIzLDMyLjQ2XSxbMTIxLjkxLDMxLjY5XSxbMTIxLjg5LDMwLjk1XSxbMTIxLjI2LDMwLjY4XSxbMTIxLjUsMzAuMTRdLFsxMjIuMDksMjkuODNdLFsxMjEuOTQsMjkuMDJdLFsxMjEuNjgsMjguMjNdLFsxMjEuMTMsMjguMTRdLFsxMjAuNCwyNy4wNV0sWzExOS41OSwyNS43NF0sWzExOC42NiwyNC41NV0sWzExNy4yOCwyMy42Ml0sWzExNS44OSwyMi43OF0sWzExNC43NiwyMi42N10sWzExNC4xNSwyMi4yMl0sWzExMy44MSwyMi41NV0sWzExMy4yNCwyMi4wNV0sWzExMS44NCwyMS41NV0sWzExMC43OSwyMS40XSxbMTEwLjQ0LDIwLjM0XSxbMTA5Ljg5LDIwLjI4XSxbMTA5LjYzLDIxLjAxXSxbMTA5Ljg2LDIxLjRdLFsxMDguNTIsMjEuNzJdLFsxMDguMDUsMjEuNTVdLFsxMDcuMDQsMjEuODFdLFsxMDYuNTcsMjIuMjJdLFsxMDYuNzMsMjIuNzldLFsxMDUuODEsMjIuOThdLFsxMDUuMzMsMjMuMzVdLFsxMDQuNDgsMjIuODJdLFsxMDMuNSwyMi43XSxbMTAyLjcxLDIyLjcxXSxbMTAyLjE3LDIyLjQ2XSxbMTAxLjY1LDIyLjMyXSxbMTAxLjgsMjEuMTddLFsxMDEuMjcsMjEuMl0sWzEwMS4xOCwyMS40NF0sWzEwMS4xNSwyMS44NV0sWzEwMC40MiwyMS41Nl0sWzk5Ljk4LDIxLjc0XSxbOTkuMjQsMjIuMTJdLFs5OS41MywyMi45NV0sWzk4LjksMjMuMTRdLFs5OC42NiwyNC4wNl0sWzk3LjYsMjMuOV0sWzk3LjcyLDI1LjA4XSxbOTguNjcsMjUuOTJdLFs5OC43MSwyNi43NF0sWzk4LjY4LDI3LjUxXSxbOTguMjUsMjcuNzVdLFs5Ny45MSwyOC4zNF0sWzk3LjMzLDI4LjI2XSxbOTYuMjUsMjguNDFdLFs5Ni41OSwyOC44M10sWzk2LjEyLDI5LjQ1XSxbOTUuNCwyOS4wM10sWzk0LjU3LDI5LjI4XSxbOTMuNDEsMjguNjRdLFs5Mi41LDI3LjldLFs5MS43LDI3Ljc3XSxbOTEuMjYsMjguMDRdLFs5MC43MywyOC4wNl0sWzkwLjAyLDI4LjNdLFs4OS40OCwyOC4wNF0sWzg4LjgxLDI3LjNdLFs4OC43MywyOC4wOV0sWzg4LjEyLDI3Ljg4XSxbODYuOTUsMjcuOTddLFs4NS44MiwyOC4yXSxbODUuMDEsMjguNjRdLFs4NC4yMywyOC44NF0sWzgzLjksMjkuMzJdLFs4My4zNCwyOS40Nl0sWzgyLjMzLDMwLjEyXSxbODEuNTMsMzAuNDJdLFs4MS4xMSwzMC4xOF0sWzc5LjcyLDMwLjg4XSxbNzguNzQsMzEuNTJdLFs3OC40NiwzMi42Ml0sWzc5LjE4LDMyLjQ4XSxbNzkuMjEsMzIuOTldLFs3OC44MSwzMy41MV0sWzc4LjkxLDM0LjMyXSxbNzcuODQsMzUuNDldLFs3Ni4xOSwzNS45XSxbNzUuOSwzNi42N10sWzc1LjE2LDM3LjEzXSxbNzQuOTgsMzcuNDJdLFs3NC44MywzNy45OV0sWzc0Ljg2LDM4LjM4XSxbNzQuMjYsMzguNjFdLFs3My45MywzOC41MV0sWzczLjY4LDM5LjQzXSxbNzMuOTYsMzkuNjZdLFs3My44MiwzOS44OV0sWzc0Ljc4LDQwLjM3XSxbNzUuNDcsNDAuNTZdLFs3Ni41Myw0MC40M10sWzc2LjksNDEuMDddLFs3OC4xOSw0MS4xOV0sWzc4LjU0LDQxLjU4XSxbODAuMTIsNDIuMTJdLFs4MC4yNiw0Mi4zNV1dXV19LHtuOmBUYWl3YW5gLGEyOmBDTi1UV2AsYTM6YFRXTmAscDpgVFdgLGw6WzEyMC44NywyMy42NV0sZzpbW1tbMTIxLjc4LDI0LjM5XSxbMTIxLjE4LDIyLjc5XSxbMTIwLjc1LDIxLjk3XSxbMTIwLjIyLDIyLjgxXSxbMTIwLjExLDIzLjU2XSxbMTIwLjY5LDI0LjU0XSxbMTIxLjUsMjUuM10sWzEyMS45NSwyNV0sWzEyMS43OCwyNC4zOV1dXV19LHtuOmBJdGFseWAsYTI6YElUYCxhMzpgSVRBYCxwOmBJYCxsOlsxMS4wOCw0NC43M10sZzpbW1tbMTAuNDQsNDYuODldLFsxMS4wNSw0Ni43NV0sWzExLjE2LDQ2Ljk0XSxbMTIuMTUsNDcuMTJdLFsxMi4zOCw0Ni43N10sWzEzLjgxLDQ2LjUxXSxbMTMuNyw0Ni4wMl0sWzEzLjk0LDQ1LjU5XSxbMTMuMTQsNDUuNzRdLFsxMi4zMyw0NS4zOF0sWzEyLjM4LDQ0Ljg5XSxbMTIuMjYsNDQuNl0sWzEyLjU5LDQ0LjA5XSxbMTMuNTMsNDMuNTldLFsxNC4wMyw0Mi43Nl0sWzE1LjE0LDQxLjk2XSxbMTUuOTMsNDEuOTZdLFsxNi4xNyw0MS43NF0sWzE1Ljg5LDQxLjU0XSxbMTYuNzksNDEuMThdLFsxNy41Miw0MC44OF0sWzE4LjM4LDQwLjM2XSxbMTguNDgsNDAuMTddLFsxOC4yOSwzOS44MV0sWzE3Ljc0LDQwLjI4XSxbMTYuODcsNDAuNDRdLFsxNi40NSwzOS44XSxbMTcuMTcsMzkuNDJdLFsxNy4wNSwzOC45XSxbMTYuNjQsMzguODRdLFsxNi4xLDM3Ljk5XSxbMTUuNjgsMzcuOTFdLFsxNS42OSwzOC4yMV0sWzE1Ljg5LDM4Ljc1XSxbMTYuMTEsMzguOTZdLFsxNS43MiwzOS41NF0sWzE1LjQxLDQwLjA1XSxbMTUsNDAuMTddLFsxNC43LDQwLjZdLFsxNC4wNiw0MC43OV0sWzEzLjYzLDQxLjE5XSxbMTIuODksNDEuMjVdLFsxMi4xMSw0MS43XSxbMTEuMTksNDIuMzZdLFsxMC41MSw0Mi45M10sWzEwLjIsNDMuOTJdLFs5LjcsNDQuMDRdLFs4Ljg5LDQ0LjM3XSxbOC40Myw0NC4yM10sWzcuODUsNDMuNzddLFs3LjQ0LDQzLjY5XSxbNy41NSw0NC4xM10sWzcuMDEsNDQuMjVdLFs2Ljc1LDQ1LjAzXSxbNy4xLDQ1LjMzXSxbNi44LDQ1LjcxXSxbNi44NCw0NS45OV0sWzcuMjcsNDUuNzhdLFs3Ljc2LDQ1LjgyXSxbOC4zMiw0Ni4xNl0sWzguNDksNDYuMDFdLFs4Ljk3LDQ2LjA0XSxbOS4xOCw0Ni40NF0sWzkuOTIsNDYuMzFdLFsxMC4zNiw0Ni40OF0sWzEwLjQ0LDQ2Ljg5XV1dLFtbWzE0Ljc2LDM4LjE0XSxbMTUuNTIsMzguMjNdLFsxNS4xNiwzNy40NF0sWzE1LjMxLDM3LjEzXSxbMTUuMSwzNi42Ml0sWzE0LjM0LDM3XSxbMTMuODMsMzcuMV0sWzEyLjQzLDM3LjYxXSxbMTIuNTcsMzguMTNdLFsxMy43NCwzOC4wM10sWzE0Ljc2LDM4LjE0XV1dLFtbWzguNzEsNDAuOV0sWzkuMjEsNDEuMjFdLFs5LjgxLDQwLjVdLFs5LjY3LDM5LjE4XSxbOS4yMSwzOS4yNF0sWzguODEsMzguOTFdLFs4LjQzLDM5LjE3XSxbOC4zOSw0MC4zOF0sWzguMTYsNDAuOTVdLFs4LjcxLDQwLjldXV1dfSx7bjpgRGVubWFya2AsYTI6YERLYCxhMzpgRE5LYCxwOmBES2AsbDpbOS4wMiw1NS45N10sZzpbW1tbOS45Miw1NC45OF0sWzkuMjgsNTQuODNdLFs4LjUzLDU0Ljk2XSxbOC4xMiw1NS41Ml0sWzguMDksNTYuNTRdLFs4LjI2LDU2LjgxXSxbOC41NCw1Ny4xMV0sWzkuNDIsNTcuMTddLFs5Ljc4LDU3LjQ1XSxbMTAuNTgsNTcuNzNdLFsxMC41NSw1Ny4yMl0sWzEwLjI1LDU2Ljg5XSxbMTAuMzcsNTYuNjFdLFsxMC45MSw1Ni40Nl0sWzEwLjY3LDU2LjA4XSxbMTAuMzcsNTYuMTldLFs5LjY1LDU1LjQ3XSxbOS45Miw1NC45OF1dXSxbW1sxMi4zNyw1Ni4xMV0sWzEyLjY5LDU1LjYxXSxbMTIuMDksNTQuOF0sWzExLjA0LDU1LjM2XSxbMTAuOSw1NS43OF0sWzEyLjM3LDU2LjExXV1dXX0se246YFVuaXRlZCBLaW5nZG9tYCxhMjpgR0JgLGEzOmBHQlJgLHA6YEdCYCxsOlstMi4xMiw1NC40XSxnOltbW1stNi4yLDUzLjg3XSxbLTYuOTUsNTQuMDddLFstNy41Nyw1NC4wNl0sWy03LjM3LDU0LjZdLFstNy41Nyw1NS4xM10sWy02LjczLDU1LjE3XSxbLTUuNjYsNTQuNTVdLFstNi4yLDUzLjg3XV1dLFtbWy0zLjA5LDUzLjRdLFstMi45NSw1My45OV0sWy0zLjYxLDU0LjZdLFstMy42Myw1NC42Ml0sWy00Ljg0LDU0Ljc5XSxbLTUuMDgsNTUuMDZdLFstNC43Miw1NS41MV0sWy01LjA1LDU1Ljc4XSxbLTUuNTksNTUuMzFdLFstNS42NCw1Ni4yOF0sWy02LjE1LDU2Ljc5XSxbLTUuNzksNTcuODJdLFstNS4wMSw1OC42M10sWy00LjIxLDU4LjU1XSxbLTMuMDEsNTguNjRdLFstNC4wNyw1Ny41NV0sWy0zLjA2LDU3LjY5XSxbLTEuOTYsNTcuNjhdLFstMi4yMiw1Ni44N10sWy0zLjEyLDU1Ljk3XSxbLTIuMDksNTUuOTFdLFstMi4wMSw1NS44XSxbLTEuMTEsNTQuNjJdLFstLjQzLDU0LjQ2XSxbLjE4LDUzLjMzXSxbLjQ3LDUyLjkzXSxbMS42OCw1Mi43NF0sWzEuNTYsNTIuMV0sWzEuMDUsNTEuODFdLFsxLjQ1LDUxLjI5XSxbLjU1LDUwLjc3XSxbLS43OSw1MC43N10sWy0yLjQ5LDUwLjVdLFstMi45Niw1MC43XSxbLTMuNjIsNTAuMjNdLFstNC41NCw1MC4zNF0sWy01LjI1LDQ5Ljk2XSxbLTUuNzgsNTAuMTZdLFstNC4zMSw1MS4yMV0sWy0zLjQxLDUxLjQzXSxbLTMuNDIsNTEuNDNdLFstNC45OCw1MS41OV0sWy01LjI3LDUxLjk5XSxbLTQuMjIsNTIuM10sWy00Ljc3LDUyLjg0XSxbLTQuNTgsNTMuNV0sWy0zLjA5LDUzLjRdXV1dfSx7bjpgSWNlbGFuZGAsYTI6YElTYCxhMzpgSVNMYCxwOmBJU2AsbDpbLTE4LjY3LDY0Ljc4XSxnOltbW1stMTQuNTEsNjYuNDZdLFstMTQuNzQsNjUuODFdLFstMTMuNjEsNjUuMTNdLFstMTQuOTEsNjQuMzZdLFstMTcuNzksNjMuNjhdLFstMTguNjYsNjMuNV0sWy0xOS45Nyw2My42NF0sWy0yMi43Niw2My45Nl0sWy0yMS43OCw2NC40XSxbLTIzLjk2LDY0Ljg5XSxbLTIyLjE4LDY1LjA4XSxbLTIyLjIzLDY1LjM4XSxbLTI0LjMzLDY1LjYxXSxbLTIzLjY1LDY2LjI2XSxbLTIyLjEzLDY2LjQxXSxbLTIwLjU4LDY1LjczXSxbLTE5LjA2LDY2LjI4XSxbLTE3LjgsNjUuOTldLFstMTYuMTcsNjYuNTNdLFstMTQuNTEsNjYuNDZdXV1dfSx7bjpgQXplcmJhaWphbmAsYTI6YEFaYCxhMzpgQVpFYCxwOmBBWmAsbDpbNDcuMjEsNDAuNF0sZzpbW1tbNDYuNCw0MS44Nl0sWzQ2LjY5LDQxLjgzXSxbNDcuMzcsNDEuMjJdLFs0Ny44Miw0MS4xNV0sWzQ3Ljk5LDQxLjQxXSxbNDguNTgsNDEuODFdLFs0OS4xMSw0MS4yOF0sWzQ5LjYyLDQwLjU3XSxbNTAuMDgsNDAuNTNdLFs1MC4zOSw0MC4yNl0sWzQ5LjU3LDQwLjE4XSxbNDkuNCwzOS40XSxbNDkuMjIsMzkuMDVdLFs0OC44NiwzOC44Ml0sWzQ4Ljg4LDM4LjMyXSxbNDguNjMsMzguMjddLFs0OC4wMSwzOC43OV0sWzQ4LjM2LDM5LjI5XSxbNDguMDYsMzkuNThdLFs0Ny42OSwzOS41MV0sWzQ2LjUxLDM4Ljc3XSxbNDYuNDgsMzkuNDZdLFs0Ni4wMywzOS42M10sWzQ1LjYxLDM5LjldLFs0NS44OSw0MC4yMl0sWzQ1LjM2LDQwLjU2XSxbNDUuNTYsNDAuODFdLFs0NS4xOCw0MC45OV0sWzQ0Ljk3LDQxLjI1XSxbNDUuMjIsNDEuNDFdLFs0NS45Niw0MS4xMl0sWzQ2LjUsNDEuMDZdLFs0Ni42NCw0MS4xOF0sWzQ2LjE1LDQxLjcyXSxbNDYuNCw0MS44Nl1dXSxbW1s0Ni4xNCwzOC43NF0sWzQ1LjQ2LDM4Ljg3XSxbNDQuOTUsMzkuMzRdLFs0NC43OSwzOS43MV0sWzQ1LDM5Ljc0XSxbNDUuMywzOS40N10sWzQ1Ljc0LDM5LjQ3XSxbNDUuNzQsMzkuMzJdLFs0Ni4xNCwzOC43NF1dXV19LHtuOmBHZW9yZ2lhYCxhMjpgR0VgLGEzOmBHRU9gLHA6YEdFYCxsOls0My43NCw0MS44N10sZzpbW1tbMzkuOTYsNDMuNDNdLFs0MC4wOCw0My41NV0sWzQwLjkyLDQzLjM4XSxbNDIuMzksNDMuMjJdLFs0My43Niw0Mi43NF0sWzQzLjkzLDQyLjU1XSxbNDQuNTQsNDIuNzFdLFs0NS40Nyw0Mi41XSxbNDUuNzgsNDIuMDldLFs0Ni40LDQxLjg2XSxbNDYuMTUsNDEuNzJdLFs0Ni42NCw0MS4xOF0sWzQ2LjUsNDEuMDZdLFs0NS45Niw0MS4xMl0sWzQ1LjIyLDQxLjQxXSxbNDQuOTcsNDEuMjVdLFs0My41OCw0MS4wOV0sWzQyLjYyLDQxLjU4XSxbNDEuNTUsNDEuNTRdLFs0MS43LDQxLjk2XSxbNDEuNDUsNDIuNjVdLFs0MC44OCw0My4wMV0sWzQwLjMyLDQzLjEzXSxbMzkuOTYsNDMuNDNdXV1dfSx7bjpgUGhpbGlwcGluZXNgLGEyOmBQSGAsYTM6YFBITGAscDpgUEhgLGw6WzEyMi40NywxMS4yXSxnOltbW1sxMjAuODMsMTIuN10sWzEyMC4zMiwxMy40N10sWzEyMS4xOCwxMy40M10sWzEyMS41MywxMy4wN10sWzEyMS4yNiwxMi4yMV0sWzEyMC44MywxMi43XV1dLFtbWzEyMi41OSw5Ljk4XSxbMTIyLjg0LDEwLjI2XSxbMTIyLjk1LDEwLjg4XSxbMTIzLjUsMTAuOTRdLFsxMjMuMzQsMTAuMjddLFsxMjQuMDgsMTEuMjNdLFsxMjMuOTgsMTAuMjhdLFsxMjMuNjIsOS45NV0sWzEyMy4zMSw5LjMyXSxbMTIzLDkuMDJdLFsxMjIuMzgsOS43MV0sWzEyMi41OSw5Ljk4XV1dLFtbWzEyNi4zOCw4LjQxXSxbMTI2LjQ4LDcuNzVdLFsxMjYuNTQsNy4xOV0sWzEyNi4yLDYuMjddLFsxMjUuODMsNy4yOV0sWzEyNS4zNiw2Ljc5XSxbMTI1LjY4LDYuMDVdLFsxMjUuNCw1LjU4XSxbMTI0LjIyLDYuMTZdLFsxMjMuOTQsNi44OV0sWzEyNC4yNCw3LjM2XSxbMTIzLjYxLDcuODNdLFsxMjMuMyw3LjQyXSxbMTIyLjgzLDcuNDZdLFsxMjIuMDksNi45XSxbMTIxLjkyLDcuMTldLFsxMjIuMzEsOC4wM10sWzEyMi45NCw4LjMyXSxbMTIzLjQ5LDguNjldLFsxMjMuODQsOC4yNF0sWzEyNC42LDguNTFdLFsxMjQuNzYsOC45Nl0sWzEyNS40Nyw4Ljk5XSxbMTI1LjQxLDkuNzZdLFsxMjYuMjIsOS4yOV0sWzEyNi4zMSw4Ljc4XSxbMTI2LjM4LDguNDFdXV0sW1tbMTE4LjUsOS4zMl0sWzExNy4xNyw4LjM3XSxbMTE3LjY2LDkuMDddLFsxMTguMzksOS42OF0sWzExOC45OSwxMC4zOF0sWzExOS41MSwxMS4zN10sWzExOS42OSwxMC41NV0sWzExOS4wMywxMF0sWzExOC41LDkuMzJdXV0sW1tbMTIyLjM0LDE4LjIyXSxbMTIyLjE3LDE3LjgxXSxbMTIyLjUyLDE3LjA5XSxbMTIyLjI1LDE2LjI2XSxbMTIxLjY2LDE1LjkzXSxbMTIxLjUxLDE1LjEyXSxbMTIxLjczLDE0LjMzXSxbMTIyLjI2LDE0LjIyXSxbMTIyLjcsMTQuMzRdLFsxMjMuOTUsMTMuNzhdLFsxMjMuODYsMTMuMjRdLFsxMjQuMTgsMTNdLFsxMjQuMDgsMTIuNTRdLFsxMjMuMywxMy4wM10sWzEyMi45MywxMy41NV0sWzEyMi42NywxMy4xOV0sWzEyMi4wMywxMy43OF0sWzEyMS4xMywxMy42NF0sWzEyMC42MywxMy44Nl0sWzEyMC42OCwxNC4yN10sWzEyMC45OSwxNC41M10sWzEyMC42OSwxNC43Nl0sWzEyMC41NiwxNC40XSxbMTIwLjA3LDE0Ljk3XSxbMTE5LjkyLDE1LjQxXSxbMTE5Ljg4LDE2LjM2XSxbMTIwLjI5LDE2LjAzXSxbMTIwLjM5LDE3LjZdLFsxMjAuNzIsMTguNTFdLFsxMjEuMzIsMTguNV0sWzEyMS45NCwxOC4yMl0sWzEyMi4yNSwxOC40OF0sWzEyMi4zNCwxOC4yMl1dXSxbW1sxMjIuMDQsMTEuNDJdLFsxMjEuODgsMTEuODldLFsxMjIuNDgsMTEuNThdLFsxMjMuMTIsMTEuNThdLFsxMjMuMSwxMS4xN10sWzEyMi42NCwxMC43NF0sWzEyMiwxMC40NF0sWzEyMS45NywxMC45MV0sWzEyMi4wNCwxMS40Ml1dXSxbW1sxMjUuNSwxMi4xNl0sWzEyNS43OCwxMS4wNV0sWzEyNS4wMSwxMS4zMV0sWzEyNS4wMywxMC45OF0sWzEyNS4yOCwxMC4zNl0sWzEyNC44LDEwLjEzXSxbMTI0Ljc2LDEwLjg0XSxbMTI0LjQ2LDEwLjg5XSxbMTI0LjMsMTEuNV0sWzEyNC44OSwxMS40Ml0sWzEyNC44OCwxMS43OV0sWzEyNC4yNywxMi41Nl0sWzEyNS4yMywxMi41NF0sWzEyNS41LDEyLjE2XV1dXX0se246YE1hbGF5c2lhYCxhMjpgTVlgLGEzOmBNWVNgLHA6YE1ZYCxsOlsxMTMuODQsMi41M10sZzpbW1tbMTAwLjA5LDYuNDZdLFsxMDAuMjYsNi42NF0sWzEwMS4wOCw2LjJdLFsxMDEuMTUsNS42OV0sWzEwMS44MSw1LjgxXSxbMTAyLjE0LDYuMjJdLFsxMDIuMzcsNi4xM10sWzEwMi45Niw1LjUyXSxbMTAzLjM4LDQuODZdLFsxMDMuNDQsNC4xOF0sWzEwMy4zMywzLjczXSxbMTAzLjQzLDMuMzhdLFsxMDMuNSwyLjc5XSxbMTAzLjg1LDIuNTJdLFsxMDQuMjUsMS42M10sWzEwNC4yMywxLjI5XSxbMTAzLjUyLDEuMjNdLFsxMDIuNTcsMS45N10sWzEwMS4zOSwyLjc2XSxbMTAxLjI3LDMuMjddLFsxMDAuNywzLjk0XSxbMTAwLjU2LDQuNzddLFsxMDAuMiw1LjMxXSxbMTAwLjMxLDYuMDRdLFsxMDAuMDksNi40Nl1dXSxbW1sxMTcuODgsNC4xNF0sWzExNy4wMiw0LjMxXSxbMTE1Ljg3LDQuMzFdLFsxMTUuNTIsMy4xN10sWzExNS4xMywyLjgyXSxbMTE0LjYyLDEuNDNdLFsxMTMuODEsMS4yMl0sWzExMi44NiwxLjVdLFsxMTIuMzgsMS40MV0sWzExMS44LC45XSxbMTExLjE2LC45OF0sWzExMC41MSwuNzddLFsxMDkuODMsMS4zNF0sWzEwOS42NiwyLjAxXSxbMTEwLjQsMS42Nl0sWzExMS4xNywxLjg1XSxbMTExLjM3LDIuN10sWzExMS44LDIuODldLFsxMTMsMy4xXSxbMTEzLjcxLDMuODldLFsxMTQuMiw0LjUzXSxbMTE0LjY2LDQuMDFdLFsxMTQuODcsNC4zNV0sWzExNS4zNSw0LjMyXSxbMTE1LjQxLDQuOTZdLFsxMTUuNDUsNS40NV0sWzExNi4yMiw2LjE0XSxbMTE2LjczLDYuOTJdLFsxMTcuMTMsNi45M10sWzExNy42NCw2LjQyXSxbMTE3LjY5LDUuOTldLFsxMTguMzUsNS43MV0sWzExOS4xOCw1LjQxXSxbMTE5LjExLDUuMDJdLFsxMTguNDQsNC45N10sWzExOC42Miw0LjQ4XSxbMTE3Ljg4LDQuMTRdXV1dfSx7bjpgQnJ1bmVpIERhcnVzc2FsYW1gLGEyOmBCTmAsYTM6YEJSTmAscDpgQk5gLGw6WzExNC41NSw0LjQ1XSxnOltbW1sxMTUuNDUsNS40NV0sWzExNS40MSw0Ljk2XSxbMTE1LjM1LDQuMzJdLFsxMTQuODcsNC4zNV0sWzExNC42Niw0LjAxXSxbMTE0LjIsNC41M10sWzExNC42LDQuOV0sWzExNS40NSw1LjQ1XV1dXX0se246YFNsb3ZlbmlhYCxhMjpgU0lgLGEzOmBTVk5gLHA6YFNMT2AsbDpbMTQuOTIsNDYuMDZdLGc6W1tbWzEzLjgxLDQ2LjUxXSxbMTQuNjMsNDYuNDNdLFsxNS4xNCw0Ni42Nl0sWzE2LjAxLDQ2LjY4XSxbMTYuMiw0Ni44NV0sWzE2LjM3LDQ2Ljg0XSxbMTYuNTYsNDYuNV0sWzE1Ljc3LDQ2LjI0XSxbMTUuNjcsNDUuODNdLFsxNS4zMiw0NS43M10sWzE1LjMzLDQ1LjQ1XSxbMTQuOTQsNDUuNDddLFsxNC42LDQ1LjYzXSxbMTQuNDEsNDUuNDddLFsxMy43Miw0NS41XSxbMTMuOTQsNDUuNTldLFsxMy43LDQ2LjAyXSxbMTMuODEsNDYuNTFdXV1dfSx7bjpgRmlubGFuZGAsYTI6YEZJYCxhMzpgRklOYCxwOmBGSU5gLGw6WzI3LjI4LDYzLjI1XSxnOltbW1syOC41OSw2OS4wNl0sWzI4LjQ1LDY4LjM2XSxbMjkuOTgsNjcuN10sWzI5LjA1LDY2Ljk0XSxbMzAuMjIsNjUuODFdLFsyOS41NCw2NC45NV0sWzMwLjQ0LDY0LjJdLFszMC4wNCw2My41NV0sWzMxLjUyLDYyLjg3XSxbMzEuMTQsNjIuMzZdLFszMC4yMSw2MS43OF0sWzI4LjA3LDYwLjVdLFsyNi4yNiw2MC40Ml0sWzI0LjUsNjAuMDZdLFsyMi44Nyw1OS44NV0sWzIyLjI5LDYwLjM5XSxbMjEuMzIsNjAuNzJdLFsyMS41NCw2MS43MV0sWzIxLjA2LDYyLjYxXSxbMjEuNTQsNjMuMTldLFsyMi40NCw2My44Ml0sWzI0LjczLDY0LjldLFsyNS40LDY1LjExXSxbMjUuMjksNjUuNTNdLFsyMy45LDY2LjAxXSxbMjMuNTcsNjYuNF0sWzIzLjU0LDY3Ljk0XSxbMjEuOTgsNjguNjJdLFsyMC42NSw2OS4xMV0sWzIxLjI0LDY5LjM3XSxbMjIuMzYsNjguODRdLFsyMy42Niw2OC44OV0sWzI0Ljc0LDY4LjY1XSxbMjUuNjksNjkuMDldLFsyNi4xOCw2OS44M10sWzI3LjczLDcwLjE2XSxbMjkuMDIsNjkuNzddLFsyOC41OSw2OS4wNl1dXV19LHtuOmBTbG92YWtpYWAsYTI6YFNLYCxhMzpgU1ZLYCxwOmBTS2AsbDpbMTkuMDUsNDguNzNdLGc6W1tbWzIyLjU2LDQ5LjA5XSxbMjIuMjgsNDguODNdLFsyMi4wOSw0OC40Ml0sWzIxLjg3LDQ4LjMyXSxbMjAuOCw0OC42Ml0sWzIwLjQ3LDQ4LjU2XSxbMjAuMjQsNDguMzNdLFsxOS43Nyw0OC4yXSxbMTkuNjYsNDguMjddLFsxOS4xNyw0OC4xMV0sWzE4Ljc4LDQ4LjA4XSxbMTguNyw0Ny44OF0sWzE3Ljg2LDQ3Ljc2XSxbMTcuNDksNDcuODddLFsxNi45OCw0OC4xMl0sWzE2Ljg4LDQ4LjQ3XSxbMTYuOTYsNDguNl0sWzE3LjEsNDguODJdLFsxNy41NSw0OC44XSxbMTcuODksNDguOV0sWzE3LjkxLDQ5XSxbMTguMSw0OS4wNF0sWzE4LjE3LDQ5LjI3XSxbMTguNCw0OS4zMl0sWzE4LjU1LDQ5LjVdLFsxOC44NSw0OS41XSxbMTguOTEsNDkuNDRdLFsxOS4zMiw0OS41N10sWzE5LjgzLDQ5LjIyXSxbMjAuNDIsNDkuNDNdLFsyMC44OSw0OS4zM10sWzIxLjYxLDQ5LjQ3XSxbMjIuNTYsNDkuMDldXV1dfSx7bjpgQ3plY2ggUmVwdWJsaWNgLGEyOmBDWmAsYTM6YENaRWAscDpgQ1pgLGw6WzE1LjM4LDQ5Ljg4XSxnOltbW1sxNS4wMiw1MS4xMV0sWzE1LjQ5LDUwLjc4XSxbMTYuMjQsNTAuN10sWzE2LjE4LDUwLjQyXSxbMTYuNzIsNTAuMjJdLFsxNi44Nyw1MC40N10sWzE3LjU1LDUwLjM2XSxbMTcuNjUsNTAuMDVdLFsxOC4zOSw0OS45OV0sWzE4Ljg1LDQ5LjVdLFsxOC41NSw0OS41XSxbMTguNCw0OS4zMl0sWzE4LjE3LDQ5LjI3XSxbMTguMSw0OS4wNF0sWzE3LjkxLDQ5XSxbMTcuODksNDguOV0sWzE3LjU1LDQ4LjhdLFsxNy4xLDQ4LjgyXSxbMTYuOTYsNDguNl0sWzE2LjUsNDguNzldLFsxNi4wMyw0OC43M10sWzE1LjI1LDQ5LjA0XSxbMTQuOSw0OC45Nl0sWzE0LjM0LDQ4LjU2XSxbMTMuNiw0OC44OF0sWzEzLjAzLDQ5LjMxXSxbMTIuNTIsNDkuNTVdLFsxMi40Miw0OS45N10sWzEyLjI0LDUwLjI3XSxbMTIuOTcsNTAuNDhdLFsxMy4zNCw1MC43M10sWzE0LjA2LDUwLjkzXSxbMTQuMzEsNTEuMTJdLFsxNC41Nyw1MV0sWzE1LjAyLDUxLjExXV1dXX0se246YEVyaXRyZWFgLGEyOmBFUmAsYTM6YEVSSWAscDpgRVJgLGw6WzM4LjI5LDE1Ljc5XSxnOltbW1szNi40MywxNC40Ml0sWzM2LjMyLDE0LjgyXSxbMzYuNzUsMTYuMjldLFszNi44NSwxNi45Nl0sWzM3LjE3LDE3LjI2XSxbMzcuOSwxNy40M10sWzM4LjQxLDE4XSxbMzguOTksMTYuODRdLFszOS4yNywxNS45Ml0sWzM5LjgxLDE1LjQ0XSxbNDEuMTgsMTQuNDldLFs0MS43MywxMy45Ml0sWzQyLjI4LDEzLjM0XSxbNDIuNTksMTNdLFs0My4wOCwxMi43XSxbNDIuNzgsMTIuNDZdLFs0Mi4zNSwxMi41NF0sWzQyLjAxLDEyLjg3XSxbNDEuNiwxMy40NV0sWzQxLjE2LDEzLjc3XSxbNDAuOSwxNC4xMl0sWzQwLjAzLDE0LjUyXSxbMzkuMzQsMTQuNTNdLFszOS4xLDE0Ljc0XSxbMzguNTEsMTQuNTFdLFszNy45MSwxNC45Nl0sWzM3LjU5LDE0LjIxXSxbMzYuNDMsMTQuNDJdXV1dfSx7bjpgSmFwYW5gLGEyOmBKUGAsYTM6YEpQTmAscDpgSmAsbDpbMTM4LjQ0LDM2LjE0XSxnOltbW1sxNDEuODgsMzkuMThdLFsxNDAuOTYsMzguMTddLFsxNDAuOTgsMzcuMTRdLFsxNDAuNiwzNi4zNF0sWzE0MC43NywzNS44NF0sWzE0MC4yNSwzNS4xNF0sWzEzOC45OCwzNC42N10sWzEzNy4yMiwzNC42MV0sWzEzNS43OSwzMy40Nl0sWzEzNS4xMiwzMy44NV0sWzEzNS4wOCwzNC42XSxbMTMzLjM0LDM0LjM4XSxbMTMyLjE2LDMzLjldLFsxMzAuOTksMzMuODldLFsxMzIsMzMuMTVdLFsxMzEuMzMsMzEuNDVdLFsxMzAuNjksMzEuMDNdLFsxMzAuMiwzMS40Ml0sWzEzMC40NSwzMi4zMl0sWzEyOS44MSwzMi42MV0sWzEyOS40MSwzMy4zXSxbMTMwLjM1LDMzLjZdLFsxMzAuODgsMzQuMjNdLFsxMzEuODgsMzQuNzVdLFsxMzIuNjIsMzUuNDNdLFsxMzQuNjEsMzUuNzNdLFsxMzUuNjgsMzUuNTNdLFsxMzYuNzIsMzcuM10sWzEzNy4zOSwzNi44M10sWzEzOC44NiwzNy44M10sWzEzOS40MywzOC4yMl0sWzE0MC4wNSwzOS40NF0sWzEzOS44OCw0MC41Nl0sWzE0MC4zMSw0MS4yXSxbMTQxLjM3LDQxLjM4XSxbMTQxLjkxLDM5Ljk5XSxbMTQxLjg4LDM5LjE4XV1dLFtbWzE0NC42MSw0My45Nl0sWzE0NS4zMiw0NC4zOF0sWzE0NS41NCw0My4yNl0sWzE0NC4wNiw0Mi45OV0sWzE0My4xOCw0Ml0sWzE0MS42MSw0Mi42OF0sWzE0MS4wNyw0MS41OF0sWzEzOS45Niw0MS41N10sWzEzOS44Miw0Mi41Nl0sWzE0MC4zMSw0My4zM10sWzE0MS4zOCw0My4zOV0sWzE0MS42Nyw0NC43N10sWzE0MS45Nyw0NS41NV0sWzE0My4xNCw0NC41MV0sWzE0My45MSw0NC4xN10sWzE0NC42MSw0My45Nl1dXSxbW1sxMzIuMzcsMzMuNDZdLFsxMzIuOTIsMzQuMDZdLFsxMzMuNDksMzMuOTRdLFsxMzMuOSwzNC4zNl0sWzEzNC42NCwzNC4xNV0sWzEzNC43NywzMy44MV0sWzEzNC4yLDMzLjJdLFsxMzMuNzksMzMuNTJdLFsxMzMuMjgsMzMuMjldLFsxMzMuMDEsMzIuN10sWzEzMi4zNiwzMi45OV0sWzEzMi4zNywzMy40Nl1dXV19LHtuOmBQYXJhZ3VheWAsYTI6YFBZYCxhMzpgUFJZYCxwOmBQWWAsbDpbLTYwLjE1LC0yMS42N10sZzpbW1tbLTU4LjE3LC0yMC4xOF0sWy01Ny44NywtMjAuNzNdLFstNTcuOTQsLTIyLjA5XSxbLTU2Ljg4LC0yMi4yOF0sWy01Ni40NywtMjIuMDldLFstNTUuOCwtMjIuMzZdLFstNTUuNjEsLTIyLjY2XSxbLTU1LjUyLC0yMy41N10sWy01NS40LC0yMy45Nl0sWy01NS4wMywtMjRdLFstNTQuNjUsLTIzLjg0XSxbLTU0LjI5LC0yNC4wMl0sWy01NC4yOSwtMjQuNTddLFstNTQuNDMsLTI1LjE2XSxbLTU0LjYzLC0yNS43NF0sWy01NC43OSwtMjYuNjJdLFstNTUuNywtMjcuMzldLFstNTYuNDksLTI3LjU1XSxbLTU3LjYxLC0yNy40XSxbLTU4LjYyLC0yNy4xMl0sWy01Ny42MywtMjUuNl0sWy01Ny43OCwtMjUuMTZdLFstNTguODEsLTI0Ljc3XSxbLTYwLjAzLC0yNC4wM10sWy02MC44NSwtMjMuODhdLFstNjIuNjksLTIyLjI1XSxbLTYyLjI5LC0yMS4wNV0sWy02Mi4yNywtMjAuNTFdLFstNjEuNzksLTE5LjYzXSxbLTYwLjA0LC0xOS4zNF0sWy01OS4xMiwtMTkuMzZdLFstNTguMTgsLTE5Ljg3XSxbLTU4LjE3LC0yMC4xOF1dXV19LHtuOmBZZW1lbmAsYTI6YFlFYCxhMzpgWUVNYCxwOmBZRWAsbDpbNDUuODcsMTUuMzNdLGc6W1tbWzUyLDE5XSxbNTIuNzgsMTcuMzVdLFs1My4xMSwxNi42NV0sWzUyLjM5LDE2LjM4XSxbNTIuMTksMTUuOTRdLFs1Mi4xNywxNS42XSxbNTEuMTcsMTUuMThdLFs0OS41NywxNC43MV0sWzQ4LjY4LDE0XSxbNDguMjQsMTMuOTVdLFs0Ny45NCwxNC4wMV0sWzQ3LjM1LDEzLjU5XSxbNDYuNzIsMTMuNF0sWzQ1Ljg4LDEzLjM1XSxbNDUuNjMsMTMuMjldLFs0NS40MSwxMy4wM10sWzQ1LjE0LDEyLjk1XSxbNDQuOTksMTIuN10sWzQ0LjQ5LDEyLjcyXSxbNDQuMTgsMTIuNTldLFs0My40OCwxMi42NF0sWzQzLjIyLDEzLjIyXSxbNDMuMjUsMTMuNzddLFs0My4wOSwxNC4wNl0sWzQyLjg5LDE0LjhdLFs0Mi42LDE1LjIxXSxbNDIuODEsMTUuMjZdLFs0Mi43LDE1LjcyXSxbNDIuODIsMTUuOTFdLFs0Mi43OCwxNi4zNV0sWzQzLjIyLDE2LjY3XSxbNDMuMTIsMTcuMDldLFs0My4zOCwxNy41OF0sWzQzLjc5LDE3LjMyXSxbNDQuMDYsMTcuNDFdLFs0NS4yMiwxNy40M10sWzQ1LjQsMTcuMzNdLFs0Ni4zNywxNy4yM10sWzQ2Ljc1LDE3LjI4XSxbNDcsMTYuOTVdLFs0Ny40NywxNy4xMl0sWzQ4LjE4LDE4LjE3XSxbNDkuMTIsMTguNjJdLFs1MiwxOV1dXV19LHtuOmBTYXVkaSBBcmFiaWFgLGEyOmBTQWAsYTM6YFNBVWAscDpgU0FgLGw6WzQ0LjcsMjMuODFdLGc6W1tbWzM0Ljk2LDI5LjM2XSxbMzYuMDcsMjkuMl0sWzM2LjUsMjkuNTFdLFszNi43NCwyOS44N10sWzM3LjUsMzBdLFszNy42NywzMC4zNF0sWzM4LDMwLjUxXSxbMzcsMzEuNTFdLFszOSwzMi4wMV0sWzM5LjIsMzIuMTZdLFs0MC40LDMxLjg5XSxbNDEuODksMzEuMTldLFs0NC43MSwyOS4xOF0sWzQ2LjU3LDI5LjFdLFs0Ny40NiwyOV0sWzQ3LjcxLDI4LjUzXSxbNDguNDIsMjguNTVdLFs0OC44MSwyNy42OV0sWzQ5LjMsMjcuNDZdLFs0OS40NywyNy4xMV0sWzUwLjE1LDI2LjY5XSxbNTAuMjEsMjYuMjhdLFs1MC4xMSwyNS45NF0sWzUwLjI0LDI1LjYxXSxbNTAuNTMsMjUuMzNdLFs1MC42NiwyNV0sWzUwLjgxLDI0Ljc1XSxbNTEuMTEsMjQuNTZdLFs1MS4zOSwyNC42M10sWzUxLjU4LDI0LjI1XSxbNTEuNjIsMjQuMDFdLFs1MiwyM10sWzU1LjAxLDIyLjVdLFs1NS4yMSwyMi43MV0sWzU1LjY3LDIyXSxbNTUsMjBdLFs1MiwxOV0sWzQ5LjEyLDE4LjYyXSxbNDguMTgsMTguMTddLFs0Ny40NywxNy4xMl0sWzQ3LDE2Ljk1XSxbNDYuNzUsMTcuMjhdLFs0Ni4zNywxNy4yM10sWzQ1LjQsMTcuMzNdLFs0NS4yMiwxNy40M10sWzQ0LjA2LDE3LjQxXSxbNDMuNzksMTcuMzJdLFs0My4zOCwxNy41OF0sWzQzLjEyLDE3LjA5XSxbNDMuMjIsMTYuNjddLFs0Mi43OCwxNi4zNV0sWzQyLjY1LDE2Ljc3XSxbNDIuMzUsMTcuMDhdLFs0Mi4yNywxNy40N10sWzQxLjc1LDE3LjgzXSxbNDEuMjIsMTguNjddLFs0MC45NCwxOS40OV0sWzQwLjI1LDIwLjE3XSxbMzkuOCwyMC4zNF0sWzM5LjE0LDIxLjI5XSxbMzkuMDIsMjEuOTldLFszOS4wNywyMi41OF0sWzM4LjQ5LDIzLjY5XSxbMzguMDIsMjQuMDhdLFszNy40OCwyNC4yOV0sWzM3LjE1LDI0Ljg2XSxbMzcuMjEsMjUuMDhdLFszNi45MywyNS42XSxbMzYuNjQsMjUuODNdLFszNi4yNSwyNi41N10sWzM1LjY0LDI3LjM4XSxbMzUuMTMsMjguMDZdLFszNC42MywyOC4wNl0sWzM0Ljc5LDI4LjYxXSxbMzQuODMsMjguOTZdLFszNC45NiwyOS4zNl1dXV19LHtuOmBBbnRhcmN0aWNhYCxhMjpgQVFgLGEzOmBBVEFgLHA6YEFRYCxsOlszNS44OSwtNzkuODRdLGc6W1tbWy00OC42NiwtNzguMDVdLFstNDguMTUsLTc4LjA1XSxbLTQ2LjY2LC03Ny44M10sWy00NS4xNSwtNzguMDVdLFstNDMuOTIsLTc4LjQ4XSxbLTQzLjQ5LC03OS4wOV0sWy00My4zNywtNzkuNTJdLFstNDMuMzMsLTgwLjAzXSxbLTQ0Ljg4LC04MC4zNF0sWy00Ni41MSwtODAuNTldLFstNDguMzksLTgwLjgzXSxbLTUwLjQ4LC04MS4wM10sWy01Mi44NSwtODAuOTddLFstNTQuMTYsLTgwLjYzXSxbLTUzLjk5LC04MC4yMl0sWy01MS44NSwtNzkuOTVdLFstNTAuOTksLTc5LjYxXSxbLTUwLjM2LC03OS4xOF0sWy00OS45MSwtNzguODFdLFstNDkuMzEsLTc4LjQ2XSxbLTQ4LjY2LC03OC4wNV1dXSxbW1stNjYuMjksLTgwLjI2XSxbLTY0LjA0LC04MC4yOV0sWy02MS44OCwtODAuMzldLFstNjEuMTQsLTc5Ljk4XSxbLTYwLjYxLC03OS42M10sWy01OS41NywtODAuMDRdLFstNTkuODcsLTgwLjU1XSxbLTYwLjE2LC04MV0sWy02Mi4yNiwtODAuODZdLFstNjQuNDksLTgwLjkyXSxbLTY1Ljc0LC04MC41OV0sWy02NS43NCwtODAuNTVdLFstNjYuMjksLTgwLjI2XV1dLFtbWy03My45MiwtNzEuMjddLFstNzMuMjMsLTcxLjE1XSxbLTcyLjA3LC03MS4xOV0sWy03MS43OCwtNzAuNjhdLFstNzEuNzIsLTcwLjMxXSxbLTcxLjc0LC02OS41MV0sWy03MS4xNywtNjkuMDRdLFstNzAuMjUsLTY4Ljg4XSxbLTY5LjcyLC02OS4yNV0sWy02OS40OSwtNjkuNjJdLFstNjkuMDYsLTcwLjA3XSxbLTY4LjczLC03MC41MV0sWy02OC40NSwtNzAuOTZdLFstNjguMzMsLTcxLjQxXSxbLTY4LjUxLC03MS44XSxbLTY4Ljc4LC03Mi4xN10sWy02OS45NiwtNzIuMzFdLFstNzEuMDgsLTcyLjVdLFstNzIuMzksLTcyLjQ4XSxbLTcxLjksLTcyLjA5XSxbLTczLjA3LC03Mi4yM10sWy03NC4xOSwtNzIuMzddLFstNzQuOTUsLTcyLjA3XSxbLTc1LjAxLC03MS42Nl0sWy03My45MiwtNzEuMjddXV0sW1tbLTEwMi4zMywtNzEuODldLFstMTAxLjcsLTcxLjcyXSxbLTEwMC40MywtNzEuODVdLFstOTguOTgsLTcxLjkzXSxbLTk3Ljg4LC03Mi4wN10sWy05Ni43OSwtNzEuOTVdLFstOTYuMiwtNzIuNTJdLFstOTYuOTgsLTcyLjQ0XSxbLTk4LjIsLTcyLjQ4XSxbLTk5LjQzLC03Mi40NF0sWy0xMDAuNzgsLTcyLjVdLFstMTAxLjgsLTcyLjMxXSxbLTEwMi4zMywtNzEuODldXV0sW1tbLTEyMi42MiwtNzMuNjZdLFstMTIyLjQxLC03My4zMl0sWy0xMjEuMjEsLTczLjVdLFstMTE5LjkyLC03My42Nl0sWy0xMTguNzIsLTczLjQ4XSxbLTExOS4yOSwtNzMuODNdLFstMTIwLjIzLC03NC4wOV0sWy0xMjEuNjIsLTc0LjAxXSxbLTEyMi42MiwtNzMuNjZdXV0sW1tbLTEyNy4yOCwtNzMuNDZdLFstMTI2LjU2LC03My4yNV0sWy0xMjUuNTYsLTczLjQ4XSxbLTEyNC4wMywtNzMuODddLFstMTI0LjYyLC03My44M10sWy0xMjUuOTEsLTczLjc0XSxbLTEyNy4yOCwtNzMuNDZdXV0sW1tbLTE2My43MSwtNzguNl0sWy0xNjMuMTEsLTc4LjIyXSxbLTE2MS4yNSwtNzguMzhdLFstMTYwLjI1LC03OC42OV0sWy0xNTkuNDgsLTc5LjA1XSxbLTE1OS4yMSwtNzkuNV0sWy0xNjEuMTMsLTc5LjYzXSxbLTE2Mi40NCwtNzkuMjhdLFstMTYzLjAzLC03OC45M10sWy0xNjMuMDcsLTc4Ljg3XSxbLTE2My43MSwtNzguNl1dXSxbW1sxODAsLTg0LjcxXSxbMTgwLC05MF0sWy0xODAsLTkwXSxbLTE4MCwtODQuNzFdLFstMTc5Ljk0LC04NC43Ml0sWy0xNzkuMDYsLTg0LjE0XSxbLTE3Ny4yNiwtODQuNDVdLFstMTc3LjE0LC04NC40Ml0sWy0xNzYuMDgsLTg0LjFdLFstMTc1Ljk1LC04NC4xMV0sWy0xNzUuODMsLTg0LjEyXSxbLTE3NC4zOCwtODQuNTNdLFstMTczLjEyLC04NC4xMl0sWy0xNzIuODksLTg0LjA2XSxbLTE2OS45NSwtODMuODhdLFstMTY5LC04NC4xMl0sWy0xNjguNTMsLTg0LjI0XSxbLTE2Ny4wMiwtODQuNTddLFstMTY0LjE4LC04NC44M10sWy0xNjEuOTMsLTg1LjE0XSxbLTE1OC4wNywtODUuMzddLFstMTU1LjE5LC04NS4xXSxbLTE1MC45NCwtODUuM10sWy0xNDguNTMsLTg1LjYxXSxbLTE0NS44OSwtODUuMzJdLFstMTQzLjExLC04NS4wNF0sWy0xNDIuODksLTg0LjU3XSxbLTE0Ni44MywtODQuNTNdLFstMTUwLjA2LC04NC4zXSxbLTE1MC45LC04My45XSxbLTE1My41OSwtODMuNjldLFstMTUzLjQxLC04My4yNF0sWy0xNTMuMDQsLTgyLjgzXSxbLTE1Mi42NywtODIuNDVdLFstMTUyLjg2LC04Mi4wNF0sWy0xNTQuNTMsLTgxLjc3XSxbLTE1NS4yOSwtODEuNDJdLFstMTU2Ljg0LC04MS4xXSxbLTE1NC40MSwtODEuMTZdLFstMTUyLjEsLTgxXSxbLTE1MC42NSwtODEuMzRdLFstMTQ4Ljg3LC04MS4wNF0sWy0xNDcuMjIsLTgwLjY3XSxbLTE0Ni40MiwtODAuMzRdLFstMTQ2Ljc3LC03OS45M10sWy0xNDguMDYsLTc5LjY1XSxbLTE0OS41MywtNzkuMzZdLFstMTUxLjU5LC03OS4zXSxbLTE1My4zOSwtNzkuMTZdLFstMTU1LjMzLC03OS4wNl0sWy0xNTUuOTgsLTc4LjY5XSxbLTE1Ny4yNywtNzguMzhdLFstMTU4LjA1LC03OC4wM10sWy0xNTguMzcsLTc2Ljg5XSxbLTE1Ny44OCwtNzYuOTldLFstMTU2Ljk3LC03Ny4zXSxbLTE1NS4zMywtNzcuMl0sWy0xNTMuNzQsLTc3LjA3XSxbLTE1Mi45MiwtNzcuNV0sWy0xNTEuMzMsLTc3LjRdLFstMTUwLC03Ny4xOF0sWy0xNDguNzUsLTc2LjkxXSxbLTE0Ny42MSwtNzYuNThdLFstMTQ2LjEsLTc2LjQ4XSxbLTE0Ni4xNCwtNzYuMTFdLFstMTQ2LjUsLTc1LjczXSxbLTE0Ni4yLC03NS4zOF0sWy0xNDQuOTEsLTc1LjJdLFstMTQ0LjMyLC03NS41NF0sWy0xNDIuNzksLTc1LjM0XSxbLTE0MS42NCwtNzUuMDldLFstMTQwLjIxLC03NS4wN10sWy0xMzguODYsLTc0Ljk3XSxbLTEzNy41MSwtNzQuNzNdLFstMTM2LjQzLC03NC41Ml0sWy0xMzUuMjEsLTc0LjNdLFstMTM0LjQzLC03NC4zNl0sWy0xMzMuNzUsLTc0LjQ0XSxbLTEzMi4yNiwtNzQuM10sWy0xMzAuOTMsLTc0LjQ4XSxbLTEyOS41NSwtNzQuNDZdLFstMTI4LjI0LC03NC4zMl0sWy0xMjYuODksLTc0LjQyXSxbLTEyNS40LC03NC41Ml0sWy0xMjQuMDEsLTc0LjQ4XSxbLTEyMi41NiwtNzQuNV0sWy0xMjEuMDcsLTc0LjUyXSxbLTExOS43LC03NC40OF0sWy0xMTguNjgsLTc0LjE5XSxbLTExNy40NywtNzQuMDNdLFstMTE2LjIyLC03NC4yNF0sWy0xMTUuMDIsLTc0LjA3XSxbLTExMy45NCwtNzMuNzFdLFstMTEzLjMsLTc0LjAzXSxbLTExMi45NSwtNzQuMzhdLFstMTEyLjMsLTc0LjcxXSxbLTExMS4yNiwtNzQuNDJdLFstMTEwLjA3LC03NC43OV0sWy0xMDguNzEsLTc0LjkxXSxbLTEwNy41NiwtNzUuMThdLFstMTA2LjE1LC03NS4xM10sWy0xMDQuODgsLTc0Ljk1XSxbLTEwMy4zNywtNzQuOTldLFstMTAyLjAyLC03NS4xM10sWy0xMDAuNjUsLTc1LjNdLFstMTAwLjEyLC03NC44N10sWy0xMDAuNzYsLTc0LjU0XSxbLTEwMS4yNSwtNzQuMTldLFstMTAyLjU1LC03NC4xMV0sWy0xMDMuMTEsLTczLjczXSxbLTEwMy4zMywtNzMuMzZdLFstMTAzLjY4LC03Mi42Ml0sWy0xMDIuOTIsLTcyLjc1XSxbLTEwMS42MSwtNzIuODFdLFstMTAwLjMxLC03Mi43NV0sWy05OS4xNCwtNzIuOTFdLFstOTguMTIsLTczLjIxXSxbLTk3LjY5LC03My41Nl0sWy05Ni4zNCwtNzMuNjJdLFstOTUuMDQsLTczLjQ4XSxbLTkzLjY3LC03My4yOF0sWy05Mi40NCwtNzMuMTddLFstOTEuNDIsLTczLjRdLFstOTAuMDksLTczLjMyXSxbLTg5LjIzLC03Mi41Nl0sWy04OC40MiwtNzMuMDFdLFstODcuMjcsLTczLjE5XSxbLTg2LjAxLC03My4wOV0sWy04NS4xOSwtNzMuNDhdLFstODMuODgsLTczLjUyXSxbLTgyLjY3LC03My42NF0sWy04MS40NywtNzMuODVdLFstODAuNjksLTczLjQ4XSxbLTgwLjMsLTczLjEzXSxbLTc5LjMsLTczLjUyXSxbLTc3LjkzLC03My40Ml0sWy03Ni45MSwtNzMuNjRdLFstNzYuMjIsLTczLjk3XSxbLTc0Ljg5LC03My44N10sWy03My44NSwtNzMuNjZdLFstNzIuODMsLTczLjRdLFstNzEuNjIsLTczLjI2XSxbLTcwLjIxLC03My4xNV0sWy02OC45NCwtNzMuMDFdLFstNjcuOTYsLTcyLjc5XSxbLTY3LjM3LC03Mi40OF0sWy02Ny4xMywtNzIuMDVdLFstNjcuMjUsLTcxLjY0XSxbLTY3LjU2LC03MS4yNV0sWy02Ny45MiwtNzAuODVdLFstNjguMjMsLTcwLjQ2XSxbLTY4LjQ5LC03MC4xMV0sWy02OC41NCwtNjkuNzJdLFstNjguNDUsLTY5LjMzXSxbLTY3Ljk4LC02OC45NV0sWy02Ny41OCwtNjguNTRdLFstNjcuNDMsLTY4LjE1XSxbLTY3LjYyLC02Ny43Ml0sWy02Ny43NCwtNjcuMzNdLFstNjcuMjUsLTY2Ljg4XSxbLTY2LjcsLTY2LjU4XSxbLTY2LjA2LC02Ni4yMV0sWy02NS4zNywtNjUuOV0sWy02NC41NywtNjUuNl0sWy02NC4xOCwtNjUuMTddLFstNjMuNjMsLTY0LjldLFstNjMsLTY0LjY0XSxbLTYyLjA0LC02NC41OF0sWy02MS40MSwtNjQuMjddLFstNjAuNzEsLTY0LjA3XSxbLTU5Ljg5LC02My45Nl0sWy01OS4xNiwtNjMuN10sWy01OC41OSwtNjMuMzldLFstNTcuODEsLTYzLjI3XSxbLTU3LjIyLC02My41M10sWy01Ny42LC02My44Nl0sWy01OC42MSwtNjQuMTVdLFstNTkuMDUsLTY0LjM3XSxbLTU5Ljc5LC02NC4yMV0sWy02MC42MSwtNjQuMzFdLFstNjEuMywtNjQuNTRdLFstNjIuMDIsLTY0LjhdLFstNjIuNTEsLTY1LjA5XSxbLTYyLjY1LC02NS40OF0sWy02Mi41OSwtNjUuODZdLFstNjIuMTIsLTY2LjE5XSxbLTYyLjgxLC02Ni40M10sWy02My43NSwtNjYuNV0sWy02NC4yOSwtNjYuODRdLFstNjQuODgsLTY3LjE1XSxbLTY1LjUxLC02Ny41OF0sWy02NS42NywtNjcuOTVdLFstNjUuMzEsLTY4LjM3XSxbLTY0Ljc4LC02OC42OF0sWy02My45NiwtNjguOTFdLFstNjMuMiwtNjkuMjNdLFstNjIuNzksLTY5LjYyXSxbLTYyLjU3LC02OS45OV0sWy02Mi4yOCwtNzAuMzhdLFstNjEuODEsLTcwLjcyXSxbLTYxLjUxLC03MS4wOV0sWy02MS4zOCwtNzIuMDFdLFstNjEuMDgsLTcyLjM4XSxbLTYxLC03Mi43N10sWy02MC42OSwtNzMuMTddLFstNjAuODMsLTczLjddLFstNjEuMzgsLTc0LjExXSxbLTYxLjk2LC03NC40NF0sWy02My4zLC03NC41OF0sWy02My43NSwtNzQuOTNdLFstNjQuMzUsLTc1LjI2XSxbLTY1Ljg2LC03NS42NF0sWy02Ny4xOSwtNzUuNzldLFstNjguNDUsLTc2LjAxXSxbLTY5LjgsLTc2LjIyXSxbLTcwLjYsLTc2LjYzXSxbLTcyLjIxLC03Ni42N10sWy03My45NywtNzYuNjNdLFstNzUuNTYsLTc2LjcxXSxbLTc3LjI0LC03Ni43MV0sWy03Ni45MywtNzcuMV0sWy03NS40LC03Ny4yOF0sWy03NC4yOCwtNzcuNTZdLFstNzMuNjYsLTc3LjkxXSxbLTc0Ljc3LC03OC4yMl0sWy03Ni41LC03OC4xMl0sWy03Ny45MywtNzguMzhdLFstNzcuOTgsLTc4Ljc5XSxbLTc4LjAyLC03OS4xOF0sWy03Ni44NSwtNzkuNTFdLFstNzYuNjMsLTc5Ljg5XSxbLTc1LjM2LC04MC4yNl0sWy03My4yNCwtODAuNDJdLFstNzEuNDQsLTgwLjY5XSxbLTcwLjAxLC04MV0sWy02OC4xOSwtODEuMzJdLFstNjUuNywtODEuNDddLFstNjMuMjYsLTgxLjc1XSxbLTYxLjU1LC04Mi4wNF0sWy01OS42OSwtODIuMzhdLFstNTguNzEsLTgyLjg1XSxbLTU4LjIyLC04My4yMl0sWy01Ny4wMSwtODIuODddLFstNTUuMzYsLTgyLjU3XSxbLTUzLjYyLC04Mi4yNl0sWy01MS41NCwtODJdLFstNDkuNzYsLTgxLjczXSxbLTQ3LjI3LC04MS43MV0sWy00NC44MywtODEuODVdLFstNDIuODEsLTgyLjA4XSxbLTQyLjE2LC04MS42NV0sWy00MC43NywtODEuMzZdLFstMzguMjQsLTgxLjM0XSxbLTM2LjI3LC04MS4xMl0sWy0zNC4zOSwtODAuOTFdLFstMzIuMzEsLTgwLjc3XSxbLTMwLjEsLTgwLjU5XSxbLTI4LjU1LC04MC4zNF0sWy0yOS4yNSwtNzkuOTldLFstMjkuNjksLTc5LjYzXSxbLTI5LjY5LC03OS4yNl0sWy0zMS42MiwtNzkuM10sWy0zMy42OCwtNzkuNDZdLFstMzUuNjQsLTc5LjQ2XSxbLTM1LjkxLC03OS4wOF0sWy0zNS43OCwtNzguMzRdLFstMzUuMzMsLTc4LjEyXSxbLTMzLjksLTc3Ljg5XSxbLTMyLjIxLC03Ny42NV0sWy0zMSwtNzcuMzZdLFstMjkuNzgsLTc3LjA3XSxbLTI4Ljg4LC03Ni42N10sWy0yNy41MSwtNzYuNV0sWy0yNi4xNiwtNzYuMzZdLFstMjUuNDcsLTc2LjI4XSxbLTIzLjkzLC03Ni4yNF0sWy0yMi40NiwtNzYuMTFdLFstMjEuMjIsLTc1LjkxXSxbLTIwLjAxLC03NS42N10sWy0xOC45MSwtNzUuNDRdLFstMTcuNTIsLTc1LjEzXSxbLTE2LjY0LC03NC43OV0sWy0xNS43LC03NC41XSxbLTE1LjQxLC03NC4xMV0sWy0xNi40NywtNzMuODddLFstMTYuMTEsLTczLjQ2XSxbLTE1LjQ1LC03My4xNV0sWy0xNC40MSwtNzIuOTVdLFstMTMuMzEsLTcyLjcyXSxbLTEyLjI5LC03Mi40XSxbLTExLjUxLC03Mi4wMV0sWy0xMS4wMiwtNzEuNTRdLFstMTAuMywtNzEuMjddLFstOS4xLC03MS4zMl0sWy04LjYxLC03MS42Nl0sWy03LjQyLC03MS43XSxbLTcuMzgsLTcxLjMyXSxbLTYuODcsLTcwLjkzXSxbLTUuNzksLTcxLjAzXSxbLTUuNTQsLTcxLjRdLFstNC4zNCwtNzEuNDZdLFstMy4wNSwtNzEuMjldLFstMS44LC03MS4xN10sWy0uNjYsLTcxLjIzXSxbLS4yMywtNzEuNjRdLFsuODcsLTcxLjNdLFsxLjg5LC03MS4xM10sWzMuMDIsLTcwLjk5XSxbNC4xNCwtNzAuODVdLFs1LjE2LC03MC42Ml0sWzYuMjcsLTcwLjQ2XSxbNy4xNCwtNzAuMjVdLFs3Ljc0LC02OS44OV0sWzguNDksLTcwLjE1XSxbOS41MywtNzAuMDFdLFsxMC4yNSwtNzAuNDhdLFsxMC44MiwtNzAuODNdLFsxMS45NSwtNzAuNjRdLFsxMi40LC03MC4yNV0sWzEzLjQyLC02OS45N10sWzE0LjczLC03MC4wM10sWzE1LjEzLC03MC40XSxbMTUuOTUsLTcwLjAzXSxbMTcuMDMsLTY5LjkxXSxbMTguMiwtNjkuODddLFsxOS4yNiwtNjkuODldLFsyMC4zOCwtNzAuMDFdLFsyMS40NSwtNzAuMDddLFsyMS45MiwtNzAuNF0sWzIyLjU3LC03MC43XSxbMjMuNjcsLTcwLjUyXSxbMjQuODQsLTcwLjQ4XSxbMjUuOTgsLTcwLjQ4XSxbMjcuMDksLTcwLjQ2XSxbMjguMDksLTcwLjMyXSxbMjkuMTUsLTcwLjIxXSxbMzAuMDMsLTY5LjkzXSxbMzAuOTcsLTY5Ljc2XSxbMzEuOTksLTY5LjY2XSxbMzIuNzUsLTY5LjM4XSxbMzMuMywtNjguODRdLFszMy44NywtNjguNV0sWzM0LjkxLC02OC42Nl0sWzM1LjMsLTY5LjAxXSxbMzYuMTYsLTY5LjI1XSxbMzcuMiwtNjkuMTddLFszNy45MSwtNjkuNTJdLFszOC42NSwtNjkuNzhdLFszOS42NywtNjkuNTRdLFs0MC4wMiwtNjkuMTFdLFs0MC45MiwtNjguOTNdLFs0MS45NiwtNjguNl0sWzQyLjk0LC02OC40Nl0sWzQ0LjExLC02OC4yN10sWzQ0LjksLTY4LjA1XSxbNDUuNzIsLTY3LjgyXSxbNDYuNSwtNjcuNl0sWzQ3LjQ0LC02Ny43Ml0sWzQ4LjM0LC02Ny4zN10sWzQ4Ljk5LC02Ny4wOV0sWzQ5LjkzLC02Ny4xMV0sWzUwLjc1LC02Ni44OF0sWzUwLjk1LC02Ni41Ml0sWzUxLjc5LC02Ni4yNV0sWzUyLjYxLC02Ni4wNV0sWzUzLjYxLC02NS45XSxbNTQuNTMsLTY1LjgyXSxbNTUuNDEsLTY1Ljg4XSxbNTYuMzYsLTY1Ljk3XSxbNTcuMTYsLTY2LjI1XSxbNTcuMjYsLTY2LjY4XSxbNTguMTQsLTY3LjAxXSxbNTguNzQsLTY3LjI5XSxbNTkuOTQsLTY3LjQxXSxbNjAuNjEsLTY3LjY4XSxbNjEuNDMsLTY3Ljk1XSxbNjIuMzksLTY4LjAxXSxbNjMuMTksLTY3LjgyXSxbNjQuMDUsLTY3LjQxXSxbNjQuOTksLTY3LjYyXSxbNjUuOTcsLTY3Ljc0XSxbNjYuOTEsLTY3Ljg2XSxbNjcuODksLTY3LjkzXSxbNjguODksLTY3LjkzXSxbNjkuNzEsLTY4Ljk3XSxbNjkuNjcsLTY5LjIzXSxbNjkuNTYsLTY5LjY4XSxbNjguNiwtNjkuOTNdLFs2Ny44MSwtNzAuMzFdLFs2Ny45NSwtNzAuN10sWzY5LjA3LC03MC42OF0sWzY4LjkzLC03MS4wN10sWzY4LjQyLC03MS40NF0sWzY3Ljk1LC03MS44NV0sWzY4LjcxLC03Mi4xN10sWzY5Ljg3LC03Mi4yNl0sWzcxLjAyLC03Mi4wOV0sWzcxLjU3LC03MS43XSxbNzEuOTEsLTcxLjMyXSxbNzIuNDUsLTcxLjAxXSxbNzMuMDgsLTcwLjcyXSxbNzMuMzQsLTcwLjM2XSxbNzMuODYsLTY5Ljg3XSxbNzQuNDksLTY5Ljc4XSxbNzUuNjMsLTY5Ljc0XSxbNzYuNjMsLTY5LjYyXSxbNzcuNjQsLTY5LjQ2XSxbNzguMTMsLTY5LjA3XSxbNzguNDMsLTY4LjddLFs3OS4xMSwtNjguMzNdLFs4MC4wOSwtNjguMDddLFs4MC45NCwtNjcuODhdLFs4MS40OCwtNjcuNTRdLFs4Mi4wNSwtNjcuMzddLFs4Mi43OCwtNjcuMjFdLFs4My43OCwtNjcuMzFdLFs4NC42OCwtNjcuMjFdLFs4NS42NiwtNjcuMDldLFs4Ni43NSwtNjcuMTVdLFs4Ny40OCwtNjYuODhdLFs4Ny45OSwtNjYuMjFdLFs4OC4zNiwtNjYuNDhdLFs4OC44MywtNjYuOTVdLFs4OS42NywtNjcuMTVdLFs5MC42MywtNjcuMjNdLFs5MS41OSwtNjcuMTFdLFs5Mi42MSwtNjcuMTldLFs5My41NSwtNjcuMjFdLFs5NC4xOCwtNjcuMTFdLFs5NS4wMiwtNjcuMTddLFs5NS43OCwtNjcuMzldLFs5Ni42OCwtNjcuMjVdLFs5Ny43NiwtNjcuMjVdLFs5OC42OCwtNjcuMTFdLFs5OS43MiwtNjcuMjVdLFsxMDAuMzgsLTY2LjkyXSxbMTAwLjg5LC02Ni41OF0sWzEwMS41OCwtNjYuMzFdLFsxMDIuODMsLTY1LjU2XSxbMTAzLjQ4LC02NS43XSxbMTA0LjI0LC02NS45N10sWzEwNC45MSwtNjYuMzNdLFsxMDYuMTgsLTY2LjkzXSxbMTA3LjE2LC02Ni45NV0sWzEwOC4wOCwtNjYuOTVdLFsxMDkuMTYsLTY2Ljg0XSxbMTEwLjI0LC02Ni43XSxbMTExLjA2LC02Ni40M10sWzExMS43NCwtNjYuMTNdLFsxMTIuODYsLTY2LjA5XSxbMTEzLjYsLTY1Ljg4XSxbMTE0LjM5LC02Ni4wN10sWzExNC45LC02Ni4zOV0sWzExNS42LC02Ni43XSxbMTE2LjcsLTY2LjY2XSxbMTE3LjM4LC02Ni45Ml0sWzExOC41OCwtNjcuMTddLFsxMTkuODMsLTY3LjI3XSxbMTIwLjg3LC02Ny4xOV0sWzEyMS42NSwtNjYuODhdLFsxMjIuMzIsLTY2LjU2XSxbMTIzLjIyLC02Ni40OF0sWzEyNC4xMiwtNjYuNjJdLFsxMjUuMTYsLTY2LjcyXSxbMTI2LjEsLTY2LjU2XSxbMTI3LC02Ni41Nl0sWzEyNy44OCwtNjYuNjZdLFsxMjguOCwtNjYuNzZdLFsxMjkuNywtNjYuNThdLFsxMzAuNzgsLTY2LjQzXSxbMTMxLjgsLTY2LjM5XSxbMTMyLjk0LC02Ni4zOV0sWzEzMy44NiwtNjYuMjldLFsxMzQuNzYsLTY2LjIxXSxbMTM1LjAzLC02NS43Ml0sWzEzNS4wNywtNjUuMzFdLFsxMzUuNywtNjUuNThdLFsxMzUuODcsLTY2LjAzXSxbMTM2LjIxLC02Ni40NV0sWzEzNi42MiwtNjYuNzhdLFsxMzcuNDYsLTY2Ljk1XSxbMTM4LjYsLTY2LjldLFsxMzkuOTEsLTY2Ljg4XSxbMTQwLjgxLC02Ni44Ml0sWzE0Mi4xMiwtNjYuODJdLFsxNDMuMDYsLTY2LjhdLFsxNDQuMzcsLTY2Ljg0XSxbMTQ1LjQ5LC02Ni45Ml0sWzE0Ni4yLC02Ny4yM10sWzE0NiwtNjcuNl0sWzE0Ni42NSwtNjcuOV0sWzE0Ny43MiwtNjguMTNdLFsxNDguODQsLTY4LjM5XSxbMTUwLjEzLC02OC41Nl0sWzE1MS40OCwtNjguNzJdLFsxNTIuNSwtNjguODddLFsxNTMuNjQsLTY4Ljg5XSxbMTU0LjI4LC02OC41Nl0sWzE1NS4xNywtNjguODRdLFsxNTUuOTMsLTY5LjE1XSxbMTU2LjgxLC02OS4zOF0sWzE1OC4wMywtNjkuNDhdLFsxNTkuMTgsLTY5LjZdLFsxNTkuNjcsLTY5Ljk5XSxbMTYwLjgxLC03MC4yM10sWzE2MS41NywtNzAuNThdLFsxNjIuNjksLTcwLjc0XSxbMTYzLjg0LC03MC43Ml0sWzE2NC45MiwtNzAuNzhdLFsxNjYuMTEsLTcwLjc2XSxbMTY3LjMxLC03MC44M10sWzE2OC40MywtNzAuOTddLFsxNjkuNDYsLTcxLjIxXSxbMTcwLjUsLTcxLjRdLFsxNzEuMjEsLTcxLjddLFsxNzEuMDksLTcyLjA5XSxbMTcwLjU2LC03Mi40NF0sWzE3MC4xMSwtNzIuODldLFsxNjkuNzYsLTczLjI0XSxbMTY5LjI5LC03My42Nl0sWzE2Ny45OCwtNzMuODFdLFsxNjcuMzksLTc0LjE3XSxbMTY2LjA5LC03NC4zOF0sWzE2NS42NCwtNzQuNzddLFsxNjQuOTYsLTc1LjE1XSxbMTY0LjIzLC03NS40Nl0sWzE2My44MiwtNzUuODddLFsxNjMuNTcsLTc2LjI0XSxbMTYzLjQ3LC03Ni42OV0sWzE2My40OSwtNzcuMDddLFsxNjQuMDYsLTc3LjQ2XSxbMTY0LjI3LC03Ny44M10sWzE2NC43NCwtNzguMThdLFsxNjYuNiwtNzguMzJdLFsxNjcsLTc4Ljc1XSxbMTY1LjE5LC03OC45MV0sWzE2My42NywtNzkuMTJdLFsxNjEuNzcsLTc5LjE2XSxbMTYwLjkyLC03OS43M10sWzE2MC43NSwtODAuMl0sWzE2MC4zMiwtODAuNTddLFsxNTkuNzksLTgwLjk1XSxbMTYxLjEyLC04MS4yOF0sWzE2MS42MywtODEuNjldLFsxNjIuNDksLTgyLjA2XSxbMTYzLjcxLC04Mi40XSxbMTY1LjEsLTgyLjcxXSxbMTY2LjYsLTgzLjAyXSxbMTY4LjksLTgzLjM0XSxbMTY5LjQsLTgzLjgzXSxbMTcyLjI4LC04NC4wNF0sWzE3Mi40OCwtODQuMTJdLFsxNzMuMjIsLTg0LjQxXSxbMTc1Ljk5LC04NC4xNl0sWzE3OC4yOCwtODQuNDddLFsxODAsLTg0LjcxXV1dXX0se246YE5vcnRoZXJuIEN5cHJ1c2AsYTI6YGAsYTM6YENZTmAscDpgQ05gLGw6WzMzLjY5LDM1LjIyXSxnOltbW1szMi43MywzNS4xNF0sWzMyLjgsMzUuMTVdLFszMi45NSwzNS4zOV0sWzMzLjY3LDM1LjM3XSxbMzQuNTgsMzUuNjddLFszMy45LDM1LjI1XSxbMzMuOTcsMzUuMDZdLFszMy44NywzNS4wOV0sWzMzLjY4LDM1LjAyXSxbMzMuNTMsMzUuMDRdLFszMy40OCwzNV0sWzMzLjQ2LDM1LjFdLFszMy4zOCwzNS4xNl0sWzMzLjE5LDM1LjE3XSxbMzIuOTIsMzUuMDldLFszMi43MywzNS4xNF1dXV19LHtuOmBDeXBydXNgLGEyOmBDWWAsYTM6YENZUGAscDpgQ1lgLGw6WzMzLjA4LDM0LjkxXSxnOltbW1szMi43MywzNS4xNF0sWzMyLjkyLDM1LjA5XSxbMzMuMTksMzUuMTddLFszMy4zOCwzNS4xNl0sWzMzLjQ2LDM1LjFdLFszMy40OCwzNV0sWzMzLjUzLDM1LjA0XSxbMzMuNjgsMzUuMDJdLFszMy44NywzNS4wOV0sWzMzLjk3LDM1LjA2XSxbMzQsMzQuOThdLFszMi45OCwzNC41N10sWzMyLjQ5LDM0LjddLFszMi4yNiwzNS4xXSxbMzIuNzMsMzUuMTRdXV1dfSx7bjpgTW9yb2Njb2AsYTI6YE1BYCxhMzpgTUFSYCxwOmBNQWAsbDpbLTcuMTksMzEuNjVdLGc6W1tbWy0yLjE3LDM1LjE3XSxbLTEuNzksMzQuNTNdLFstMS43MywzMy45Ml0sWy0xLjM5LDMyLjg2XSxbLTEuMTIsMzIuNjVdLFstMS4zMSwzMi4yNl0sWy0yLjYyLDMyLjA5XSxbLTMuMDcsMzEuNzJdLFstMy42NSwzMS42NF0sWy0zLjY5LDMwLjldLFstNC44NiwzMC41XSxbLTUuMjQsMzBdLFstNi4wNiwyOS43M10sWy03LjA2LDI5LjU4XSxbLTguNjcsMjguODRdLFstOC42NywyNy42Nl0sWy04LjgyLDI3LjY2XSxbLTguNzksMjcuMTJdLFstOS40MSwyNy4wOV0sWy05Ljc0LDI2Ljg2XSxbLTEwLjE5LDI2Ljg2XSxbLTEwLjU1LDI2Ljk5XSxbLTExLjM5LDI2Ljg4XSxbLTExLjcyLDI2LjFdLFstMTIuMDMsMjYuMDNdLFstMTIuNSwyNC43N10sWy0xMy44OSwyMy42OV0sWy0xNC4yMiwyMi4zMV0sWy0xNC42MywyMS44Nl0sWy0xNC43NSwyMS41XSxbLTE3LDIxLjQyXSxbLTE3LjAyLDIxLjQyXSxbLTE2Ljk3LDIxLjg5XSxbLTE2LjU5LDIyLjE2XSxbLTE2LjI2LDIyLjY4XSxbLTE2LjMzLDIzLjAyXSxbLTE1Ljk4LDIzLjcyXSxbLTE1LjQzLDI0LjM2XSxbLTE1LjA5LDI0LjUyXSxbLTE0LjgyLDI1LjFdLFstMTQuOCwyNS42NF0sWy0xNC40NCwyNi4yNV0sWy0xMy43NywyNi42Ml0sWy0xMy4xNCwyNy42NF0sWy0xMy4xMiwyNy42NV0sWy0xMi42MiwyOC4wNF0sWy0xMS42OSwyOC4xNV0sWy0xMC45LDI4LjgzXSxbLTEwLjQsMjkuMV0sWy05LjU2LDI5LjkzXSxbLTkuODEsMzEuMThdLFstOS40MywzMi4wNF0sWy05LjMsMzIuNTZdLFstOC42NiwzMy4yNF0sWy03LjY1LDMzLjddLFstNi45MSwzNC4xMV0sWy02LjI0LDM1LjE1XSxbLTUuOTMsMzUuNzZdLFstNS4xOSwzNS43Nl0sWy00LjU5LDM1LjMzXSxbLTMuNjQsMzUuNF0sWy0yLjYsMzUuMThdLFstMi4xNywzNS4xN11dXV19LHtuOmBFZ3lwdGAsYTI6YEVHYCxhMzpgRUdZYCxwOmBFR2AsbDpbMjkuNDUsMjYuMTldLGc6W1tbWzM2Ljg3LDIyXSxbMzIuOSwyMl0sWzI5LjAyLDIyXSxbMjUsMjJdLFsyNSwyNS42OF0sWzI1LDI5LjI0XSxbMjQuNywzMC4wNF0sWzI0Ljk2LDMwLjY2XSxbMjQuOCwzMS4wOV0sWzI1LjE2LDMxLjU3XSxbMjYuNSwzMS41OV0sWzI3LjQ2LDMxLjMyXSxbMjguNDUsMzEuMDNdLFsyOC45MSwzMC44N10sWzI5LjY4LDMxLjE5XSxbMzAuMSwzMS40N10sWzMwLjk4LDMxLjU2XSxbMzEuNjksMzEuNDNdLFszMS45NiwzMC45M10sWzMyLjE5LDMxLjI2XSxbMzIuOTksMzEuMDJdLFszMy43NywzMC45N10sWzM0LjI3LDMxLjIyXSxbMzQuODIsMjkuNzZdLFszNC45MiwyOS41XSxbMzQuNjQsMjkuMV0sWzM0LjQzLDI4LjM0XSxbMzQuMTUsMjcuODJdLFszMy45MiwyNy42NV0sWzMzLjU5LDI3Ljk3XSxbMzMuMTQsMjguNDJdLFszMi40MiwyOS44NV0sWzMyLjMyLDI5Ljc2XSxbMzIuNzMsMjguNzFdLFszMy4zNSwyNy43XSxbMzQuMSwyNi4xNF0sWzM0LjQ3LDI1LjZdLFszNC44LDI1LjAzXSxbMzUuNjksMjMuOTNdLFszNS40OSwyMy43NV0sWzM1LjUzLDIzLjFdLFszNi42OSwyMi4yXSxbMzYuODcsMjJdXV1dfSx7bjpgTGlieWFgLGEyOmBMWWAsYTM6YExCWWAscDpgTFlgLGw6WzE4LjAxLDI2LjY0XSxnOltbW1syNSwyMl0sWzI1LDIwXSxbMjMuODUsMjBdLFsyMy44NCwxOS41OF0sWzE5Ljg1LDIxLjVdLFsxNS44NiwyMy40MV0sWzE0Ljg1LDIyLjg2XSxbMTQuMTQsMjIuNDldLFsxMy41OCwyMy4wNF0sWzEyLDIzLjQ3XSxbMTEuNTYsMjQuMV0sWzEwLjc3LDI0LjU2XSxbMTAuMywyNC4zOF0sWzkuOTUsMjQuOTRdLFs5LjkxLDI1LjM3XSxbOS4zMiwyNi4wOV0sWzkuNzIsMjYuNTFdLFs5LjYzLDI3LjE0XSxbOS43NiwyNy42OV0sWzkuNjgsMjguMTRdLFs5Ljg2LDI4Ljk2XSxbOS44MSwyOS40Ml0sWzkuNDgsMzAuMzFdLFs5Ljk3LDMwLjU0XSxbMTAuMDYsMzAuOTZdLFs5Ljk1LDMxLjM4XSxbMTAuNjQsMzEuNzZdLFsxMC45NCwzMi4wOF0sWzExLjQzLDMyLjM3XSxbMTEuNDksMzMuMTRdLFsxMi42NiwzMi43OV0sWzEzLjA4LDMyLjg4XSxbMTMuOTIsMzIuNzFdLFsxNS4yNSwzMi4yN10sWzE1LjcxLDMxLjM4XSxbMTYuNjEsMzEuMThdLFsxOC4wMiwzMC43Nl0sWzE5LjA5LDMwLjI3XSxbMTkuNTcsMzAuNTNdLFsyMC4wNSwzMC45OV0sWzE5LjgyLDMxLjc1XSxbMjAuMTMsMzIuMjRdLFsyMC44NSwzMi43MV0sWzIxLjU0LDMyLjg0XSxbMjIuOSwzMi42NF0sWzIzLjI0LDMyLjE5XSxbMjMuNjEsMzIuMTldLFsyMy45MywzMi4wMl0sWzI0LjkyLDMxLjldLFsyNS4xNiwzMS41N10sWzI0LjgsMzEuMDldLFsyNC45NiwzMC42Nl0sWzI0LjcsMzAuMDRdLFsyNSwyOS4yNF0sWzI1LDI1LjY4XSxbMjUsMjJdXV1dfSx7bjpgRXRoaW9waWFgLGEyOmBFVGAsYTM6YEVUSGAscDpgRVRgLGw6WzM5LjA5LDguMDNdLGc6W1tbWzQ3Ljc5LDhdLFs0NC45Niw1XSxbNDMuNjYsNC45Nl0sWzQyLjc3LDQuMjVdLFs0Mi4xMyw0LjIzXSxbNDEuODYsMy45Ml0sWzQxLjE3LDMuOTJdLFs0MC43Nyw0LjI2XSxbMzkuODUsMy44NF0sWzM5LjU2LDMuNDJdLFszOC44OSwzLjVdLFszOC42NywzLjYyXSxbMzguNDQsMy41OV0sWzM4LjEyLDMuNl0sWzM2Ljg2LDQuNDVdLFszNi4xNiw0LjQ1XSxbMzUuODIsNC43OF0sWzM1LjgyLDUuMzRdLFszNS4zLDUuNTFdLFszNC43MSw2LjU5XSxbMzQuMjUsNi44M10sWzM0LjA4LDcuMjNdLFszMy41Nyw3LjcxXSxbMzIuOTUsNy43OF0sWzMzLjI5LDguMzVdLFszMy44Myw4LjM4XSxbMzMuOTcsOC42OF0sWzMzLjk2LDkuNThdLFszNC4yNiwxMC42M10sWzM0LjczLDEwLjkxXSxbMzQuODMsMTEuMzJdLFszNS4yNiwxMi4wOF0sWzM1Ljg2LDEyLjU4XSxbMzYuMjcsMTMuNTZdLFszNi40MywxNC40Ml0sWzM3LjU5LDE0LjIxXSxbMzcuOTEsMTQuOTZdLFszOC41MSwxNC41MV0sWzM5LjEsMTQuNzRdLFszOS4zNCwxNC41M10sWzQwLjAzLDE0LjUyXSxbNDAuOSwxNC4xMl0sWzQxLjE2LDEzLjc3XSxbNDEuNiwxMy40NV0sWzQyLjAxLDEyLjg3XSxbNDIuMzUsMTIuNTRdLFs0MiwxMi4xXSxbNDEuNjYsMTEuNjNdLFs0MS43NCwxMS4zNl0sWzQxLjc2LDExLjA1XSxbNDIuMzEsMTEuMDNdLFs0Mi41NSwxMS4xMV0sWzQyLjc4LDEwLjkzXSxbNDIuNTYsMTAuNTddLFs0Mi45MywxMC4wMl0sWzQzLjMsOS41NF0sWzQzLjY4LDkuMThdLFs0Ni45NSw4XSxbNDcuNzksOF1dXV19LHtuOmBEamlib3V0aWAsYTI6YERKYCxhMzpgREpJYCxwOmBESmAsbDpbNDIuNSwxMS45OF0sZzpbW1tbNDIuMzUsMTIuNTRdLFs0Mi43OCwxMi40Nl0sWzQzLjA4LDEyLjddLFs0My4zMiwxMi4zOV0sWzQzLjI5LDExLjk3XSxbNDIuNzIsMTEuNzRdLFs0My4xNSwxMS40Nl0sWzQyLjc4LDEwLjkzXSxbNDIuNTUsMTEuMTFdLFs0Mi4zMSwxMS4wM10sWzQxLjc2LDExLjA1XSxbNDEuNzQsMTEuMzZdLFs0MS42NiwxMS42M10sWzQyLDEyLjFdLFs0Mi4zNSwxMi41NF1dXV19LHtuOmBTb21hbGlsYW5kYCxhMjpgYCxhMzpgU09MYCxwOmBTTGAsbDpbNDYuNzMsOS40NF0sZzpbW1tbNDguOTUsMTEuNDFdLFs0OC45NCwxMS4zOV0sWzQ4Ljk0LDEwLjk4XSxbNDguOTQsOS45N10sWzQ4Ljk0LDkuNDVdLFs0OC40OSw4Ljg0XSxbNDcuNzksOF0sWzQ2Ljk1LDhdLFs0My42OCw5LjE4XSxbNDMuMyw5LjU0XSxbNDIuOTMsMTAuMDJdLFs0Mi41NiwxMC41N10sWzQyLjc4LDEwLjkzXSxbNDMuMTUsMTEuNDZdLFs0My40NywxMS4yOF0sWzQzLjY3LDEwLjg2XSxbNDQuMTIsMTAuNDVdLFs0NC42MSwxMC40NF0sWzQ1LjU2LDEwLjddLFs0Ni42NSwxMC44Ml0sWzQ3LjUzLDExLjEzXSxbNDguMDIsMTEuMTldLFs0OC4zOCwxMS4zOF0sWzQ4Ljk1LDExLjQxXV1dXX0se246YFVnYW5kYWAsYTI6YFVHYCxhMzpgVUdBYCxwOmBVR2AsbDpbMzIuOTUsMS45N10sZzpbW1tbMzMuOSwtLjk1XSxbMzEuODcsLTEuMDNdLFszMC43NywtMS4wMV0sWzMwLjQyLC0xLjEzXSxbMjkuODIsLTEuNDRdLFsyOS41OCwtMS4zNF0sWzI5LjU5LC0uNTldLFsyOS44MiwtLjIxXSxbMjkuODgsLjZdLFszMC4wOSwxLjA2XSxbMzAuNDcsMS41OF0sWzMwLjg1LDEuODVdLFszMS4xNywyLjJdLFszMC43NywyLjM0XSxbMzAuODMsMy41MV0sWzMxLjI1LDMuNzhdLFszMS44OCwzLjU2XSxbMzIuNjksMy43OV0sWzMzLjM5LDMuNzldLFszNC4wMSw0LjI1XSxbMzQuNDgsMy41Nl0sWzM0LjYsMy4wNV0sWzM1LjA0LDEuOTFdLFszNC42NywxLjE4XSxbMzQuMTgsLjUyXSxbMzMuODksLjExXSxbMzMuOSwtLjk1XV1dXX0se246YFJ3YW5kYWAsYTI6YFJXYCxhMzpgUldBYCxwOmBSV2AsbDpbMzAuMSwtMS45XSxnOltbW1szMC40MiwtMS4xM10sWzMwLjgyLC0xLjddLFszMC43NiwtMi4yOV0sWzMwLjQ3LC0yLjQxXSxbMjkuOTQsLTIuMzVdLFsyOS42MywtMi45Ml0sWzI5LjAyLC0yLjg0XSxbMjkuMTIsLTIuMjldLFsyOS4yNSwtMi4yMl0sWzI5LjI5LC0xLjYyXSxbMjkuNTgsLTEuMzRdLFsyOS44MiwtMS40NF0sWzMwLjQyLC0xLjEzXV1dXX0se246YEJvc25pYSBhbmQgSGVyemVnb3ZpbmFgLGEyOmBCQWAsYTM6YEJJSGAscDpgQmlIYCxsOlsxOC4wNyw0NC4wOV0sZzpbW1tbMTguNTYsNDIuNjVdLFsxNy42Nyw0My4wM10sWzE3LjMsNDMuNDVdLFsxNi45Miw0My42N10sWzE2LjQ2LDQ0LjA0XSxbMTYuMjQsNDQuMzVdLFsxNS43NSw0NC44Ml0sWzE1Ljk2LDQ1LjIzXSxbMTYuMzIsNDVdLFsxNi41Myw0NS4yMV0sWzE3LDQ1LjIzXSxbMTcuODYsNDUuMDddLFsxOC41NSw0NS4wOF0sWzE5LjAxLDQ0Ljg2XSxbMTkuMzcsNDQuODZdLFsxOS4xMiw0NC40Ml0sWzE5LjYsNDQuMDRdLFsxOS40NSw0My41N10sWzE5LjIyLDQzLjUyXSxbMTkuMDMsNDMuNDNdLFsxOC43MSw0My4yXSxbMTguNTYsNDIuNjVdXV1dfSx7bjpgTm9ydGggTWFjZWRvbmlhYCxhMjpgTUtgLGEzOmBNS0RgLHA6YE5NYCxsOlsyMS41Niw0MS41Nl0sZzpbW1tbMjIuMzgsNDIuMzJdLFsyMi44OCw0Ml0sWzIyLjk1LDQxLjM0XSxbMjIuNzYsNDEuM10sWzIyLjYsNDEuMTNdLFsyMi4wNiw0MS4xNV0sWzIxLjY3LDQwLjkzXSxbMjEuMDIsNDAuODRdLFsyMC42MSw0MS4wOV0sWzIwLjQ2LDQxLjUyXSxbMjAuNTksNDEuODZdLFsyMC43Miw0MS44NV0sWzIwLjc2LDQyLjA1XSxbMjEuMzUsNDIuMjFdLFsyMS41OCw0Mi4yNV0sWzIxLjkyLDQyLjNdLFsyMi4zOCw0Mi4zMl1dXV19LHtuOmBTZXJiaWFgLGEyOmBSU2AsYTM6YFNSQmAscDpgUlNgLGw6WzIwLjc5LDQ0LjE5XSxnOltbW1sxOC44Myw0NS45MV0sWzE5LjYsNDYuMTddLFsyMC4yMiw0Ni4xM10sWzIwLjc2LDQ1LjczXSxbMjAuODcsNDUuNDJdLFsyMS40OCw0NS4xOF0sWzIxLjU2LDQ0Ljc3XSxbMjIuMTUsNDQuNDhdLFsyMi40Niw0NC43XSxbMjIuNzEsNDQuNThdLFsyMi40Nyw0NC40MV0sWzIyLjY2LDQ0LjIzXSxbMjIuNDEsNDQuMDFdLFsyMi41LDQzLjY0XSxbMjIuOTksNDMuMjFdLFsyMi42LDQyLjldLFsyMi40NCw0Mi41OF0sWzIyLjU1LDQyLjQ2XSxbMjIuMzgsNDIuMzJdLFsyMS45Miw0Mi4zXSxbMjEuNTgsNDIuMjVdLFsyMS41NCw0Mi4zMl0sWzIxLjY2LDQyLjQ0XSxbMjEuNzgsNDIuNjhdLFsyMS42Myw0Mi42OF0sWzIxLjQ0LDQyLjg2XSxbMjEuMjcsNDIuOTFdLFsyMS4xNCw0My4wN10sWzIwLjk2LDQzLjEzXSxbMjAuODEsNDMuMjddLFsyMC42NCw0My4yMl0sWzIwLjUsNDIuODhdLFsyMC4yNiw0Mi44MV0sWzIwLjM0LDQyLjldLFsxOS45Niw0My4xMV0sWzE5LjYzLDQzLjIxXSxbMTkuNDgsNDMuMzVdLFsxOS4yMiw0My41Ml0sWzE5LjQ1LDQzLjU3XSxbMTkuNiw0NC4wNF0sWzE5LjEyLDQ0LjQyXSxbMTkuMzcsNDQuODZdLFsxOS4wMSw0NC44Nl0sWzE5LjM5LDQ1LjI0XSxbMTkuMDcsNDUuNTJdLFsxOC44Myw0NS45MV1dXV19LHtuOmBNb250ZW5lZ3JvYCxhMjpgTUVgLGEzOmBNTkVgLHA6YE1FYCxsOlsxOS4xNCw0Mi44XSxnOltbW1syMC4wNyw0Mi41OV0sWzE5LjgsNDIuNV0sWzE5Ljc0LDQyLjY5XSxbMTkuMyw0Mi4yXSxbMTkuMzcsNDEuODhdLFsxOS4xNiw0MS45Nl0sWzE4Ljg4LDQyLjI4XSxbMTguNDUsNDIuNDhdLFsxOC41Niw0Mi42NV0sWzE4LjcxLDQzLjJdLFsxOS4wMyw0My40M10sWzE5LjIyLDQzLjUyXSxbMTkuNDgsNDMuMzVdLFsxOS42Myw0My4yMV0sWzE5Ljk2LDQzLjExXSxbMjAuMzQsNDIuOV0sWzIwLjI2LDQyLjgxXSxbMjAuMDcsNDIuNTldXV1dfSx7bjpgS29zb3ZvYCxhMjpgYCxhMzpgS09TYCxwOmBLT2AsbDpbMjAuODYsNDIuNTldLGc6W1tbWzIwLjU5LDQxLjg2XSxbMjAuNTIsNDIuMjJdLFsyMC4yOCw0Mi4zMl0sWzIwLjA3LDQyLjU5XSxbMjAuMjYsNDIuODFdLFsyMC41LDQyLjg4XSxbMjAuNjQsNDMuMjJdLFsyMC44MSw0My4yN10sWzIwLjk2LDQzLjEzXSxbMjEuMTQsNDMuMDddLFsyMS4yNyw0Mi45MV0sWzIxLjQ0LDQyLjg2XSxbMjEuNjMsNDIuNjhdLFsyMS43OCw0Mi42OF0sWzIxLjY2LDQyLjQ0XSxbMjEuNTQsNDIuMzJdLFsyMS41OCw0Mi4yNV0sWzIxLjM1LDQyLjIxXSxbMjAuNzYsNDIuMDVdLFsyMC43Miw0MS44NV0sWzIwLjU5LDQxLjg2XV1dXX0se246YFRyaW5pZGFkIGFuZCBUb2JhZ29gLGEyOmBUVGAsYTM6YFRUT2AscDpgVFRgLGw6Wy02MC45MiwxMV0sZzpbW1tbLTYxLjY4LDEwLjc2XSxbLTYxLjEsMTAuODldLFstNjAuODksMTAuODZdLFstNjAuOTMsMTAuMTFdLFstNjEuNzcsMTBdLFstNjEuOTUsMTAuMDldLFstNjEuNjYsMTAuMzddLFstNjEuNjgsMTAuNzZdXV1dfSx7bjpgU291dGggU3VkYW5gLGEyOmBTU2AsYTM6YFNTRGAscDpgU1NgLGw6WzMwLjM5LDcuMjNdLGc6W1tbWzMwLjgzLDMuNTFdLFsyOS45NSw0LjE3XSxbMjkuNzIsNC42XSxbMjkuMTYsNC4zOV0sWzI4LjcsNC40Nl0sWzI4LjQzLDQuMjldLFsyNy45OCw0LjQxXSxbMjcuMzcsNS4yM10sWzI3LjIxLDUuNTVdLFsyNi40Nyw1Ljk1XSxbMjYuMjEsNi41NV0sWzI1LjgsNi45OF0sWzI1LjEyLDcuNV0sWzI1LjExLDcuODNdLFsyNC41Nyw4LjIzXSxbMjMuODksOC42Ml0sWzI0LjE5LDguNzNdLFsyNC41NCw4LjkyXSxbMjQuNzksOS44MV0sWzI1LjA3LDEwLjI3XSxbMjUuNzksMTAuNDFdLFsyNS45NiwxMC4xNF0sWzI2LjQ4LDkuNTVdLFsyNi43NSw5LjQ3XSxbMjcuMTEsOS42NF0sWzI3LjgzLDkuNl0sWzI3Ljk3LDkuNF0sWzI4Ljk3LDkuNF0sWzI5LDkuNl0sWzI5LjUyLDkuNzldLFsyOS42MiwxMC4wOF0sWzMwLDEwLjI5XSxbMzAuODQsOS43MV0sWzMxLjM1LDkuODFdLFszMS44NSwxMC41M10sWzMyLjQsMTEuMDhdLFszMi4zMSwxMS42OF0sWzMyLjA3LDExLjk3XSxbMzIuNjcsMTIuMDJdLFszMi43NCwxMi4yNV0sWzMzLjIxLDEyLjE4XSxbMzMuMDksMTEuNDRdLFszMy4yMSwxMC43Ml0sWzMzLjcyLDEwLjMzXSxbMzMuODQsOS45OF0sWzMzLjgyLDkuNDhdLFszMy45Niw5LjQ2XSxbMzMuOTcsOC42OF0sWzMzLjgzLDguMzhdLFszMy4yOSw4LjM1XSxbMzIuOTUsNy43OF0sWzMzLjU3LDcuNzFdLFszNC4wOCw3LjIzXSxbMzQuMjUsNi44M10sWzM0LjcxLDYuNTldLFszNS4zLDUuNTFdLFszNC42Miw0Ljg1XSxbMzQuMDEsNC4yNV0sWzMzLjM5LDMuNzldLFszMi42OSwzLjc5XSxbMzEuODgsMy41Nl0sWzMxLjI1LDMuNzhdLFszMC44MywzLjUxXV1dXX1dfSkpLEZmPW4oe1JFR0lPTl9NQVBfSU1QTEVNRU5UQVRJT05fTUFSS0VSOigpPT5lcCxwcm9qZWN0UmVnaW9uTWFwUG9pbnQ6KCk9PklmLHJlZ2lvbk1hcENvbG9yU2NhbGU6KCk9PkpmLHJlbmRlclJlZ2lvbk1hcENoYXJ0OigpPT4kZixyZXNvbHZlUmVnaW9uTWFwRmVhdHVyZTooKT0+UmZ9KTtmdW5jdGlvbiBJZihlLHQpe2xldCBuPXQ9PT1gbWVyY2F0b3JgfHx0PT09YG1pbGxlcmB8fHQ9PT1gYWxiZXJzYHx8dD09PWByb2JpbnNvbmA/dDpgcm9iaW5zb25gLHI9cnAoTWF0aC5tYXgoLTE4MCxNYXRoLm1pbigxODAsZVswXSkpKSxpPU1hdGgubWF4KC04OS45OTksTWF0aC5taW4oODkuOTk5LGVbMV0pKSxhPXJwKGkpO2lmKG49PT1gbWVyY2F0b3JgKXtsZXQgZT1ycChNYXRoLm1heCgtODUsTWF0aC5taW4oODUsaSkpKTtyZXR1cm57eDpyLHk6LU1hdGgubG9nKE1hdGgudGFuKE1hdGguUEkvNCtlLzIpKX19aWYobj09PWBtaWxsZXJgKXJldHVybnt4OnIseTotMS4yNSpNYXRoLmxvZyhNYXRoLnRhbihNYXRoLlBJLzQrLjQqYSkpfTtpZihuPT09YGFsYmVyc2Ape2xldCBlPXJwKDIwKSx0PXJwKDUwKSxuPS41KihNYXRoLnNpbihlKStNYXRoLnNpbih0KSksaT1NYXRoLmNvcyhlKSoqMisyKm4qTWF0aC5zaW4oZSksbz1NYXRoLnNxcnQoaSkvbixzPU1hdGguc3FydChNYXRoLm1heCgwLGktMipuKk1hdGguc2luKGEpKSkvbixjPW4qcjtyZXR1cm57eDpzKk1hdGguc2luKGMpLHk6by1zKk1hdGguY29zKGMpfX1sZXQgbz1NYXRoLmFicyhpKSxzPU1hdGgubWluKDE3LE1hdGguZmxvb3Ioby81KSksYz1NYXRoLm1pbigxLChvLXMqNSkvNSksbD1lPT5lW3NdKyhlW3MrMV0tZVtzXSkqYztyZXR1cm57eDouODQ4NypyKmwodHApLHk6LTEuMzUyMypNYXRoLnNpZ24oaSkqbChucCl9fWZ1bmN0aW9uIExmKGUpe3JldHVybiBlLm5vcm1hbGl6ZShgTkZLRGApLnJlcGxhY2UoL1tcdTAzMDAtXHUwMzZmXS9nLGBgKS50b0xvd2VyQ2FzZSgpLnJlcGxhY2UoL1teYS16MC05XSsvZyxgYCl9ZnVuY3Rpb24gUmYoZSx0KXtsZXQgbj1lPT5hcC5nZXQoZSk/P29wLmdldChlKT8/c3AuZ2V0KGUpPz9jcC5nZXQoZSkscj10P24oTGYodCkpOnZvaWQgMDtpZihyKXJldHVybiByO2xldCBpPUxmKGUpO3JldHVybiBuKGkpPz8obHBbaV0/bihMZihscFtpXSkpOnZvaWQgMCl9ZnVuY3Rpb24gemYoZSx0KXtsZXQgbj0oZT8/YGApLnJlcGxhY2UoL14jLyxgYCkuc2xpY2UoMCw2KTtyZXR1cm4vXlswLTlhLWZdezZ9JC9pLnRlc3Qobik/WzAsMiw0XS5tYXAoZT0+TnVtYmVyLnBhcnNlSW50KG4uc2xpY2UoZSxlKzIpLDE2KSk6emYodCxgMDAwMDAwYCl9ZnVuY3Rpb24gQmYoZSl7cmV0dXJuYCMke2UubWFwKGU9Pk1hdGgucm91bmQoTWF0aC5tYXgoMCxNYXRoLm1pbigyNTUsZSkpKS50b1N0cmluZygxNikucGFkU3RhcnQoMixgMGApKS5qb2luKGBgKS50b1VwcGVyQ2FzZSgpfWB9ZnVuY3Rpb24gVmYoZSx0LG4pe3JldHVybiBCZihlLm1hcCgoZSxyKT0+ZSsodFtyXS1lKSpNYXRoLm1heCgwLE1hdGgubWluKDEsbikpKSl9ZnVuY3Rpb24gSGYoW2UsdCxuXSl7bGV0IHI9ZS8yNTUsaT10LzI1NSxhPW4vMjU1LG89TWF0aC5tYXgocixpLGEpLHM9TWF0aC5taW4ocixpLGEpLGM9KG8rcykvMixsPW8tcztpZihsPT09MClyZXR1cm5bMCwwLGNdO2xldCB1PWwvKDEtTWF0aC5hYnMoMipjLTEpKTtyZXR1cm5bKChvPT09cj8oaS1hKS9sJTY6bz09PWk/KGEtcikvbCsyOihyLWkpL2wrNCkqNjArMzYwKSUzNjAsdSxjXX1mdW5jdGlvbiBVZihlLHQsbil7bGV0IHI9KDEtTWF0aC5hYnMoMipuLTEpKSp0LGk9KGUlMzYwKzM2MCklMzYwLzYwLGE9ciooMS1NYXRoLmFicyhpJTItMSkpLFtvLHMsY109aTwxP1tyLGEsMF06aTwyP1thLHIsMF06aTwzP1swLHIsYV06aTw0P1swLGEscl06aTw1P1thLDAscl06W3IsMCxhXSxsPW4tci8yO3JldHVybltvK2wscytsLGMrbF0ubWFwKGU9PmUqMjU1KX1mdW5jdGlvbiBXZihlKXtsZXRbdCxuLHJdPUhmKHpmKGUsYDQ0NzJDNGApKTtyZXR1cm57bWluOkJmKFVmKHQsbixyKi4yKy44KSksbWF4OkJmKFVmKHQsbixyKi43NSkpfX1mdW5jdGlvbiBHZihlLHQsbil7bGV0IHI9TWF0aC5tYXgoMCxNYXRoLm1pbigxLG4pKSxpPWUrKHQtZSkqcjtpZihOdW1iZXIuaXNGaW5pdGUoaSkpcmV0dXJuIGk7bGV0IGE9TWF0aC5tYXgoTWF0aC5hYnMoZSksTWF0aC5hYnModCkpO3JldHVybiEoYT4wKXx8IU51bWJlci5pc0Zpbml0ZShhKT8wOihlL2EqKDEtcikrdC9hKnIpKmF9ZnVuY3Rpb24gS2YoZSx0LG4pe2lmKHQ9PT1uKXJldHVybiAuNTtsZXQgcj0oZS10KS8obi10KTtpZihOdW1iZXIuaXNGaW5pdGUocikpcmV0dXJuIHI7bGV0IGk9TWF0aC5tYXgoTWF0aC5hYnMoZSksTWF0aC5hYnModCksTWF0aC5hYnMobikpO3JldHVybiEoaT4wKXx8IU51bWJlci5pc0Zpbml0ZShpKT8uNTooZS9pLXQvaSkvKG4vaS10L2kpfWZ1bmN0aW9uIHFmKGUsdCxuLHIpe3JldHVybiFlfHxlLmtpbmQ9PT1gZXh0cmVtZVZhbHVlYD90OmUua2luZD09PWBwZXJjZW50YCYmTnVtYmVyLmlzRmluaXRlKGUudmFsdWUpP0dmKG4scixlLnZhbHVlLzEwMCk6ZS5raW5kPT09YG51bWJlcmAmJk51bWJlci5pc0Zpbml0ZShlLnZhbHVlKT9lLnZhbHVlOnR9ZnVuY3Rpb24gSmYoZSx0LG4pe2xldCByPTEvMCxpPS0xLzA7Zm9yKGxldCB0IG9mIGUpTnVtYmVyLmlzRmluaXRlKHQpJiYocj1NYXRoLm1pbihyLHQpLGk9TWF0aC5tYXgoaSx0KSk7KCFOdW1iZXIuaXNGaW5pdGUocil8fCFOdW1iZXIuaXNGaW5pdGUoaSkpJiYocj0wLGk9MSk7bGV0IGE9V2Yobiksbz1CZih6Zih0Py5taW5Db2xvcixhLm1pbikpLHM9dD8uc3RvcENvdW50PT09MyYmdC5taWRDb2xvcj9CZih6Zih0Lm1pZENvbG9yLGA1QjlCRDVgKSk6dm9pZCAwLGM9QmYoemYodD8ubWF4Q29sb3IsYS5tYXgpKSxsPXFmKHQ/Lm1pblBvc2l0aW9uLHIscixpKSx1PXFmKHQ/Lm1heFBvc2l0aW9uLGkscixpKSxkPXFmKHQ/Lm1pZFBvc2l0aW9uLChsK3UpLzIscixpKSxmPU1hdGgubWluKGwsdSkscD1NYXRoLm1heChsLHUpO3JldHVybnttaW46cixtYXg6aSxtaW5Db2xvcjpvLG1pZENvbG9yOnMsbWF4Q29sb3I6Yyxjb2xvcihlKXtyZXR1cm4gcz9lPD1kP1ZmKHpmKG8sbyksemYocyxzKSxLZihlLGYsZCkpOlZmKHpmKHMscyksemYoYyxjKSxLZihlLGQscCkpOlZmKHpmKG8sbyksemYoYyxjKSxLZihlLGYscCkpfX19ZnVuY3Rpb24gWWYoZSl7bGV0IHQ9bmV3IE1hcDtmb3IobGV0IG49MDtuPGUucm93cy5sZW5ndGg7bisrKXtsZXQgcj1lLnJvd3Nbbl07aWYoIU51bWJlci5pc0Zpbml0ZShyLnZhbHVlKSljb250aW51ZTtsZXQgaT1SZihyLmxhYmVsLHIuZW50aXR5SWQpO2lmKCFpKWNvbnRpbnVlO2xldCBhPXQuZ2V0KGkpPz8wLG89ci52YWx1ZSxzPWErbyxjPU51bWJlci5pc0Zpbml0ZShzKT9zOmE+MCYmbz4wP051bWJlci5NQVhfVkFMVUU6YTwwJiZvPDA/LU51bWJlci5NQVhfVkFMVUU6MDt0LnNldChpLGMpfXJldHVybiB0fWZ1bmN0aW9uIFhmKGUsdCxuLHIsaSl7aWYoIXQudGl0bGUmJiF0LnRpdGxlUHJlc2VudClyZXR1cm47bGV0IGE9dC50aXRsZUZvbnRGYWNlfHx0LnRoZW1lTWFqb3JGb250TGF0aW58fGBzYW5zLXNlcmlmYDtlLmZvbnQ9YCR7dC50aXRsZUZvbnRCb2xkPz8hMD9gYm9sZCBgOmBgfSR7cn1weCAke0pTT04uc3RyaW5naWZ5KGEpfWAsZS5maWxsU3R5bGU9dC50aXRsZUZvbnRDb2xvcj9gIyR7dC50aXRsZUZvbnRDb2xvcn1gOmAjMzMzMzMzYCxlLnRleHRBbGlnbj1gY2VudGVyYCxlLnRleHRCYXNlbGluZT1gdG9wYCxlLmZpbGxUZXh0KHQudGl0bGU/P2BgLG4ueCtuLncvMixuLnkraSl9ZnVuY3Rpb24gWmYoZSx0LG4scixpLGEsbyxzKXtsZXQgYz10LnNlcmllc1swXT8ubmFtZT8/YGAsbD1NYXRoLm1heCg4LCh0LmxlZ2VuZEZvbnRTaXplSHB0Pz85MDApLzEwMCpzKTtlLmZvbnQ9YCR7dC5sZWdlbmRGb250Qm9sZD9gYm9sZCBgOmBgfSR7bH1weCAke0pTT04uc3RyaW5naWZ5KHQubGVnZW5kRm9udEZhY2V8fHQudGhlbWVNaW5vckZvbnRMYXRpbnx8YHNhbnMtc2VyaWZgKX1gLGUuZmlsbFN0eWxlPXQubGVnZW5kRm9udENvbG9yP2AjJHt0LmxlZ2VuZEZvbnRDb2xvcn1gOmAjNTk1OTU5YCxlLnRleHRBbGlnbj1gY2VudGVyYCxlLnRleHRCYXNlbGluZT1gdG9wYCxjJiZlLmZpbGxUZXh0KGMscithLzIsaSk7bGV0IHU9TWF0aC5taW4oYSouNTgsMjQwKSxkPU1hdGgubWF4KDYsTWF0aC5taW4oMTIsbyouMjUpKSxmPXIrKGEtdSkvMixwPWkrKGM/bCsyOjApLG09ZS5jcmVhdGVMaW5lYXJHcmFkaWVudChmLDAsZit1LDApO20uYWRkQ29sb3JTdG9wKDAsbi5taW5Db2xvciksbi5taWRDb2xvciYmbS5hZGRDb2xvclN0b3AoLjUsbi5taWRDb2xvciksbS5hZGRDb2xvclN0b3AoMSxuLm1heENvbG9yKSxlLmZpbGxTdHlsZT1tLGUuZmlsbFJlY3QoZixwLHUsZCksZS5maWxsU3R5bGU9dC5sZWdlbmRGb250Q29sb3I/YCMke3QubGVnZW5kRm9udENvbG9yfWA6YCM1OTU5NTlgLGUudGV4dEJhc2VsaW5lPWB0b3BgLGUudGV4dEFsaWduPWBsZWZ0YDtsZXQgaD10LnNlcmllc1swXT8udmFsRm9ybWF0Q29kZT8/bnVsbDtlLmZpbGxUZXh0KHl0KG4ubWluLGgsdC5kYXRlMTkwNCksZixwK2QrMiksZS50ZXh0QWxpZ249YHJpZ2h0YCxlLmZpbGxUZXh0KHl0KG4ubWF4LGgsdC5kYXRlMTkwNCksZit1LHArZCsyKX1mdW5jdGlvbiBRZihlLHQsbixyKXtlLmZpbGxTdHlsZT1gIzY2NjY2NmAsZS5mb250PWAke01hdGgubWF4KDksOSpuKX1weCBzYW5zLXNlcmlmYCxlLnRleHRBbGlnbj1gY2VudGVyYCxlLnRleHRCYXNlbGluZT1gbWlkZGxlYCxlLmZpbGxUZXh0KHIsdC54K3Qudy8yLHQueSt0LmgvMil9ZnVuY3Rpb24gJGYoZSx0LG4scil7aWYodC5jaGFydFR5cGUhPT1gcmVnaW9uTWFwYHx8IXQuY2hhcnRleFJlZ2lvbk1hcClyZXR1cm4hMTtsZXQgaT10LmNoYXJ0ZXhSZWdpb25NYXA7aWYoaS5yb3dzLmxlbmd0aD5pcClyZXR1cm4gUWYoZSxuLHIsYChjaGFydCB2YWx1ZXMgZXhjZWVkIHJlbmRlcmluZyBsaW1pdClgKSwhMDtpZihpLmdlb2dyYXBoeT8uY2FjaGVQcmVzZW50KXJldHVybiBRZihlLG4scixgKHJlZ2lvbiBtYXAgY2FjaGUgaXMgdW5hdmFpbGFibGUgb2ZmbGluZSlgKSwhMDtsZXQgYT1pLmdlb2dyYXBoeT8udmlld2VkUmVnaW9uVHlwZTtpZihhIT1udWxsJiZhIT09YHdvcmxkYClyZXR1cm4gUWYoZSxuLHIsYChyZWdpb24gbWFwIGRldGFpbCBpcyB1bmF2YWlsYWJsZSBvZmZsaW5lKWApLCEwO2xldCBvPVlmKGkpLHM9SmYoWy4uLm8udmFsdWVzKCldLGkuY29sb3JzLHQuY2hhcnRleEFjY2VudHM/LlswXSksYz1fZSh0LG4uaCxyLC4wMiwuMDE1KTtYZihlLHQsbixjLmZvbnRQeCxjLnRvcFBhZCk7bGV0IGw9dC5zaG93TGVnZW5kP01hdGgubWF4KDMyLG4uaCouMTYpOjAsdT1uLncqLjAzLGQ9bi5oKi4wMzUsZj17eDpuLngrdSx5Om4ueStjLmJhbmRIK2wsdzpNYXRoLm1heCgxLG4udy11KjIpLGg6TWF0aC5tYXgoMSxuLmgtYy5iYW5kSC1sLWQpfTt0LnNob3dMZWdlbmQmJlpmKGUsdCxzLG4ueCxuLnkrYy5iYW5kSCxuLncsbCxyKTtsZXQgcD1pLmdlb2dyYXBoeT8ucHJvamVjdGlvblR5cGUsbT0xLzAsaD0xLzAsZz0tMS8wLF89LTEvMDtmb3IobGV0IGUgb2YgTmYpZm9yKGxldCB0IG9mIGUuZylmb3IobGV0IGUgb2YgdClmb3IobGV0IHQgb2YgZSl7bGV0IGU9SWYodCxwKTttPU1hdGgubWluKG0sZS54KSxnPU1hdGgubWF4KGcsZS54KSxoPU1hdGgubWluKGgsZS55KSxfPU1hdGgubWF4KF8sZS55KX1sZXQgdj1NYXRoLm1pbihmLncvTWF0aC5tYXgoTnVtYmVyLk1JTl9WQUxVRSxnLW0pLGYuaC9NYXRoLm1heChOdW1iZXIuTUlOX1ZBTFVFLF8taCkpLHk9Zi54KyhmLnctKGctbSkqdikvMi1tKnYsYj1mLnkrKGYuaC0oXy1oKSp2KS8yLWgqdix4PWU9PntsZXQgdD1JZihlLHApO3JldHVybnt4OnkrdC54KnYseTpiK3QueSp2fX0sUz1uZXcgTWFwO2UubGluZVdpZHRoPU1hdGgubWF4KC4zNSwuNTUqciksZS5zdHJva2VTdHlsZT1gI0ZGRkZGRmA7Zm9yKGxldCB0IG9mIE5mKXtlLmJlZ2luUGF0aCgpO2xldCBuPXttaW5YOjEvMCxtaW5ZOjEvMCxtYXhYOi0xLzAsbWF4WTotMS8wfTtmb3IobGV0IHIgb2YgdC5nKWZvcihsZXQgdCBvZiByKXtsZXQgcjtmb3IobGV0IGk9MDtpPHQubGVuZ3RoO2krKyl7bGV0IGE9dFtpXSxvPXgoYSk7bi5taW5YPU1hdGgubWluKG4ubWluWCxvLngpLG4ubWF4WD1NYXRoLm1heChuLm1heFgsby54KSxuLm1pblk9TWF0aC5taW4obi5taW5ZLG8ueSksbi5tYXhZPU1hdGgubWF4KG4ubWF4WSxvLnkpLGk9PT0wfHxyJiZNYXRoLmFicyhhWzBdLXJbMF0pPjE4MD9lLm1vdmVUbyhvLngsby55KTplLmxpbmVUbyhvLngsby55KSxyPWF9ZS5jbG9zZVBhdGgoKX1lLmZpbGxTdHlsZT1vLmhhcyh0KT9zLmNvbG9yKG8uZ2V0KHQpKTpgI0UwRTBFMGAsZS5maWxsKGBldmVub2RkYCksZS5zdHJva2UoKSxTLnNldCh0LG4pfWlmKGkucmVnaW9uTGFiZWxMYXlvdXQmJmkucmVnaW9uTGFiZWxMYXlvdXQhPT1gbm9uZWApe2UuZm9udD1gJHtNYXRoLm1heCg3LCh0LmRhdGFMYWJlbEZvbnRTaXplSHB0Pz84MDApLzEwMCpyKX1weCAke0pTT04uc3RyaW5naWZ5KHQuZGF0YUxhYmVsRm9udEZhY2V8fHQudGhlbWVNaW5vckZvbnRMYXRpbnx8YHNhbnMtc2VyaWZgKX1gLGUuZmlsbFN0eWxlPXQuZGF0YUxhYmVsRm9udENvbG9yP2AjJHt0LmRhdGFMYWJlbEZvbnRDb2xvcn1gOmAjNDA0MDQwYCxlLnRleHRBbGlnbj1gY2VudGVyYCxlLnRleHRCYXNlbGluZT1gbWlkZGxlYDtmb3IobGV0IHQgb2YgaS5yb3dzKXtsZXQgbj1SZih0LmxhYmVsLHQuZW50aXR5SWQpLHI9bj9TLmdldChuKTp2b2lkIDA7aWYoIW58fCFyfHwhdC5sYWJlbCljb250aW51ZTtsZXQgYT14KG4ubCksbz1lLm1lYXN1cmVUZXh0KHQubGFiZWwpLndpZHRoPD1NYXRoLm1heCgwLHIubWF4WC1yLm1pblgtNCk7KGkucmVnaW9uTGFiZWxMYXlvdXQ9PT1gc2hvd0FsbGB8fG8pJiZlLmZpbGxUZXh0KHQubGFiZWwsYS54LGEueSl9fXJldHVybiBpLmdlb2dyYXBoeT8uYXR0cmlidXRpb24mJihlLmZvbnQ9YCR7TWF0aC5tYXgoNyw3KnIpfXB4IHNhbnMtc2VyaWZgLGUuZmlsbFN0eWxlPWAjNzc3Nzc3YCxlLnRleHRBbGlnbj1gcmlnaHRgLGUudGV4dEJhc2VsaW5lPWBib3R0b21gLGUuZmlsbFRleHQoaS5nZW9ncmFwaHkuYXR0cmlidXRpb24sbi54K24udy00LG4ueStuLmgtMikpLCEwfXZhciBlcCx0cCxucCxycCxpcCxhcCxvcCxzcCxjcCxscCx1cD10KCgoKT0+e0ZlKCksRHQoKSxQZigpLGVwPWBvb3htbC1yZWdpb24tbWFwLW5hdHVyYWwtZWFydGgtdjFgLHRwPVsxLC45OTg2LC45OTU0LC45OSwuOTgyMiwuOTczLC45NiwuOTQyNywuOTIxNiwuODk2MiwuODY3OSwuODM1LC43OTg2LC43NTk3LC43MTg2LC42NzMyLC42MjEzLC41NzIyLC41MzIyXSxucD1bMCwuMDYyLC4xMjQsLjE4NiwuMjQ4LC4zMSwuMzcyLC40MzQsLjQ5NTgsLjU1NzEsLjYxNzYsLjY3NjksLjczNDYsLjc5MDMsLjg0MzUsLjg5MzYsLjkzOTQsLjk3NjEsMV0scnA9ZT0+ZSpNYXRoLlBJLzE4MCxpcD0xZTQsYXA9bmV3IE1hcCxvcD1uZXcgTWFwLHNwPW5ldyBNYXAsY3A9bmV3IE1hcDtmb3IobGV0IGUgb2YgTmYpaWYoYXAuc2V0KExmKGUubiksZSksZS5hMiYmb3Auc2V0KExmKGUuYTIpLGUpLGUuYTMmJnNwLnNldChMZihlLmEzKSxlKSxlLnApe2xldCB0PUxmKGUucCk7Y3AuaGFzKHQpfHxjcC5zZXQodCxlKX1scD17dW5pdGVkc3RhdGVzb2ZhbWVyaWNhOmBVbml0ZWQgU3RhdGVzYCx1c2E6YFVuaXRlZCBTdGF0ZXNgLHVrOmBVbml0ZWQgS2luZ2RvbWAscnVzc2lhOmBSdXNzaWFuIEZlZGVyYXRpb25gLHNvdXRoa29yZWE6YFJlcHVibGljIG9mIEtvcmVhYCxub3J0aGtvcmVhOmBEZW0uIFJlcC4gS29yZWFgLGN6ZWNoaWE6YEN6ZWNoIFJlcHVibGljYCxpdm9yeWNvYXN0OmBDw7R0ZSBkJ0l2b2lyZWAsZHJjb25nbzpgRGVtb2NyYXRpYyBSZXB1YmxpYyBvZiB0aGUgQ29uZ29gLGNvbmdvZGVtb2NyYXRpY3JlcHVibGljOmBEZW1vY3JhdGljIFJlcHVibGljIG9mIHRoZSBDb25nb2B9fSkpO2FzeW5jIGZ1bmN0aW9uIGRwKGUpe3JldHVybiBnbChlKSxmcChlKX1hc3luYyBmdW5jdGlvbiBmcChlKXtzd2l0Y2goZS5idWlsdGluKXtjYXNlYG1hdGhgOntsZXQgdD1hd2FpdCBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oUXUoKSxWdSkpO3JldHVybiBPYmplY3QuZnJlZXplKHtsb2FkTWF0aEpheDooKT0+dC5sb2FkTWF0aEpheEZyb21Bc3NldChlLmVuZ2luZUFzc2V0VXJsKSxtYXRoTUxUb1N2ZzpuPT50Lm1hdGhNTFRvU3ZnRnJvbUFzc2V0KG4sZS5lbmdpbmVBc3NldFVybCl9KX1jYXNlYHRocmVlRGA6e2xldCBlPWF3YWl0IFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihNZigpLElkKSk7cmV0dXJuIE9iamVjdC5mcmVlemUoe3JlbmRlcjplLnJlbmRlclNpbXBsZVRocmVlRENoYXJ0fSl9Y2FzZWByZWdpb25NYXBgOntsZXQgZT1hd2FpdCBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4odXAoKSxGZikpO3JldHVybiBPYmplY3QuZnJlZXplKHtyZW5kZXI6ZS5yZW5kZXJSZWdpb25NYXBDaGFydH0pfX19ZnVuY3Rpb24gcHAoZSx0LG4pe2lmKHR5cGVvZiB0IT1gb2JqZWN0YHx8IXQpdGhyb3cgVHlwZUVycm9yKGBXb3JrZXIgJHtlfSByZW5kZXJlciBleHBvcnQgbXVzdCBiZSBhbiBvYmplY3RgKTtsZXQgcj10O2ZvcihsZXQgdCBvZiBuKWlmKHR5cGVvZiByW3RdIT1gZnVuY3Rpb25gKXRocm93IFR5cGVFcnJvcihgV29ya2VyICR7ZX0gcmVuZGVyZXIgbXVzdCBpbXBsZW1lbnQgJHt0fSgpYCk7cmV0dXJuIHR9YXN5bmMgZnVuY3Rpb24gbXAoZSl7bGV0W3QsbixyXT1hd2FpdCBQcm9taXNlLmFsbChbZT8ubWF0aD9kcChlLm1hdGgpOnZvaWQgMCxlPy50aHJlZUQ/ZHAoZS50aHJlZUQpOnZvaWQgMCxlPy5yZWdpb25NYXA/ZHAoZS5yZWdpb25NYXApOnZvaWQgMF0pO3JldHVybiBPYmplY3QuZnJlZXplKHsuLi50P3ttYXRoOnBwKGBtYXRoYCx0LFtgbG9hZE1hdGhKYXhgLGBtYXRoTUxUb1N2Z2BdKX06e30sLi4ubj97dGhyZWVEOnBwKGB0aHJlZURgLG4sW2ByZW5kZXJgXSl9Ont9LC4uLnI/e3JlZ2lvbk1hcDpwcChgcmVnaW9uTWFwYCxyLFtgcmVuZGVyYF0pfTp7fX0pfU9iamVjdC5mcmVlemUoe21heEFyY2hpdmVFbnRyeUJ5dGVzOjEzNDIxNzcyOCxtYXhUb3RhbEluZmxhdGVkQnl0ZXM6MjY4NDM1NDU2LG1heEFyY2hpdmVFbnRyaWVzOjQwOTZ9KTtmdW5jdGlvbiBocChlKXtyZXR1cm5bZS5tYXhBcmNoaXZlRW50cnlCeXRlcz09PW51bGw/MG46QmlnSW50KGUubWF4QXJjaGl2ZUVudHJ5Qnl0ZXMpLGUubWF4VG90YWxJbmZsYXRlZEJ5dGVzPT09bnVsbD8wbjpCaWdJbnQoZS5tYXhUb3RhbEluZmxhdGVkQnl0ZXMpLGUubWF4QXJjaGl2ZUVudHJpZXM9PT1udWxsPzBuOkJpZ0ludChlLm1heEFyY2hpdmVFbnRyaWVzKV19Y29uc3QgZ3A9YG9veG1sLXB1bGwtdjFgO2Z1bmN0aW9uIF9wKGUsdCl7aWYoIU51bWJlci5pc1NhZmVJbnRlZ2VyKGUpfHxlPD0wKXRocm93IFJhbmdlRXJyb3IoYCR7dH0gbXVzdCBiZSBhIHBvc2l0aXZlIHNhZmUgaW50ZWdlcmApfWZ1bmN0aW9uIHZwKGUpe2lmKCEodHlwZW9mIGU9PWBzdHJpbmdgJiZlLmxlbmd0aD4wfHx0eXBlb2YgZT09YG51bWJlcmAmJk51bWJlci5pc1NhZmVJbnRlZ2VyKGUpJiZlPjApKXRocm93IFJhbmdlRXJyb3IoYHNlc3Npb24gaWQgbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmcgb3IgcG9zaXRpdmUgc2FmZSBpbnRlZ2VyYCl9dmFyIHlwPWNsYXNze2JyaWRnZTtvcHRpb25zO3NlcXVlbmNlPTA7cHVsbGluZz0hMTtvdXRzdGFuZGluZz0hMTtlbmRpbmc9ITE7Y29tcGxldGVkPSExO2xpZmVjeWNsZVByb21pc2U7dXNhZ2U7b3JwaGFuZWRSZXF1ZXN0SWRzPW5ldyBTZXQ7dHJhbnNmZXJEaXNwb3NlcnM9bmV3IFNldDtjb25zdHJ1Y3RvcihlLHQpe3ZwKHQuc2Vzc2lvbklkKSxfcCh0Lm9wZXJhdGlvbklkLGBvcGVyYXRpb24gaWRgKSxfcCh0LmdlbmVyYXRpb24sYGdlbmVyYXRpb25gKSxfcCh0Lm1heEJ5dGVDcmVkaXQsYG1heCBieXRlIGNyZWRpdGApLHQuY2FuY2VsR3JhY2VNcyE9PXZvaWQgMCYmX3AodC5jYW5jZWxHcmFjZU1zLGBjYW5jZWwgZ3JhY2VgKSx0aGlzLmJyaWRnZT1lLHRoaXMub3B0aW9ucz10fWFzeW5jIHB1bGwoZSx0KXtpZih0aGlzLnZhbGlkYXRlQ3JlZGl0KGUpLHRoaXMuZW5kaW5nfHx0aGlzLmNvbXBsZXRlZCl0aHJvdyBFcnJvcihgcHVsbCBzZXNzaW9uIGlzIGNsb3NlZGApO2lmKHRoaXMucHVsbGluZyl0aHJvdyBFcnJvcihgYSBwdWxsIHJlcXVlc3QgaXMgYWxyZWFkeSBpbiBmbGlnaHRgKTtpZih0aGlzLm91dHN0YW5kaW5nKXRocm93IEVycm9yKGBhY2tub3dsZWRnZSB0aGUgY3VycmVudCBjaHVuayBiZWZvcmUgdGhlIG5leHQgcHVsbGApO3RoaXMucHVsbGluZz0hMDtsZXQgbj10aGlzLnNlcXVlbmNlO3RyeXtsZXQgcj1hd2FpdCB0aGlzLnJlcXVlc3QodD0+KHtwcm90b2NvbDpncCxraW5kOmBwdWxsYCwuLi50aGlzLmlkZW50aXR5KCkscmVxdWVzdElkOnQsc2VxdWVuY2U6bixieXRlQ3JlZGl0OmV9KSx0KTtpZih0aGlzLnZhbGlkYXRlUmVzcG9uc2VJZGVudGl0eShyKSxyLnVzYWdlJiYodGhpcy51c2FnZT1yLnVzYWdlKSxyLmtpbmQ9PT1gZXJyb3JgKXRocm93IEx1KHIuZXJyb3IpO2lmKHIua2luZCE9PWBjaHVua2ApdGhyb3cgRXJyb3IoYGV4cGVjdGVkIGNodW5rIHJlc3BvbnNlLCByZWNlaXZlZCAke3Iua2luZH1gKTtpZih0aGlzLmVuZGluZyl0aHJvdyB0aGlzLmRpc3Bvc2VQYXlsb2FkKHIucGF5bG9hZCksRXJyb3IoYHB1bGwgc2Vzc2lvbiBpcyBjbG9zZWRgKTt0cnl7dGhpcy52YWxpZGF0ZUNodW5rKHIsbixlKX1jYXRjaChlKXt0aHJvdyB0aGlzLmRpc3Bvc2VQYXlsb2FkKHIucGF5bG9hZCksZX1yZXR1cm4gdGhpcy5vdXRzdGFuZGluZz0hMCx0aGlzLm1ha2VDaHVuayhyKX1jYXRjaChlKXt0aHJvdyFodShlKSYmIXRoaXMuZW5kaW5nJiYhdGhpcy5jb21wbGV0ZWQmJnRoaXMuY2FuY2VsKGBwcm90b2NvbC1lcnJvcmApLmNhdGNoKCgpPT52b2lkIDApLGV9ZmluYWxseXt0aGlzLnB1bGxpbmc9ITF9fWNhbmNlbChlPWBjbG9zZWRgLHQpe3JldHVybiB0aGlzLmxpZmVjeWNsZVByb21pc2U/dGhpcy5saWZlY3ljbGVQcm9taXNlOih0aGlzLmVuZGluZz0hMCx0aGlzLmRpc3Bvc2VBbGxUcmFuc2ZlcnJlZCgpLHRoaXMubGlmZWN5Y2xlUHJvbWlzZT10aGlzLmxpZmVjeWNsZUNvbnRyb2wodGhpcy5jb250cm9sKGBjYW5jZWxgLHQsdD0+KHtwcm90b2NvbDpncCxraW5kOmBjYW5jZWxgLC4uLnRoaXMuaWRlbnRpdHkoKSxyZXF1ZXN0SWQ6dCxyZWFzb246ZX0pKSksdGhpcy5saWZlY3ljbGVQcm9taXNlKX1jbG9zZShlKXtyZXR1cm4gdGhpcy5saWZlY3ljbGVQcm9taXNlP3RoaXMubGlmZWN5Y2xlUHJvbWlzZToodGhpcy5lbmRpbmc9ITAsdGhpcy5kaXNwb3NlQWxsVHJhbnNmZXJyZWQoKSx0aGlzLmxpZmVjeWNsZVByb21pc2U9dGhpcy5saWZlY3ljbGVDb250cm9sKHRoaXMuY29udHJvbChgY2xvc2VgLGUsZT0+KHtwcm90b2NvbDpncCxraW5kOmBjbG9zZWAsLi4udGhpcy5pZGVudGl0eSgpLHJlcXVlc3RJZDplfSkpKSx0aGlzLmxpZmVjeWNsZVByb21pc2UpfWdldCB1c2FnZUNoZWNrcG9pbnQoKXtyZXR1cm4gdGhpcy51c2FnZX1tYWtlQ2h1bmsoZSl7bGV0IHQ9ITEsbixyLGk9KCk9Pnt0fHwodD0hMCx0aGlzLnRyYW5zZmVyRGlzcG9zZXJzLmRlbGV0ZShpKSx0aGlzLmRpc3Bvc2VQYXlsb2FkKGUucGF5bG9hZCkpfTtyZXR1cm4gdGhpcy50cmFuc2ZlckRpc3Bvc2Vycy5hZGQoaSkse2RvbmU6ZS5kb25lLHNlcXVlbmNlOmUuc2VxdWVuY2UsYnl0ZUxlbmd0aDplLmJ5dGVMZW5ndGgscGF5bG9hZDplLnBheWxvYWQsbGVhc2VJZDplLmxlYXNlSWQsdXNhZ2U6ZS51c2FnZSxkaXNwb3NlVHJhbnNmZXJyZWQ6aSxhY2s6dD0+bnx8KHRoaXMuZW5kaW5nP1Byb21pc2UucmVzb2x2ZSgpOihuPXRoaXMuY29udHJvbChgYWNrYCx0LHQ9Pih7cHJvdG9jb2w6Z3Asa2luZDpgYWNrYCwuLi50aGlzLmlkZW50aXR5KCkscmVxdWVzdElkOnQsc2VxdWVuY2U6ZS5zZXF1ZW5jZX0pKS50aGVuKCgpPT57dGhpcy5vdXRzdGFuZGluZz0hMSx0aGlzLnNlcXVlbmNlKyssZS5kb25lJiYodGhpcy5jb21wbGV0ZWQ9ITApfSkuY2F0Y2goZT0+e3Rocm93IHRoaXMuZW5kaW5nfHx0aGlzLmNhbmNlbChgcmVxdWVzdC1lcnJvcmApLmNhdGNoKCgpPT52b2lkIDApLGV9KSxuKSkscmVsZWFzZTp0PT5yfHwoZS5sZWFzZUlkPT09dm9pZCAwfHx0aGlzLmVuZGluZz9Qcm9taXNlLnJlc29sdmUoKToocj10aGlzLmNvbnRyb2woYHJlbGVhc2VgLHQsdD0+KHtwcm90b2NvbDpncCxraW5kOmByZWxlYXNlYCwuLi50aGlzLmlkZW50aXR5KCkscmVxdWVzdElkOnQsbGVhc2VJZDplLmxlYXNlSWR9KSkuY2F0Y2goZT0+e3Rocm93IHRoaXMuZW5kaW5nfHx0aGlzLmNhbmNlbChgcmVxdWVzdC1lcnJvcmApLmNhdGNoKCgpPT52b2lkIDApLGV9KSxyKSl9fWFzeW5jIGNvbnRyb2woZSx0LG4pe2xldCByPWF3YWl0IHRoaXMucmVxdWVzdChuLHQsZSE9PWBjYW5jZWxgJiZlIT09YGNsb3NlYCk7aWYodGhpcy52YWxpZGF0ZVJlc3BvbnNlSWRlbnRpdHkociksci51c2FnZSYmKHRoaXMudXNhZ2U9ci51c2FnZSksci5raW5kPT09YGVycm9yYCl7aWYoci5lcnJvci5jb2RlPT09YG9veG1sLXN0YWxlLWxpZmVjeWNsZWAmJihlPT09YGNhbmNlbGB8fGU9PT1gY2xvc2VgKSl7dGhpcy5mb3JnZXRMaWZlY3ljbGVPcnBoYW5zKCk7cmV0dXJufXRocm93IEx1KHIuZXJyb3IpfWlmKHIua2luZCE9PWBhY2NlcHRlZGB8fHIuY29tbWFuZCE9PWUpdGhyb3cgRXJyb3IoYGV4cGVjdGVkICR7ZX0gYWNjZXB0YW5jZWApOyhlPT09YGNhbmNlbGB8fGU9PT1gY2xvc2VgKSYmdGhpcy5mb3JnZXRMaWZlY3ljbGVPcnBoYW5zKCl9cmVxdWVzdChlLHQsbj0hMCl7cmV0dXJuIHRoaXMuYnJpZGdlLnJlcXVlc3QoZSx2b2lkIDAse3RpbWVvdXRNczpuP3Q/LnRpbWVvdXRNcz8/dGhpcy5vcHRpb25zLnRpbWVvdXRNczohMSxzaWduYWw6dD8uc2lnbmFsLG9uT3JwaGFuZWRSZXNwb25zZTplPT57ZS5raW5kPT09YGNodW5rYCYmdGhpcy5kaXNwb3NlUGF5bG9hZChlLnBheWxvYWQpfSxvbkNhbmNlbDooZSxuKT0+e3RoaXMub3JwaGFuZWRSZXF1ZXN0SWRzLmFkZChlKTt0cnl7dD8ub25DYW5jZWw/LihlLG4pfWZpbmFsbHl7IXRoaXMuZW5kaW5nJiYhdGhpcy5jb21wbGV0ZWQmJnRoaXMuY2FuY2VsKG4pLmNhdGNoKCgpPT52b2lkIDApfX19KX1pZGVudGl0eSgpe3JldHVybntzZXNzaW9uSWQ6dGhpcy5vcHRpb25zLnNlc3Npb25JZCxvcGVyYXRpb25JZDp0aGlzLm9wdGlvbnMub3BlcmF0aW9uSWQsZ2VuZXJhdGlvbjp0aGlzLm9wdGlvbnMuZ2VuZXJhdGlvbn19dmFsaWRhdGVSZXNwb25zZUlkZW50aXR5KGUpe2lmKGUucHJvdG9jb2whPT1gb294bWwtcHVsbC12MWB8fGUuc2Vzc2lvbklkIT09dGhpcy5vcHRpb25zLnNlc3Npb25JZHx8ZS5vcGVyYXRpb25JZCE9PXRoaXMub3B0aW9ucy5vcGVyYXRpb25JZHx8ZS5nZW5lcmF0aW9uIT09dGhpcy5vcHRpb25zLmdlbmVyYXRpb24pdGhyb3cgZS5raW5kPT09YGNodW5rYCYmdGhpcy5kaXNwb3NlUGF5bG9hZChlLnBheWxvYWQpLEVycm9yKGBzdGFsZSBvciBtaXNtYXRjaGVkIHB1bGwgc2Vzc2lvbiByZXNwb25zZWApfXZhbGlkYXRlQ3JlZGl0KGUpe2lmKF9wKGUsYGJ5dGUgY3JlZGl0YCksZT50aGlzLm9wdGlvbnMubWF4Qnl0ZUNyZWRpdCl0aHJvdyBSYW5nZUVycm9yKGBieXRlIGNyZWRpdCBleGNlZWRzIHNlc3Npb24gbWF4aW11bSAke3RoaXMub3B0aW9ucy5tYXhCeXRlQ3JlZGl0fWApfXZhbGlkYXRlQ2h1bmsoZSx0LG4pe2lmKGUuc2VxdWVuY2UhPT10KXRocm93IEVycm9yKGBwdWxsIHJlc3BvbnNlIHNlcXVlbmNlIG1pc21hdGNoYCk7aWYoIU51bWJlci5pc1NhZmVJbnRlZ2VyKGUuYnl0ZUxlbmd0aCl8fGUuYnl0ZUxlbmd0aDwwKXRocm93IFJhbmdlRXJyb3IoYGNodW5rIGJ5dGUgbGVuZ3RoIG11c3QgYmUgYSBub24tbmVnYXRpdmUgc2FmZSBpbnRlZ2VyYCk7aWYoZS5ieXRlTGVuZ3RoPm4pdGhyb3cgUmFuZ2VFcnJvcihgY2h1bmsgZXhjZWVkcyBieXRlIGNyZWRpdGApO2UubGVhc2VJZCE9PXZvaWQgMCYmX3AoZS5sZWFzZUlkLGBsZWFzZSBpZGApfWRpc3Bvc2VBbGxUcmFuc2ZlcnJlZCgpe2ZvcihsZXQgZSBvZlsuLi50aGlzLnRyYW5zZmVyRGlzcG9zZXJzXSllKCl9bGlmZWN5Y2xlQ29udHJvbChlKXtsZXQgdD10aGlzLm9wdGlvbnMuY2FuY2VsR3JhY2VNcz8/MWUzLG4scj1uZXcgUHJvbWlzZSgoZSxyKT0+e249c2V0VGltZW91dCgoKT0+e3RoaXMuYnJpZGdlLnRlcm1pbmF0ZSgpLHIoRXJyb3IoYHdvcmtlciBkaWQgbm90IGFjY2VwdCBsaWZlY3ljbGUgY29tbWFuZCB3aXRoaW4gJHt0fW1zYCkpfSx0KX0pO3JldHVybiBQcm9taXNlLnJhY2UoW2Uscl0pLmNhdGNoKGU9Pnt0aHJvdyB0aGlzLmJyaWRnZS50ZXJtaW5hdGUoKSxlfSkuZmluYWxseSgoKT0+e24hPT12b2lkIDAmJmNsZWFyVGltZW91dChuKX0pfWZvcmdldExpZmVjeWNsZU9ycGhhbnMoKXt0aGlzLmJyaWRnZS5mb3JnZXRPcnBoYW5lZCh0aGlzLm9ycGhhbmVkUmVxdWVzdElkcyksdGhpcy5vcnBoYW5lZFJlcXVlc3RJZHMuY2xlYXIoKX1kaXNwb3NlUGF5bG9hZChlKXt0cnl7dGhpcy5vcHRpb25zLmRpc3Bvc2VUcmFuc2ZlcnJlZD8uKGUpfWNhdGNoe319fSxicD1jbGFzc3tvd25lcjtxdWV1ZT1Qcm9taXNlLnJlc29sdmUoKTtsZWFzZXM9bmV3IE1hcDtyZXRhaW5lZEJ5dGVzPTA7cmV0YWluZWRDb3VudD0wO21heFJldGFpbmVkQnl0ZXM7bWF4UmV0YWluZWRDb3VudDtjbGVhbnVwcz1uZXcgU2V0O3BlbmRpbmdGYXRhbENsZWFudXBzPVtdO3BvaXNvblJ1bm5pbmc9ITE7ZmF0YWw7Y29uc3RydWN0b3IoZSl7dGhpcy5tYXhSZXRhaW5lZEJ5dGVzPWU/Lm1heFJldGFpbmVkQnl0ZXM/PzY0KjEwMjQqMTAyNCx0aGlzLm1heFJldGFpbmVkQ291bnQ9ZT8ubWF4UmV0YWluZWRDb3VudD8/MjU2LF9wKHRoaXMubWF4UmV0YWluZWRCeXRlcyxgbWF4IHJldGFpbmVkIGxlYXNlIGJ5dGVzYCksX3AodGhpcy5tYXhSZXRhaW5lZENvdW50LGBtYXggcmV0YWluZWQgbGVhc2UgY291bnRgKX1lbnF1ZXVlKGUpe2xldCB0PXRoaXMucXVldWUudGhlbihlLGUpO3JldHVybiB0aGlzLnF1ZXVlPXQudGhlbigoKT0+dm9pZCAwLCgpPT52b2lkIDApLHR9YWNxdWlyZShlKXtyZXR1cm4gdGhpcy5vd25lcj09PXZvaWQgMD8odGhpcy5vd25lcj1lLCEwKTp0aGlzLm93bmVyPT09ZX1yZWxlYXNlKGUpe3RoaXMub3duZXI9PT1lJiYodGhpcy5vd25lcj12b2lkIDApfXJldGFpbkxlYXNlKGUsdCxuKXtpZighTnVtYmVyLmlzU2FmZUludGVnZXIobil8fG48MCl0aHJvdyBSYW5nZUVycm9yKGByZXRhaW5lZCBsZWFzZSBieXRlcyBhcmUgaW52YWxpZGApO2xldCByPXRoaXMubGVhc2VzLmdldChlKT8/bmV3IE1hcDtpZihyLmhhcyh0KSl0aHJvdyBFcnJvcihgZHJpdmVyIHJldHVybmVkIGEgZHVwbGljYXRlIGxlYXNlIGlkYCk7aWYodGhpcy5yZXRhaW5lZENvdW50KzE+dGhpcy5tYXhSZXRhaW5lZENvdW50KXRocm93IFJhbmdlRXJyb3IoYHJldGFpbmVkIGxlYXNlIGNvdW50IGV4Y2VlZHMgbGltaXRgKTtpZih0aGlzLnJldGFpbmVkQnl0ZXMrbj50aGlzLm1heFJldGFpbmVkQnl0ZXMpdGhyb3cgUmFuZ2VFcnJvcihgcmV0YWluZWQgbGVhc2UgYnl0ZXMgZXhjZWVkIGxpbWl0YCk7ci5zZXQodCxuKSx0aGlzLmxlYXNlcy5zZXQoZSxyKSx0aGlzLnJldGFpbmVkQ291bnQrKyx0aGlzLnJldGFpbmVkQnl0ZXMrPW59cmVsZWFzZUxlYXNlKGUsdCl7bGV0IG49dGhpcy5sZWFzZXMuZ2V0KGUpLHI9bj8uZ2V0KHQpO3IhPT12b2lkIDAmJihuPy5kZWxldGUodCksbj8uc2l6ZT09PTAmJnRoaXMubGVhc2VzLmRlbGV0ZShlKSx0aGlzLnJldGFpbmVkQ291bnQtLSx0aGlzLnJldGFpbmVkQnl0ZXMtPXIpfXJlZ2lzdGVyQ2xlYW51cChlKXtyZXR1cm4gdGhpcy5mYXRhbD8odGhpcy5wb2lzb25SdW5uaW5nP3RoaXMucGVuZGluZ0ZhdGFsQ2xlYW51cHMucHVzaChlKTp0aGlzLmVucXVldWUoZSkuY2F0Y2goKCk9PnZvaWQgMCksKCk9PnZvaWQgMCk6KHRoaXMuY2xlYW51cHMuYWRkKGUpLCgpPT50aGlzLmNsZWFudXBzLmRlbGV0ZShlKSl9Z2V0IGZhdGFsRXJyb3IoKXtyZXR1cm4gdGhpcy5mYXRhbH1nZXQgcmVnaXN0ZXJlZEhvc3RDb3VudCgpe3JldHVybiB0aGlzLmNsZWFudXBzLnNpemV9YXN5bmMgcG9pc29uKGUpe2lmKHRoaXMuZmF0YWw/Pz1lLHRoaXMucG9pc29uUnVubmluZylyZXR1cm4gdGhpcy5mYXRhbDt0aGlzLnBvaXNvblJ1bm5pbmc9ITAsdGhpcy5wZW5kaW5nRmF0YWxDbGVhbnVwcy5wdXNoKC4uLnRoaXMuY2xlYW51cHMpO3RyeXtsZXQgZTtmb3IoOyhlPXRoaXMucGVuZGluZ0ZhdGFsQ2xlYW51cHMuc2hpZnQoKSkhPT12b2lkIDA7KWF3YWl0IGUoKS5jYXRjaCgoKT0+dm9pZCAwKX1maW5hbGx5e3RoaXMucG9pc29uUnVubmluZz0hMX1yZXR1cm4gdGhpcy5mYXRhbH19LHhwPWNsYXNze29wdGlvbnM7Y29vcmRpbmF0b3I7Y29vcmRpbmF0b3JPd25lcj1TeW1ib2woYHB1bGwtc2Vzc2lvbi1ob3N0YCk7dW5yZWdpc3RlckNsZWFudXA7c2VxdWVuY2U9MDt1bmFja2VkO2xlYXNlcz1uZXcgTWFwO2FjdGl2ZURyaXZlckxlYXNlcz1uZXcgU2V0O25leHRXaXJlTGVhc2VJZDtjYW5jZWxSZXF1ZXN0ZWQ9ITE7Y2FuY2VsQ29tcGxldGU9ITE7Y2xvc2VSZXF1ZXN0ZWQ9ITE7Y2xvc2VDb21wbGV0ZT0hMTtkcml2ZXJDYW5jZWxDb21wbGV0ZT0hMTtkcml2ZXJDbG9zZUNvbXBsZXRlPSExO2NvbXBsZXRlZD0hMTtjb25zdHJ1Y3RvcihlKXt2cChlLnNlc3Npb25JZCksX3AoZS5vcGVyYXRpb25JZCxgb3BlcmF0aW9uIGlkYCksX3AoZS5nZW5lcmF0aW9uLGBnZW5lcmF0aW9uYCksX3AoZS5tYXhCeXRlQ3JlZGl0LGBtYXggYnl0ZSBjcmVkaXRgKSxlLndpcmVMZWFzZUlkU3RhcnQhPT12b2lkIDAmJl9wKGUud2lyZUxlYXNlSWRTdGFydCxgd2lyZSBsZWFzZSBpZCBzdGFydGApLHRoaXMub3B0aW9ucz1lLHRoaXMuY29vcmRpbmF0b3I9ZS5jb29yZGluYXRvcix0aGlzLm5leHRXaXJlTGVhc2VJZD1lLndpcmVMZWFzZUlkU3RhcnQ/PzEsdGhpcy51bnJlZ2lzdGVyQ2xlYW51cD10aGlzLmNvb3JkaW5hdG9yLnJlZ2lzdGVyQ2xlYW51cCgoKT0+dGhpcy5mb3JjZUZhdGFsQ2xlYW51cCgpKX1kaXNwYXRjaChlLHQpe3JldHVybiB0aGlzLmNvb3JkaW5hdG9yLmVucXVldWUoYXN5bmMoKT0+e2xldCBuPWF3YWl0IHRoaXMuZXhlY3V0ZShlKTt0cnl7dChuLnJlc3BvbnNlLG4udHJhbnNmZXIpfWNhdGNoKGUpe3Rocm93IGF3YWl0IHRoaXMucm9sbGJhY2tGYWlsZWRQb3N0KG4pLGV9fSl9YXN5bmMgcm9sbGJhY2tGYWlsZWRQb3N0KGUpe2xldCB0PWUucmVzcG9uc2U7aWYodC5raW5kPT09YGNodW5rYCl7bGV0IG49dC5sZWFzZUlkPT09dm9pZCAwP3ZvaWQgMDp0aGlzLmxlYXNlcy5nZXQodC5sZWFzZUlkKTt0cnl7YXdhaXQgdGhpcy5vcHRpb25zLmRyaXZlci5kaXNwb3NlSW52YWxpZENodW5rPy4oe3BheWxvYWQ6dC5wYXlsb2FkLGJ5dGVMZW5ndGg6dC5ieXRlTGVuZ3RoLGRvbmU6dC5kb25lLGxlYXNlSWQ6bj8uZHJpdmVyTGVhc2VJZCxyZXRhaW5lZEJ5dGVzOm4/LnJldGFpbmVkQnl0ZXMsdHJhbnNmZXI6ZS50cmFuc2Zlcn0pfWNhdGNoe319dGhpcy51bmFja2VkPXZvaWQgMCx0aGlzLmNvb3JkaW5hdG9yLnJlbGVhc2UodGhpcy5jb29yZGluYXRvck93bmVyKTtmb3IobGV0W2UsdF1vZlsuLi50aGlzLmxlYXNlc10pdHJ5e2F3YWl0IHRoaXMub3B0aW9ucy5kcml2ZXIucmVsZWFzZUxlYXNlPy4odC5kcml2ZXJMZWFzZUlkKX1jYXRjaHt9ZmluYWxseXt0aGlzLmxlYXNlcy5kZWxldGUoZSksdGhpcy5hY3RpdmVEcml2ZXJMZWFzZXMuZGVsZXRlKHQuZHJpdmVyTGVhc2VJZCksdGhpcy5jb29yZGluYXRvci5yZWxlYXNlTGVhc2UodGhpcy5jb29yZGluYXRvck93bmVyLGUpfWlmKHRoaXMuY2FuY2VsUmVxdWVzdGVkPSEwLCF0aGlzLmRyaXZlckNhbmNlbENvbXBsZXRlKXRyeXthd2FpdCB0aGlzLm9wdGlvbnMuZHJpdmVyLmNhbmNlbD8uKCksdGhpcy5kcml2ZXJDYW5jZWxDb21wbGV0ZT0hMH1jYXRjaHt9dGhpcy51bnJlZ2lzdGVyQ2xlYW51cCgpfWFzeW5jIGV4ZWN1dGUoZSl7dHJ5e2lmKHRoaXMuaXNTdGFsZUxpZmVjeWNsZShlKSl7bGV0IHQ9ZS5raW5kPT09YGNhbmNlbGA/YGNhbmNlbGA6YGNsb3NlYDtyZXR1cm4gdGhpcy5zYW1lT3BlcmF0aW9uSWRlbnRpdHkoZSk/e3Jlc3BvbnNlOnRoaXMuYWNjZXB0ZWQoZSx0LCEwKX06e3Jlc3BvbnNlOnRoaXMuZXJyb3JSZXNwb25zZShlLHttZXNzYWdlOmBzdGFsZSBsaWZlY3ljbGUgdGFyZ2V0cyBhbm90aGVyIHNlc3Npb24gb3Igb3BlcmF0aW9uYCxlcnJvck5hbWU6YFB1bGxTZXNzaW9uUHJvdG9jb2xFcnJvcmAsY29kZTpgb294bWwtc3RhbGUtbGlmZWN5Y2xlYH0pfX10aGlzLnZhbGlkYXRlQ29tbWFuZElkZW50aXR5KGUpO2xldCB0PXRoaXMuY29vcmRpbmF0b3IuZmF0YWxFcnJvcjtpZih0KXJldHVybiBlLmtpbmQ9PT1gcHVsbGA/e3Jlc3BvbnNlOnRoaXMuZXJyb3JSZXNwb25zZShlLHQpfTooZS5raW5kPT09YGNhbmNlbGA/YXdhaXQgdGhpcy5jYW5jZWwoKTplLmtpbmQ9PT1gY2xvc2VgP2F3YWl0IHRoaXMuY2xvc2UoKTplLmtpbmQ9PT1gcmVsZWFzZWAmJmF3YWl0IHRoaXMucmVsZWFzZShlLmxlYXNlSWQpLHtyZXNwb25zZTp0aGlzLmFjY2VwdGVkKGUsZS5raW5kKX0pO3N3aXRjaChlLmtpbmQpe2Nhc2VgcHVsbGA6cmV0dXJuIGF3YWl0IHRoaXMucHVsbChlKTtjYXNlYGFja2A6cmV0dXJuIGF3YWl0IHRoaXMuYWNrKGUuc2VxdWVuY2UpLHtyZXNwb25zZTp0aGlzLmFjY2VwdGVkKGUsYGFja2ApfTtjYXNlYHJlbGVhc2VgOnJldHVybiBhd2FpdCB0aGlzLnJlbGVhc2UoZS5sZWFzZUlkKSx7cmVzcG9uc2U6dGhpcy5hY2NlcHRlZChlLGByZWxlYXNlYCl9O2Nhc2VgY2FuY2VsYDpyZXR1cm4gYXdhaXQgdGhpcy5jYW5jZWwoKSx7cmVzcG9uc2U6dGhpcy5hY2NlcHRlZChlLGBjYW5jZWxgKX07Y2FzZWBjbG9zZWA6cmV0dXJuIGF3YWl0IHRoaXMuY2xvc2UoKSx7cmVzcG9uc2U6dGhpcy5hY2NlcHRlZChlLGBjbG9zZWApfX19Y2F0Y2godCl7bGV0IG49RnUodCk7cmV0dXJuIG4uY29kZT09PWBvb3htbC1yZXNvdXJjZS1saW1pdGAmJihuPWF3YWl0IHRoaXMuY29vcmRpbmF0b3IucG9pc29uKG4pKSx7cmVzcG9uc2U6dGhpcy5lcnJvclJlc3BvbnNlKGUsbil9fX1hc3luYyBwdWxsKGUpe2lmKHRoaXMuY2xvc2VSZXF1ZXN0ZWR8fHRoaXMuY2FuY2VsUmVxdWVzdGVkfHx0aGlzLmNvbXBsZXRlZCl0aHJvdyBFcnJvcihgcHVsbCBzZXNzaW9uIGlzIGNsb3NlZGApO2lmKHRoaXMudW5hY2tlZCl0aHJvdyBFcnJvcihgcHJldmlvdXMgY2h1bmsgaXMgbm90IGFja25vd2xlZGdlZGApO2lmKCFOdW1iZXIuaXNTYWZlSW50ZWdlcihlLnNlcXVlbmNlKXx8ZS5zZXF1ZW5jZTwwfHxlLnNlcXVlbmNlIT09dGhpcy5zZXF1ZW5jZSl0aHJvdyBFcnJvcihgcHVsbCBjb21tYW5kIHNlcXVlbmNlIG1pc21hdGNoYCk7aWYodGhpcy52YWxpZGF0ZUhvc3RDcmVkaXQoZS5ieXRlQ3JlZGl0KSwhdGhpcy5jb29yZGluYXRvci5hY3F1aXJlKHRoaXMuY29vcmRpbmF0b3JPd25lcikpdGhyb3cgRXJyb3IoYGFub3RoZXIgb3BlcmF0aW9uIGhhcyBhbiB1bmFja25vd2xlZGdlZCBwYWNrYWdlIGNodW5rYCk7bGV0IHQ7dHJ5e3Q9YXdhaXQgdGhpcy5vcHRpb25zLmRyaXZlci5wdWxsKGUuYnl0ZUNyZWRpdCl9Y2F0Y2goZSl7dGhyb3cgdGhpcy5jb29yZGluYXRvci5yZWxlYXNlKHRoaXMuY29vcmRpbmF0b3JPd25lciksZX1sZXQgbj0hMSxyPSExLGksYTt0cnl7bGV0IG89dGhpcy5vcHRpb25zLmRyaXZlci5tZWFzdXJlQ2h1bmsodCkscz10aGlzLmFycmF5QnVmZmVyVHJhbnNmZXJCeXRlcyh0LnRyYW5zZmVyKTtpZihvPHMpdGhyb3cgUmFuZ2VFcnJvcihgbWVhc3VyZWQgY2h1bmsgYnl0ZXMgYXJlIGJlbG93IEFycmF5QnVmZmVyIHRyYW5zZmVyIGJ5dGVzYCk7aWYoYT1NYXRoLm1heChvLHMpLHQubGVhc2VJZCE9PXZvaWQgMCl7aWYoX3AodC5sZWFzZUlkLGBsZWFzZSBpZGApLHQucmV0YWluZWRCeXRlcz09PXZvaWQgMCl0aHJvdyBFcnJvcihgcmV0YWluZWQgbGVhc2UgYnl0ZXMgYXJlIHJlcXVpcmVkYCk7aWYodGhpcy5hY3RpdmVEcml2ZXJMZWFzZXMuaGFzKHQubGVhc2VJZCkpdGhyb3cgcj0hMCxFcnJvcihgZHJpdmVyIHJldHVybmVkIGFuIGFjdGl2ZSBkdXBsaWNhdGUgbGVhc2UgaWRgKTtpPXRoaXMuYWxsb2NhdGVXaXJlTGVhc2VJZCgpLHRoaXMuY29vcmRpbmF0b3IucmV0YWluTGVhc2UodGhpcy5jb29yZGluYXRvck93bmVyLGksdC5yZXRhaW5lZEJ5dGVzKSx0aGlzLmxlYXNlcy5zZXQoaSx7ZHJpdmVyTGVhc2VJZDp0LmxlYXNlSWQscmV0YWluZWRCeXRlczp0LnJldGFpbmVkQnl0ZXN9KSx0aGlzLmFjdGl2ZURyaXZlckxlYXNlcy5hZGQodC5sZWFzZUlkKSxuPSEwfWVsc2UgaWYodC5yZXRhaW5lZEJ5dGVzIT09dm9pZCAwKXRocm93IEVycm9yKGByZXRhaW5lZCBsZWFzZSBieXRlcyByZXF1aXJlIGEgbGVhc2UgaWRgKTtpZighTnVtYmVyLmlzU2FmZUludGVnZXIoYSl8fGE8MCl0aHJvdyBSYW5nZUVycm9yKGBob3N0IGNodW5rIGJ5dGUgbGVuZ3RoIG11c3QgYmUgYSBub24tbmVnYXRpdmUgc2FmZSBpbnRlZ2VyYCk7aWYoYT5lLmJ5dGVDcmVkaXQpdGhyb3cgUmFuZ2VFcnJvcihgaG9zdCBjaHVuayBleGNlZWRzIGJ5dGUgY3JlZGl0YCl9Y2F0Y2goZSl7bGV0IGE7dHJ5e2F3YWl0IHRoaXMub3B0aW9ucy5kcml2ZXIuZGlzcG9zZUludmFsaWRDaHVuaz8uKHQpfWNhdGNoKGUpe2E9ZX1pZihuJiZpIT09dm9pZCAwKXRyeXthd2FpdCB0aGlzLnJlbGVhc2UoaSl9Y2F0Y2goZSl7YT8/PWV9ZWxzZSBpZih0LmxlYXNlSWQhPT12b2lkIDAmJiFyKXRyeXthd2FpdCB0aGlzLm9wdGlvbnMuZHJpdmVyLnJlbGVhc2VMZWFzZT8uKHQubGVhc2VJZCl9Y2F0Y2goZSl7YT8/PWV9aWYocil0cnl7YXdhaXQgdGhpcy5jYW5jZWwoKX1jYXRjaChlKXthPz89ZX10aHJvdyB0aGlzLmNvb3JkaW5hdG9yLnJlbGVhc2UodGhpcy5jb29yZGluYXRvck93bmVyKSxhfHxlfXJldHVybiB0aGlzLnVuYWNrZWQ9e3NlcXVlbmNlOnRoaXMuc2VxdWVuY2UsZG9uZTp0LmRvbmV9LHtyZXNwb25zZTp7a2luZDpgY2h1bmtgLHByb3RvY29sOmdwLC4uLnRoaXMuaWRlbnRpdHkoKSxyZXF1ZXN0SWQ6ZS5yZXF1ZXN0SWQsc2VxdWVuY2U6dGhpcy5zZXF1ZW5jZSxieXRlTGVuZ3RoOmEsZG9uZTp0LmRvbmUscGF5bG9hZDp0LnBheWxvYWQsbGVhc2VJZDppLHVzYWdlOnRoaXMucmVzb3VyY2VVc2FnZSgpfSx0cmFuc2Zlcjp0LnRyYW5zZmVyfX1hc3luYyBhY2soZSl7aWYoIU51bWJlci5pc1NhZmVJbnRlZ2VyKGUpfHxlPDApdGhyb3cgUmFuZ2VFcnJvcihgaW52YWxpZCBhY2sgc2VxdWVuY2VgKTtpZihlPHRoaXMuc2VxdWVuY2UpcmV0dXJuO2lmKCF0aGlzLnVuYWNrZWR8fGUhPT10aGlzLnNlcXVlbmNlKXRocm93IEVycm9yKGBhY2sgc2VxdWVuY2UgbWlzbWF0Y2hgKTtsZXQgdD10aGlzLnVuYWNrZWQuZG9uZTthd2FpdCB0aGlzLm9wdGlvbnMuZHJpdmVyLmFja25vd2xlZGdlPy4oZSksdGhpcy51bmFja2VkPXZvaWQgMCx0aGlzLmNvb3JkaW5hdG9yLnJlbGVhc2UodGhpcy5jb29yZGluYXRvck93bmVyKSx0aGlzLnNlcXVlbmNlKyssdCYmKHRoaXMuY29tcGxldGVkPSEwLHRoaXMubWF5YmVVbnJlZ2lzdGVyQ29tcGxldGVkKCkpfWFzeW5jIHJlbGVhc2UoZSl7X3AoZSxgd2lyZSBsZWFzZSBpZGApO2xldCB0PXRoaXMubGVhc2VzLmdldChlKTt0JiYoYXdhaXQgdGhpcy5vcHRpb25zLmRyaXZlci5yZWxlYXNlTGVhc2U/Lih0LmRyaXZlckxlYXNlSWQpLHRoaXMubGVhc2VzLmRlbGV0ZShlKSx0aGlzLmFjdGl2ZURyaXZlckxlYXNlcy5kZWxldGUodC5kcml2ZXJMZWFzZUlkKSx0aGlzLmNvb3JkaW5hdG9yLnJlbGVhc2VMZWFzZSh0aGlzLmNvb3JkaW5hdG9yT3duZXIsZSksdGhpcy5tYXliZVVucmVnaXN0ZXJDb21wbGV0ZWQoKSl9YXN5bmMgY2FuY2VsKCl7aWYodGhpcy5jYW5jZWxDb21wbGV0ZSlyZXR1cm47dGhpcy5jYW5jZWxSZXF1ZXN0ZWQ9ITAsdGhpcy51bmFja2VkPXZvaWQgMCx0aGlzLmNvb3JkaW5hdG9yLnJlbGVhc2UodGhpcy5jb29yZGluYXRvck93bmVyKTtsZXQgZTt0cnl7YXdhaXQgdGhpcy5yZWxlYXNlQWxsTGVhc2VzKCl9Y2F0Y2godCl7ZT10fWlmKCF0aGlzLmRyaXZlckNhbmNlbENvbXBsZXRlKXRyeXthd2FpdCB0aGlzLm9wdGlvbnMuZHJpdmVyLmNhbmNlbD8uKCksdGhpcy5kcml2ZXJDYW5jZWxDb21wbGV0ZT0hMH1jYXRjaCh0KXtlPz89dH1pZihlKXRocm93IGU7dGhpcy5jYW5jZWxDb21wbGV0ZT0hMCx0aGlzLnVucmVnaXN0ZXJDbGVhbnVwKCl9YXN5bmMgY2xvc2UoKXtpZih0aGlzLmNsb3NlQ29tcGxldGUpcmV0dXJuO3RoaXMuY2xvc2VSZXF1ZXN0ZWQ9ITAsdGhpcy51bmFja2VkPXZvaWQgMCx0aGlzLmNvb3JkaW5hdG9yLnJlbGVhc2UodGhpcy5jb29yZGluYXRvck93bmVyKTtsZXQgZTt0cnl7YXdhaXQgdGhpcy5yZWxlYXNlQWxsTGVhc2VzKCl9Y2F0Y2godCl7ZT10fWlmKCF0aGlzLmRyaXZlckNsb3NlQ29tcGxldGUpdHJ5e2F3YWl0IHRoaXMub3B0aW9ucy5kcml2ZXIuY2xvc2U/LigpLHRoaXMuZHJpdmVyQ2xvc2VDb21wbGV0ZT0hMH1jYXRjaCh0KXtlPz89dH1pZihlKXRocm93IGU7dGhpcy5jbG9zZUNvbXBsZXRlPSEwLHRoaXMudW5yZWdpc3RlckNsZWFudXAoKX1hc3luYyByZWxlYXNlQWxsTGVhc2VzKCl7bGV0IGU7Zm9yKGxldCB0IG9mWy4uLnRoaXMubGVhc2VzLmtleXMoKV0pdHJ5e2F3YWl0IHRoaXMucmVsZWFzZSh0KX1jYXRjaCh0KXtlPz89dH1pZihlKXRocm93IGV9dmFsaWRhdGVDb21tYW5kSWRlbnRpdHkoZSl7aWYoZS5wcm90b2NvbCE9PWBvb3htbC1wdWxsLXYxYHx8ZS5zZXNzaW9uSWQhPT10aGlzLm9wdGlvbnMuc2Vzc2lvbklkfHxlLm9wZXJhdGlvbklkIT09dGhpcy5vcHRpb25zLm9wZXJhdGlvbklkfHxlLmdlbmVyYXRpb24hPT10aGlzLm9wdGlvbnMuZ2VuZXJhdGlvbnx8IU51bWJlci5pc1NhZmVJbnRlZ2VyKGUucmVxdWVzdElkKXx8ZS5yZXF1ZXN0SWQ8PTApdGhyb3cgRXJyb3IoYHN0YWxlIG9yIG1pc21hdGNoZWQgcHVsbCBzZXNzaW9uIGNvbW1hbmRgKX12YWxpZGF0ZUhvc3RDcmVkaXQoZSl7aWYoX3AoZSxgYnl0ZSBjcmVkaXRgKSxlPnRoaXMub3B0aW9ucy5tYXhCeXRlQ3JlZGl0KXRocm93IFJhbmdlRXJyb3IoYGJ5dGUgY3JlZGl0IGV4Y2VlZHMgaG9zdCBtYXhpbXVtYCl9YWNjZXB0ZWQoZSx0LG49ITEpe3JldHVybntraW5kOmBhY2NlcHRlZGAscHJvdG9jb2w6Z3AsLi4ubj97c2Vzc2lvbklkOmUuc2Vzc2lvbklkLG9wZXJhdGlvbklkOmUub3BlcmF0aW9uSWQsZ2VuZXJhdGlvbjplLmdlbmVyYXRpb259OnRoaXMuaWRlbnRpdHkoKSxyZXF1ZXN0SWQ6ZS5yZXF1ZXN0SWQsY29tbWFuZDp0LHVzYWdlOnRoaXMucmVzb3VyY2VVc2FnZSgpfX1pZGVudGl0eSgpe3JldHVybntzZXNzaW9uSWQ6dGhpcy5vcHRpb25zLnNlc3Npb25JZCxvcGVyYXRpb25JZDp0aGlzLm9wdGlvbnMub3BlcmF0aW9uSWQsZ2VuZXJhdGlvbjp0aGlzLm9wdGlvbnMuZ2VuZXJhdGlvbn19aXNTdGFsZUxpZmVjeWNsZShlKXtyZXR1cm4oZS5raW5kPT09YGNhbmNlbGB8fGUua2luZD09PWBjbG9zZWApJiZlLnByb3RvY29sPT09YG9veG1sLXB1bGwtdjFgJiZOdW1iZXIuaXNTYWZlSW50ZWdlcihlLnJlcXVlc3RJZCkmJmUucmVxdWVzdElkPjAmJk51bWJlci5pc1NhZmVJbnRlZ2VyKGUuZ2VuZXJhdGlvbikmJmUuZ2VuZXJhdGlvbj4wJiZlLmdlbmVyYXRpb248dGhpcy5vcHRpb25zLmdlbmVyYXRpb259c2FtZU9wZXJhdGlvbklkZW50aXR5KGUpe3JldHVybiBlLnNlc3Npb25JZD09PXRoaXMub3B0aW9ucy5zZXNzaW9uSWQmJmUub3BlcmF0aW9uSWQ9PT10aGlzLm9wdGlvbnMub3BlcmF0aW9uSWR9ZXJyb3JSZXNwb25zZShlLHQpe3JldHVybntraW5kOmBlcnJvcmAscHJvdG9jb2w6Z3Asc2Vzc2lvbklkOmUuc2Vzc2lvbklkLG9wZXJhdGlvbklkOmUub3BlcmF0aW9uSWQsZ2VuZXJhdGlvbjplLmdlbmVyYXRpb24scmVxdWVzdElkOmUucmVxdWVzdElkLGVycm9yOnQsdXNhZ2U6dGhpcy5lcnJvclJlc291cmNlVXNhZ2UoKX19YXN5bmMgZm9yY2VGYXRhbENsZWFudXAoKXt0aGlzLmNhbmNlbFJlcXVlc3RlZD0hMCx0aGlzLnVuYWNrZWQ9dm9pZCAwLHRoaXMuY29vcmRpbmF0b3IucmVsZWFzZSh0aGlzLmNvb3JkaW5hdG9yT3duZXIpO2xldCBlO2ZvcihsZXQgdCBvZlsuLi50aGlzLmxlYXNlcy5rZXlzKCldKXRyeXthd2FpdCB0aGlzLnJlbGVhc2UodCl9Y2F0Y2godCl7ZT8/PXR9aWYoIXRoaXMuZHJpdmVyQ2FuY2VsQ29tcGxldGUpdHJ5e2F3YWl0IHRoaXMub3B0aW9ucy5kcml2ZXIuY2FuY2VsPy4oKSx0aGlzLmRyaXZlckNhbmNlbENvbXBsZXRlPSEwfWNhdGNoKHQpe2U/Pz10fWlmKGUpdGhyb3cgZTt0aGlzLnVucmVnaXN0ZXJDbGVhbnVwKCl9YWxsb2NhdGVXaXJlTGVhc2VJZCgpe2lmKCFOdW1iZXIuaXNTYWZlSW50ZWdlcih0aGlzLm5leHRXaXJlTGVhc2VJZCl8fHRoaXMubmV4dFdpcmVMZWFzZUlkPD0wKXRocm93IFJhbmdlRXJyb3IoYHdpcmUgbGVhc2UgaWQgc3BhY2UgZXhoYXVzdGVkYCk7cmV0dXJuIHRoaXMubmV4dFdpcmVMZWFzZUlkKyt9YXJyYXlCdWZmZXJUcmFuc2ZlckJ5dGVzKGUpe2xldCB0PTA7Zm9yKGxldCBuIG9mIGU/P1tdKWlmKG4gaW5zdGFuY2VvZiBBcnJheUJ1ZmZlciYmKHQrPW4uYnl0ZUxlbmd0aCwhTnVtYmVyLmlzU2FmZUludGVnZXIodCkpKXRocm93IFJhbmdlRXJyb3IoYEFycmF5QnVmZmVyIHRyYW5zZmVyIGJ5dGVzIG92ZXJmbG93YCk7cmV0dXJuIHR9bWF5YmVVbnJlZ2lzdGVyQ29tcGxldGVkKCl7dGhpcy5jb21wbGV0ZWQmJnRoaXMubGVhc2VzLnNpemU9PT0wJiZ0aGlzLnVucmVnaXN0ZXJDbGVhbnVwKCl9cmVzb3VyY2VVc2FnZSgpe3JldHVybiB0aGlzLm9wdGlvbnMuZHJpdmVyLnJlc291cmNlVXNhZ2U/LigpfWVycm9yUmVzb3VyY2VVc2FnZSgpe3RyeXtyZXR1cm4gdGhpcy5yZXNvdXJjZVVzYWdlKCl9Y2F0Y2h7cmV0dXJufX19O2NvbnN0IFNwPVtgTGAsYFJgLGBBTGAsYEVOYCxgRVNgLGBFVGAsYEFOYCxgQ1NgLGBOU01gLGBCTmAsYEJgLGBTYCxgV1NgLGBPTmAsYExSRWAsYExST2AsYFJMRWAsYFJMT2AsYFBERmAsYExSSWAsYFJMSWAsYEZTSWAsYFBESWBdLENwPVswLDksMTAsMTEsMTIsMTMsMTQsMjgsMzEsMzIsMzMsMzUsMzgsNDMsNDQsNDUsNDYsNDgsNTgsNTksNjUsOTEsOTcsMTIzLDEyNywxMzMsMTM0LDE2MCwxNjEsMTYyLDE2NiwxNzAsMTcxLDE3MywxNzQsMTc2LDE3OCwxODAsMTgxLDE4MiwxODUsMTg2LDE4NywxOTIsMjE1LDIxNiwyNDcsMjQ4LDY5Nyw2OTksNzA2LDcyMCw3MjIsNzM2LDc0MSw3NTAsNzUxLDc2OCw4ODAsODg0LDg4Niw4OTQsODk1LDkwMCw5MDIsOTAzLDkwNCwxMDE0LDEwMTUsMTE1NSwxMTYyLDE0MTgsMTQxOSwxNDIxLDE0MjMsMTQyNCwxNDI1LDE0NzAsMTQ3MSwxNDcyLDE0NzMsMTQ3NSwxNDc2LDE0NzgsMTQ3OSwxNDgwLDE1MzYsMTU0MiwxNTQ0LDE1NDUsMTU0NywxNTQ4LDE1NDksMTU1MCwxNTUyLDE1NjMsMTYxMSwxNjMyLDE2NDIsMTY0MywxNjQ1LDE2NDgsMTY0OSwxNzUwLDE3NTcsMTc1OCwxNzU5LDE3NjUsMTc2NywxNzY5LDE3NzAsMTc3NCwxNzc2LDE3ODYsMTgwOSwxODEwLDE4NDAsMTg2NywxOTU4LDE5NjksMTk4NCwyMDI3LDIwMzYsMjAzOCwyMDQyLDIwNDUsMjA0NiwyMDcwLDIwNzQsMjA3NSwyMDg0LDIwODUsMjA4OCwyMDg5LDIwOTQsMjEzNywyMTQwLDIxNDQsMjE5MiwyMTk0LDIxOTksMjIwOCwyMjUwLDIyNzQsMjI3NSwyMzA3LDIzNjIsMjM2MywyMzY0LDIzNjUsMjM2OSwyMzc3LDIzODEsMjM4MiwyMzg1LDIzOTIsMjQwMiwyNDA0LDI0MzMsMjQzNCwyNDkyLDI0OTMsMjQ5NywyNTAxLDI1MDksMjUxMCwyNTMwLDI1MzIsMjU0NiwyNTQ4LDI1NTUsMjU1NiwyNTU4LDI1NTksMjU2MSwyNTYzLDI2MjAsMjYyMSwyNjI1LDI2MjcsMjYzMSwyNjMzLDI2MzUsMjYzOCwyNjQxLDI2NDIsMjY3MiwyNjc0LDI2NzcsMjY3OCwyNjg5LDI2OTEsMjc0OCwyNzQ5LDI3NTMsMjc1OCwyNzU5LDI3NjEsMjc2NSwyNzY2LDI3ODYsMjc4OCwyODAxLDI4MDIsMjgxMCwyODE2LDI4MTcsMjgxOCwyODc2LDI4NzcsMjg3OSwyODgwLDI4ODEsMjg4NSwyODkzLDI4OTQsMjkwMSwyOTAzLDI5MTQsMjkxNiwyOTQ2LDI5NDcsMzAwOCwzMDA5LDMwMjEsMzAyMiwzMDU5LDMwNjUsMzA2NiwzMDY3LDMwNzIsMzA3MywzMDc2LDMwNzcsMzEzMiwzMTMzLDMxMzQsMzEzNywzMTQyLDMxNDUsMzE0NiwzMTUwLDMxNTcsMzE1OSwzMTcwLDMxNzIsMzE5MiwzMTk5LDMyMDEsMzIwMiwzMjYwLDMyNjEsMzI3NiwzMjc4LDMyOTgsMzMwMCwzMzI4LDMzMzAsMzM4NywzMzg5LDMzOTMsMzM5NywzNDA1LDM0MDYsMzQyNiwzNDI4LDM0NTcsMzQ1OCwzNTMwLDM1MzEsMzUzOCwzNTQxLDM1NDIsMzU0MywzNjMzLDM2MzQsMzYzNiwzNjQzLDM2NDcsMzY0OCwzNjU1LDM2NjMsMzc2MSwzNzYyLDM3NjQsMzc3MywzNzg0LDM3OTEsMzg2NCwzODY2LDM4OTMsMzg5NCwzODk1LDM4OTYsMzg5NywzODk4LDM5MDIsMzk1MywzOTY3LDM5NjgsMzk3MywzOTc0LDM5NzYsMzk4MSwzOTkyLDM5OTMsNDAyOSw0MDM4LDQwMzksNDE0MSw0MTQ1LDQxNDYsNDE1Miw0MTUzLDQxNTUsNDE1Nyw0MTU5LDQxODQsNDE4Niw0MTkwLDQxOTMsNDIwOSw0MjEzLDQyMjYsNDIyNyw0MjI5LDQyMzEsNDIzNyw0MjM4LDQyNTMsNDI1NCw0OTU3LDQ5NjAsNTAwOCw1MDE4LDUxMjAsNTEyMSw1NzYwLDU3NjEsNTc4Nyw1Nzg5LDU5MDYsNTkwOSw1OTM4LDU5NDAsNTk3MCw1OTcyLDYwMDIsNjAwNCw2MDY4LDYwNzAsNjA3MSw2MDc4LDYwODYsNjA4Nyw2MDg5LDYxMDAsNjEwNyw2MTA4LDYxMDksNjExMCw2MTI4LDYxMzgsNjE0NCw2MTU1LDYxNTgsNjE1OSw2MTYwLDYyNzcsNjI3OSw2MzEzLDYzMTQsNjQzMiw2NDM1LDY0MzksNjQ0MSw2NDUwLDY0NTEsNjQ1Nyw2NDYwLDY0NjQsNjQ2NSw2NDY4LDY0NzAsNjYyMiw2NjU2LDY2NzksNjY4MSw2NjgzLDY2ODQsNjc0Miw2NzQzLDY3NDQsNjc1MSw2NzUyLDY3NTMsNjc1NCw2NzU1LDY3NTcsNjc2NSw2NzcxLDY3ODEsNjc4Myw2Nzg0LDY4MzIsNjg3OCw2ODgwLDY4OTIsNjkxMiw2OTE2LDY5NjQsNjk2NSw2OTY2LDY5NzEsNjk3Miw2OTczLDY5NzgsNjk3OSw3MDE5LDcwMjgsNzA0MCw3MDQyLDcwNzQsNzA3OCw3MDgwLDcwODIsNzA4Myw3MDg2LDcxNDIsNzE0Myw3MTQ0LDcxNDYsNzE0OSw3MTUwLDcxNTEsNzE1NCw3MjEyLDcyMjAsNzIyMiw3MjI0LDczNzYsNzM3OSw3MzgwLDczOTMsNzM5NCw3NDAxLDc0MDUsNzQwNiw3NDEyLDc0MTMsNzQxNiw3NDE4LDc2MTYsNzY4MCw4MTI1LDgxMjYsODEyNyw4MTMwLDgxNDEsODE0NCw4MTU3LDgxNjAsODE3Myw4MTc2LDgxODksODE5MSw4MTkyLDgyMDMsODIwNiw4MjA3LDgyMDgsODIzMiw4MjMzLDgyMzQsODIzNSw4MjM2LDgyMzcsODIzOCw4MjM5LDgyNDAsODI0NSw4MjYwLDgyNjEsODI4Nyw4Mjg4LDgyOTQsODI5NSw4Mjk2LDgyOTcsODI5OCw4MzA0LDgzMDUsODMwOCw4MzE0LDgzMTYsODMxOSw4MzIwLDgzMzAsODMzMiw4MzM1LDgzNTIsODQwMCw4NDMzLDg0NDgsODQ1MCw4NDUxLDg0NTUsODQ1Niw4NDU4LDg0NjgsODQ2OSw4NDcwLDg0NzMsODQ3OCw4NDg0LDg0ODUsODQ4Niw4NDg3LDg0ODgsODQ4OSw4NDkwLDg0OTQsODQ5NSw4NTA2LDg1MDgsODUxMiw4NTE3LDg1MjIsODUyNiw4NTI4LDg1NDQsODU4NSw4NTg4LDg1OTIsODcyMiw4NzIzLDg3MjQsOTAxNCw5MDgzLDkxMDksOTExMCw5MjU4LDkyODAsOTI5MSw5MzEyLDkzNTIsOTM3Miw5NDUwLDk5MDAsOTkwMSwxMDI0MCwxMDQ5NiwxMTEyNCwxMTEyNiwxMTI2NCwxMTQ5MywxMTQ5OSwxMTUwMywxMTUwNiwxMTUxMywxMTUyMCwxMTY0NywxMTY0OCwxMTc0NCwxMTc3NiwxMTg3MCwxMTkwNCwxMTkzMCwxMTkzMSwxMjAyMCwxMjAzMiwxMjI0NiwxMjI3MiwxMjI4OCwxMjI4OSwxMjI5MywxMjI5NiwxMjMyMSwxMjMzMCwxMjMzNCwxMjMzNiwxMjMzNywxMjM0MiwxMjM0NCwxMjM0OSwxMjM1MiwxMjQ0MSwxMjQ0MywxMjQ0NSwxMjQ0OCwxMjQ0OSwxMjUzOSwxMjU0MCwxMjczNiwxMjc3NCwxMjc4MywxMjc4NCwxMjgyOSwxMjgzMSwxMjg4MCwxMjg5NiwxMjkyNCwxMjkyNywxMjk3NywxMjk5MiwxMzAwNCwxMzAwOCwxMzE3NSwxMzE3OSwxMzI3OCwxMzI4MCwxMzMxMSwxMzMxMiwxOTkwNCwxOTk2OCw0MjEyOCw0MjE4Myw0MjUwOSw0MjUxMiw0MjYwNyw0MjYxMSw0MjYxMiw0MjYyMiw0MjYyNCw0MjY1NCw0MjY1Niw0MjczNiw0MjczOCw0Mjc1Miw0Mjc4Niw0Mjg4OCw0Mjg4OSw0MzAxMCw0MzAxMSw0MzAxNCw0MzAxNSw0MzAxOSw0MzAyMCw0MzA0NSw0MzA0Nyw0MzA0OCw0MzA1Miw0MzA1Myw0MzA2NCw0MzA2Niw0MzEyNCw0MzEyOCw0MzIwNCw0MzIwNiw0MzIzMiw0MzI1MCw0MzI2Myw0MzI2NCw0MzMwMiw0MzMxMCw0MzMzNSw0MzM0Niw0MzM5Miw0MzM5NSw0MzQ0Myw0MzQ0NCw0MzQ0Niw0MzQ1MCw0MzQ1Miw0MzQ1NCw0MzQ5Myw0MzQ5NCw0MzU2MSw0MzU2Nyw0MzU2OSw0MzU3MSw0MzU3Myw0MzU3NSw0MzU4Nyw0MzU4OCw0MzU5Niw0MzU5Nyw0MzY0NCw0MzY0NSw0MzY5Niw0MzY5Nyw0MzY5OCw0MzcwMSw0MzcwMyw0MzcwNSw0MzcxMCw0MzcxMiw0MzcxMyw0MzcxNCw0Mzc1Niw0Mzc1OCw0Mzc2Niw0Mzc2Nyw0Mzg4Miw0Mzg4NCw0NDAwNSw0NDAwNiw0NDAwOCw0NDAwOSw0NDAxMyw0NDAxNCw2NDI4NSw2NDI4Niw2NDI4Nyw2NDI5Nyw2NDI5OCw2NDMzNiw2NDQ1MSw2NDQ2Nyw2NDgzMCw2NDg0OCw2NDkxMiw2NDkxNCw2NDk2OCw2NDk3Niw2NTAwOCw2NTAyMSw2NTAyNCw2NTA0MCw2NTA1MCw2NTA1Niw2NTA3Miw2NTEwNCw2NTEwNSw2NTEwNiw2NTEwNyw2NTEwOCw2NTEwOSw2NTExMCw2NTExOSw2NTEyMCw2NTEyMiw2NTEyNCw2NTEyNyw2NTEyOCw2NTEyOSw2NTEzMSw2NTEzMiw2NTEzNiw2NTI3OSw2NTI4MCw2NTI4MSw2NTI4Myw2NTI4Niw2NTI5MSw2NTI5Miw2NTI5Myw2NTI5NCw2NTI5Niw2NTMwNiw2NTMwNyw2NTMxMyw2NTMzOSw2NTM0NSw2NTM3MSw2NTM4Miw2NTUwNCw2NTUwNiw2NTUwOSw2NTUxMSw2NTUxMiw2NTUxOSw2NTUyMCw2NTUyOSw2NTUzNCw2NTUzNiw2NTc5Myw2NTc5NCw2NTg1Niw2NTkzMyw2NTkzNiw2NTk0OSw2NTk1Miw2NTk1Myw2NjA0NSw2NjA0Niw2NjI3Miw2NjI3Myw2NjMwMCw2NjQyMiw2NjQyNyw2NzU4NCw2Nzg3MSw2Nzg3Miw2ODA5Nyw2ODEwMCw2ODEwMSw2ODEwMyw2ODEwOCw2ODExMiw2ODE1Miw2ODE1NSw2ODE1OSw2ODE2MCw2ODMyNSw2ODMyNyw2ODQwOSw2ODQxNiw2ODg2NCw2ODkwMCw2ODkwNCw2ODkxMiw2ODkyMiw2ODkyOCw2ODkzOCw2ODk2OSw2ODk3NCw2ODk3NSw2OTIxNiw2OTI0Nyw2OTI5MSw2OTI5Myw2OTMxMiw2OTMyOCw2OTMzNyw2OTM3MCw2OTM3Niw2OTQyNCw2OTQ0Niw2OTQ1Nyw2OTQ4OCw2OTUwNiw2OTUxMCw2OTYzMiw2OTYzMyw2OTYzNCw2OTY4OCw2OTcwMyw2OTcxNCw2OTczNCw2OTc0NCw2OTc0NSw2OTc0Nyw2OTc0OSw2OTc1OSw2OTc2Miw2OTgxMSw2OTgxNSw2OTgxNyw2OTgxOSw2OTgyNiw2OTgyNyw2OTg4OCw2OTg5MSw2OTkyNyw2OTkzMiw2OTkzMyw2OTk0MSw3MDAwMyw3MDAwNCw3MDAxNiw3MDAxOCw3MDA3MCw3MDA3OSw3MDA4OSw3MDA5Myw3MDA5NSw3MDA5Niw3MDE5MSw3MDE5NCw3MDE5Niw3MDE5Nyw3MDE5OCw3MDIwMCw3MDIwNiw3MDIwNyw3MDIwOSw3MDIxMCw3MDM2Nyw3MDM2OCw3MDM3MSw3MDM3OSw3MDQwMCw3MDQwMiw3MDQ1OSw3MDQ2MSw3MDQ2NCw3MDQ2NSw3MDUwMiw3MDUwOSw3MDUxMiw3MDUxNyw3MDU4Nyw3MDU5Myw3MDYwNiw3MDYwNyw3MDYwOCw3MDYwOSw3MDYxMCw3MDYxMSw3MDYyNSw3MDYyNyw3MDcxMiw3MDcyMCw3MDcyMiw3MDcyNSw3MDcyNiw3MDcyNyw3MDc1MCw3MDc1MSw3MDgzNSw3MDg0MSw3MDg0Miw3MDg0Myw3MDg0Nyw3MDg0OSw3MDg1MCw3MDg1Miw3MTA5MCw3MTA5NCw3MTEwMCw3MTEwMiw3MTEwMyw3MTEwNSw3MTEzMiw3MTEzNCw3MTIxOSw3MTIyNyw3MTIyOSw3MTIzMCw3MTIzMSw3MTIzMyw3MTI2NCw3MTI3Nyw3MTMzOSw3MTM0MCw3MTM0MSw3MTM0Miw3MTM0NCw3MTM1MCw3MTM1MSw3MTM1Miw3MTQ1Myw3MTQ1NCw3MTQ1NSw3MTQ1Niw3MTQ1OCw3MTQ2Miw3MTQ2Myw3MTQ2OCw3MTcyNyw3MTczNiw3MTczNyw3MTczOSw3MTk5NSw3MTk5Nyw3MTk5OCw3MTk5OSw3MjAwMyw3MjAwNCw3MjE0OCw3MjE1Miw3MjE1NCw3MjE1Niw3MjE2MCw3MjE2MSw3MjE5Myw3MjE5OSw3MjIwMSw3MjIwMyw3MjI0Myw3MjI0OSw3MjI1MSw3MjI1NSw3MjI2Myw3MjI2NCw3MjI3Myw3MjI3OSw3MjI4MSw3MjI4NCw3MjMzMCw3MjM0Myw3MjM0NCw3MjM0Niw3MjU0NCw3MjU0NSw3MjU0Niw3MjU0OSw3MjU1MCw3MjU1MSw3Mjc1Miw3Mjc1OSw3Mjc2MCw3Mjc2Niw3Mjg1MCw3Mjg3Miw3Mjg3NCw3Mjg4MSw3Mjg4Miw3Mjg4NCw3Mjg4NSw3Mjg4Nyw3MzAwOSw3MzAxNSw3MzAxOCw3MzAxOSw3MzAyMCw3MzAyMiw3MzAyMyw3MzAzMCw3MzAzMSw3MzAzMiw3MzEwNCw3MzEwNiw3MzEwOSw3MzExMCw3MzExMSw3MzExMiw3MzQ1OSw3MzQ2MSw3MzQ3Miw3MzQ3NCw3MzUyNiw3MzUzMSw3MzUzNiw3MzUzNyw3MzUzOCw3MzUzOSw3MzU2Miw3MzU2Myw3MzY4NSw3MzY5Myw3MzY5Nyw3MzcxNCw3ODkxMiw3ODkxMyw3ODkxOSw3ODkzNCw5MDM5OCw5MDQxMCw5MDQxMyw5MDQxNiw5MjkxMiw5MjkxNyw5Mjk3Niw5Mjk4Myw5NDAzMSw5NDAzMiw5NDA5NSw5NDA5OSw5NDE3OCw5NDE3OSw5NDE4MCw5NDE4MSwxMTM4MjEsMTEzODIzLDExMzgyNCwxMTM4MjgsMTE3NzYwLDExNzk3NCwxMThlMywxMTgwMTAsMTE4MDEzLDExODAxNiwxMTg0NTIsMTE4NDU4LDExODQ4MSwxMTg0OTYsMTE4NTEzLDExODUyOCwxMTg1NzQsMTE4NTc2LDExODU5OSwxMTkxNDMsMTE5MTQ2LDExOTE1NSwxMTkxNjMsMTE5MTcxLDExOTE3MywxMTkxODAsMTE5MjEwLDExOTIxNCwxMTkyNzMsMTE5Mjc1LDExOTI5NiwxMTkzNjIsMTE5MzY1LDExOTM2NiwxMTk1NTIsMTE5NjM5LDEyMDUxMywxMjA1MTQsMTIwNTM5LDEyMDU0MCwxMjA1NzEsMTIwNTcyLDEyMDU5NywxMjA1OTgsMTIwNjI5LDEyMDYzMCwxMjA2NTUsMTIwNjU2LDEyMDY4NywxMjA2ODgsMTIwNzEzLDEyMDcxNCwxMjA3NDUsMTIwNzQ2LDEyMDc3MSwxMjA3NzIsMTIwNzgyLDEyMDgzMiwxMjEzNDQsMTIxMzk5LDEyMTQwMywxMjE0NTMsMTIxNDYxLDEyMTQ2MiwxMjE0NzYsMTIxNDc3LDEyMTQ5OSwxMjE1MDQsMTIxNTA1LDEyMTUyMCwxMjI4ODAsMTIyODg3LDEyMjg4OCwxMjI5MDUsMTIyOTA3LDEyMjkxNCwxMjI5MTUsMTIyOTE3LDEyMjkxOCwxMjI5MjMsMTIzMDIzLDEyMzAyNCwxMjMxODQsMTIzMTkxLDEyMzU2NiwxMjM1NjcsMTIzNjI4LDEyMzYzMiwxMjM2NDcsMTIzNjQ4LDEyNDE0MCwxMjQxNDQsMTI0Mzk4LDEyNDQwMCwxMjQ2NDMsMTI0NjQ0LDEyNDY0NiwxMjQ2NDcsMTI0NjU0LDEyNDY1NiwxMjQ2NjEsMTI0NjYyLDEyNDkyOCwxMjUxMzYsMTI1MTQzLDEyNTI1MiwxMjUyNTksMTI2MDY0LDEyNjE0NCwxMjYyMDgsMTI2Mjg4LDEyNjQ2NCwxMjY3MDQsMTI2NzA2LDEyNjcyMCwxMjY5NzYsMTI3MDIwLDEyNzAyNCwxMjcxMjQsMTI3MTM2LDEyNzE1MSwxMjcxNTMsMTI3MTY4LDEyNzE2OSwxMjcxODQsMTI3MTg1LDEyNzIyMiwxMjcyMzIsMTI3MjQzLDEyNzI0OCwxMjcyNzksMTI3MjgwLDEyNzMzOCwxMjczNDQsMTI3NDA1LDEyNzQwNiwxMjc1ODQsMTI3NTkwLDEyNzc0NCwxMjg3MjksMTI4NzMyLDEyODc0OSwxMjg3NTIsMTI4NzY1LDEyODc2OCwxMjg5ODYsMTI4OTkyLDEyOTAwNCwxMjkwMDgsMTI5MDA5LDEyOTAyNCwxMjkwMzYsMTI5MDQwLDEyOTA5NiwxMjkxMDQsMTI5MTE0LDEyOTEyMCwxMjkxNjAsMTI5MTY4LDEyOTE5OCwxMjkyMDAsMTI5MjEyLDEyOTIxNiwxMjkyMTgsMTI5MjMyLDEyOTI0MSwxMjkyODAsMTI5NjI0LDEyOTYzMiwxMjk2NDYsMTI5NjQ4LDEyOTY2MSwxMjk2NjQsMTI5Njc1LDEyOTY3OCwxMjk3MzUsMTI5NzM2LDEyOTczNywxMjk3NDEsMTI5NzU3LDEyOTc1OSwxMjk3NzEsMTI5Nzc1LDEyOTc4NSwxMjk3OTIsMTI5OTM5LDEyOTk0MCwxMzAwMzIsMTMwMDQyLDEzMDA0MywxMzEwNzAsMTMxMDcyLDE5NjYwNiwxOTY2MDgsMjYyMTQyLDI2MjE0NCwzMjc2NzgsMzI3NjgwLDM5MzIxNCwzOTMyMTYsNDU4NzUwLDQ1ODc1Miw1MjQyODYsNTI0Mjg4LDU4OTgyMiw1ODk4MjQsNjU1MzU4LDY1NTM2MCw3MjA4OTQsNzIwODk2LDc4NjQzMCw3ODY0MzIsODUxOTY2LDg1MTk2OCw5MTc1MDIsOTE3NzYwLDkxOGUzLDkyMTYwMCw5ODMwMzgsOTgzMDQwLDEwNDg1NzQsMTA0ODU3NiwxMTE0MTEwXSx3cD1bOSwxMSwxMCwxMSwxMiwxMCw5LDEwLDExLDEyLDEzLDUsMTMsNCw3LDQsNywzLDcsMTMsMCwxMywwLDEzLDksMTAsOSw3LDEzLDUsMTMsMCwxMyw5LDEzLDUsMywxMywwLDEzLDMsMCwxMywwLDEzLDAsMTMsMCwxMywwLDEzLDAsMTMsMCwxMywwLDEzLDgsMCwxMywwLDEzLDAsMTMsMCwxMywwLDEzLDAsOCwwLDEzLDAsMTMsNSwxLDgsMSw4LDEsOCwxLDgsMSw4LDEsNiwxMywyLDUsMiw3LDIsMTMsOCwyLDgsNiw1LDYsMiw4LDIsOCw2LDEzLDgsMiw4LDEzLDgsMiwzLDIsOCwyLDgsMiw4LDIsMSw4LDEsMTMsMSw4LDEsOCwxLDgsMSw4LDEsOCwxLDgsMSwyLDYsMiw4LDIsOCw2LDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDUsMCw1LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsNSwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsMTMsNSwxMywwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsMTMsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw1LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMTMsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCwxMywwLDEzLDAsMTIsMCwxMywwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsNSwwLDgsMCwxMywwLDEzLDgsOSw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsMTMsMCwxMywwLDEzLDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDEzLDAsMTMsMCwxMywwLDEzLDAsMTMsMCwxMywwLDEyLDksMCwxLDEzLDEyLDEwLDE0LDE2LDE4LDE1LDE3LDcsNSwxMyw3LDEzLDEyLDksMTksMjAsMjEsMjIsOSwzLDAsMyw0LDEzLDAsMyw0LDEzLDAsNSw4LDAsMTMsMCwxMywwLDEzLDAsMTMsMCwxMywwLDEzLDAsMTMsMCwxMywwLDEzLDAsNSwwLDEzLDAsMTMsMCwxMywwLDEzLDAsMTMsMCwxMyw0LDUsMTMsMCwxMywwLDEzLDAsMTMsMCwxMywzLDAsMTMsMCwxMywwLDEzLDAsMTMsMCwxMywwLDgsMCwxMywwLDgsMCw4LDEzLDAsMTMsMCwxMywwLDEzLDAsMTMsMTIsMTMsMCwxMywwLDgsMCwxMywwLDEzLDAsMTMsMCw4LDEzLDAsMTMsMCwxMywwLDEzLDAsMTMsMCwxMywwLDEzLDAsMTMsMCwxMywwLDEzLDAsMTMsMCwxMywwLDEzLDAsMTMsMCwxMywwLDEzLDAsOCwxMyw4LDEzLDAsOCwwLDgsMCwxMywwLDEzLDAsOCwwLDgsMCw4LDAsOCwwLDEzLDgsMCw1LDAsMTMsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDEzLDAsOCwwLDgsMCw4LDAsMSw4LDEsNCwxLDIsMTMsMiwxMywyLDEzLDIsMTMsOSwyLDEzLDgsMTMsMCw4LDEzLDcsMTMsNywwLDEzLDcsMTMsNSwxMyw0LDEzLDAsMTMsNSwxMywwLDIsOSwwLDEzLDUsMTMsNCw3LDQsNywzLDcsMTMsMCwxMywwLDEzLDAsNSwxMyw1LDAsMTMsMCw5LDEzLDksMCwxMywwLDEzLDAsMTMsMCwxMywwLDgsMCw4LDMsMCw4LDAsMSwxMywxLDgsMSw4LDEsOCwxLDgsMSw4LDEsOCwxLDEzLDEsMiw4LDIsNiwyLDYsMSw4LDEzLDEsNiwxLDgsMSwyLDEzLDIsOCwxLDIsOCwyLDEsOCwxLDAsOCwwLDgsMCwxMywwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCwxMywwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDEzLDUsMTMsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDEzLDAsOCwwLDgsMCw5LDAsMTMsMCwzLDEzLDAsMTMsMCwxMywwLDEzLDAsOCwwLDgsMCw4LDAsOSw4LDAsOCwwLDgsMCwxMywwLDEzLDgsMTMsMCwxMywwLDEzLDAsMTMsMCwxMywwLDEzLDAsMTMsMCwxMywwLDEzLDAsMTMsMCwxMywwLDEzLDAsMywwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDUsMCw4LDAsOCwwLDgsMCw4LDAsOCwwLDgsMCwxLDgsMSw4LDEsMiwxLDIsMSwyLDEzLDIsMSwxMywwLDEzLDAsMTMsMCwxMywwLDEzLDAsMTMsMCwzLDEzLDAsMTMsMCwxMywwLDEzLDAsMTMsMCwxMywwLDEzLDAsMTMsMCwxMywwLDEzLDAsMTMsMCwxMywwLDEzLDAsMTMsMCwxMywwLDEzLDAsMTMsMCwxMywwLDEzLDAsMTMsMCwxMywwLDEzLDAsMTMsMCwxMywwLDEzLDAsMTMsMCwxMywwLDEzLDAsMTMsMCwxMywzLDEzLDAsOSwwLDksMCw5LDAsOSwwLDksMCw5LDAsOSwwLDksMCw5LDAsOSwwLDksMCw5LDAsOSw4LDksMCw5LDAsOSwwLDldLFRwPVs0MCw0MSw0MSw0MCw2MCw2Miw2Miw2MCw5MSw5Myw5Myw5MSwxMjMsMTI1LDEyNSwxMjMsMTcxLDE4NywxODcsMTcxLDM4OTgsMzg5OSwzODk5LDM4OTgsMzkwMCwzOTAxLDM5MDEsMzkwMCw1Nzg3LDU3ODgsNTc4OCw1Nzg3LDgyNDksODI1MCw4MjUwLDgyNDksODI2MSw4MjYyLDgyNjIsODI2MSw4MzE3LDgzMTgsODMxOCw4MzE3LDgzMzMsODMzNCw4MzM0LDgzMzMsODcxMiw4NzE1LDg3MTMsODcxNiw4NzE0LDg3MTcsODcxNSw4NzEyLDg3MTYsODcxMyw4NzE3LDg3MTQsODcyNSwxMDc0MSw4NzM1LDExMjYyLDg3MzYsMTA2NTksODczNywxMDY1MSw4NzM4LDEwNjU2LDg3NDAsMTA5OTAsODc2NCw4NzY1LDg3NjUsODc2NCw4NzcxLDg5MDksODc3Myw4NzgwLDg3ODAsODc3Myw4Nzg2LDg3ODcsODc4Nyw4Nzg2LDg3ODgsODc4OSw4Nzg5LDg3ODgsODgwNCw4ODA1LDg4MDUsODgwNCw4ODA2LDg4MDcsODgwNyw4ODA2LDg4MDgsODgwOSw4ODA5LDg4MDgsODgxMCw4ODExLDg4MTEsODgxMCw4ODE0LDg4MTUsODgxNSw4ODE0LDg4MTYsODgxNyw4ODE3LDg4MTYsODgxOCw4ODE5LDg4MTksODgxOCw4ODIwLDg4MjEsODgyMSw4ODIwLDg4MjIsODgyMyw4ODIzLDg4MjIsODgyNCw4ODI1LDg4MjUsODgyNCw4ODI2LDg4MjcsODgyNyw4ODI2LDg4MjgsODgyOSw4ODI5LDg4MjgsODgzMCw4ODMxLDg4MzEsODgzMCw4ODMyLDg4MzMsODgzMyw4ODMyLDg4MzQsODgzNSw4ODM1LDg4MzQsODgzNiw4ODM3LDg4MzcsODgzNiw4ODM4LDg4MzksODgzOSw4ODM4LDg4NDAsODg0MSw4ODQxLDg4NDAsODg0Miw4ODQzLDg4NDMsODg0Miw4ODQ3LDg4NDgsODg0OCw4ODQ3LDg4NDksODg1MCw4ODUwLDg4NDksODg1NiwxMDY4MCw4ODY2LDg4NjcsODg2Nyw4ODY2LDg4NzAsMTA5NzQsODg3MiwxMDk4MCw4ODczLDEwOTc5LDg4NzUsMTA5ODEsODg4MCw4ODgxLDg4ODEsODg4MCw4ODgyLDg4ODMsODg4Myw4ODgyLDg4ODQsODg4NSw4ODg1LDg4ODQsODg4Niw4ODg3LDg4ODcsODg4Niw4ODg4LDEwMjA0LDg5MDUsODkwNiw4OTA2LDg5MDUsODkwNyw4OTA4LDg5MDgsODkwNyw4OTA5LDg3NzEsODkxMiw4OTEzLDg5MTMsODkxMiw4OTE4LDg5MTksODkxOSw4OTE4LDg5MjAsODkyMSw4OTIxLDg5MjAsODkyMiw4OTIzLDg5MjMsODkyMiw4OTI0LDg5MjUsODkyNSw4OTI0LDg5MjYsODkyNyw4OTI3LDg5MjYsODkyOCw4OTI5LDg5MjksODkyOCw4OTMwLDg5MzEsODkzMSw4OTMwLDg5MzIsODkzMyw4OTMzLDg5MzIsODkzNCw4OTM1LDg5MzUsODkzNCw4OTM2LDg5MzcsODkzNyw4OTM2LDg5MzgsODkzOSw4OTM5LDg5MzgsODk0MCw4OTQxLDg5NDEsODk0MCw4OTQ0LDg5NDUsODk0NSw4OTQ0LDg5NDYsODk1NCw4OTQ3LDg5NTUsODk0OCw4OTU2LDg5NTAsODk1Nyw4OTUxLDg5NTgsODk1NCw4OTQ2LDg5NTUsODk0Nyw4OTU2LDg5NDgsODk1Nyw4OTUwLDg5NTgsODk1MSw4OTY4LDg5NjksODk2OSw4OTY4LDg5NzAsODk3MSw4OTcxLDg5NzAsOTAwMSw5MDAyLDkwMDIsOTAwMSwxMDA4OCwxMDA4OSwxMDA4OSwxMDA4OCwxMDA5MCwxMDA5MSwxMDA5MSwxMDA5MCwxMDA5MiwxMDA5MywxMDA5MywxMDA5MiwxMDA5NCwxMDA5NSwxMDA5NSwxMDA5NCwxMDA5NiwxMDA5NywxMDA5NywxMDA5NiwxMDA5OCwxMDA5OSwxMDA5OSwxMDA5OCwxMDEwMCwxMDEwMSwxMDEwMSwxMDEwMCwxMDE3OSwxMDE4MCwxMDE4MCwxMDE3OSwxMDE4MSwxMDE4MiwxMDE4MiwxMDE4MSwxMDE4NCwxMDE4NSwxMDE4NSwxMDE4NCwxMDE4NywxMDE4OSwxMDE4OSwxMDE4NywxMDE5NywxMDE5OCwxMDE5OCwxMDE5NywxMDIwNCw4ODg4LDEwMjA1LDEwMjA2LDEwMjA2LDEwMjA1LDEwMjEwLDEwMjExLDEwMjExLDEwMjEwLDEwMjEyLDEwMjEzLDEwMjEzLDEwMjEyLDEwMjE0LDEwMjE1LDEwMjE1LDEwMjE0LDEwMjE2LDEwMjE3LDEwMjE3LDEwMjE2LDEwMjE4LDEwMjE5LDEwMjE5LDEwMjE4LDEwMjIwLDEwMjIxLDEwMjIxLDEwMjIwLDEwMjIyLDEwMjIzLDEwMjIzLDEwMjIyLDEwNjI3LDEwNjI4LDEwNjI4LDEwNjI3LDEwNjI5LDEwNjMwLDEwNjMwLDEwNjI5LDEwNjMxLDEwNjMyLDEwNjMyLDEwNjMxLDEwNjMzLDEwNjM0LDEwNjM0LDEwNjMzLDEwNjM1LDEwNjM2LDEwNjM2LDEwNjM1LDEwNjM3LDEwNjQwLDEwNjM4LDEwNjM5LDEwNjM5LDEwNjM4LDEwNjQwLDEwNjM3LDEwNjQxLDEwNjQyLDEwNjQyLDEwNjQxLDEwNjQzLDEwNjQ0LDEwNjQ0LDEwNjQzLDEwNjQ1LDEwNjQ2LDEwNjQ2LDEwNjQ1LDEwNjQ3LDEwNjQ4LDEwNjQ4LDEwNjQ3LDEwNjUxLDg3MzcsMTA2NTYsODczOCwxMDY1OSw4NzM2LDEwNjYwLDEwNjYxLDEwNjYxLDEwNjYwLDEwNjY0LDEwNjY1LDEwNjY1LDEwNjY0LDEwNjY2LDEwNjY3LDEwNjY3LDEwNjY2LDEwNjY4LDEwNjY5LDEwNjY5LDEwNjY4LDEwNjcwLDEwNjcxLDEwNjcxLDEwNjcwLDEwNjgwLDg4NTYsMTA2ODgsMTA2ODksMTA2ODksMTA2ODgsMTA2OTIsMTA2OTMsMTA2OTMsMTA2OTIsMTA3MDMsMTA3MDQsMTA3MDQsMTA3MDMsMTA3MDUsMTA3MDYsMTA3MDYsMTA3MDUsMTA3MDgsMTA3MDksMTA3MDksMTA3MDgsMTA3MTIsMTA3MTMsMTA3MTMsMTA3MTIsMTA3MTQsMTA3MTUsMTA3MTUsMTA3MTQsMTA3MjgsMTA3MjksMTA3MjksMTA3MjgsMTA3NDEsODcyNSwxMDc0NCwxMDc0NSwxMDc0NSwxMDc0NCwxMDc0OCwxMDc0OSwxMDc0OSwxMDc0OCwxMDc5NSwxMDc5NiwxMDc5NiwxMDc5NSwxMDc5NywxMDc5OCwxMDc5OCwxMDc5NywxMDgwNCwxMDgwNSwxMDgwNSwxMDgwNCwxMDgxMiwxMDgxMywxMDgxMywxMDgxMiwxMDg1MiwxMDg1MywxMDg1MywxMDg1MiwxMDg3MywxMDg3NCwxMDg3NCwxMDg3MywxMDg3NSwxMDg3NiwxMDg3NiwxMDg3NSwxMDg3NywxMDg3OCwxMDg3OCwxMDg3NywxMDg3OSwxMDg4MCwxMDg4MCwxMDg3OSwxMDg4MSwxMDg4MiwxMDg4MiwxMDg4MSwxMDg4MywxMDg4NCwxMDg4NCwxMDg4MywxMDg4NSwxMDg4NiwxMDg4NiwxMDg4NSwxMDg4NywxMDg4OCwxMDg4OCwxMDg4NywxMDg4OSwxMDg5MCwxMDg5MCwxMDg4OSwxMDg5MSwxMDg5MiwxMDg5MiwxMDg5MSwxMDg5MywxMDg5NCwxMDg5NCwxMDg5MywxMDg5NSwxMDg5NiwxMDg5NiwxMDg5NSwxMDg5NywxMDg5OCwxMDg5OCwxMDg5NywxMDg5OSwxMDkwMCwxMDkwMCwxMDg5OSwxMDkwMSwxMDkwMiwxMDkwMiwxMDkwMSwxMDkwMywxMDkwNCwxMDkwNCwxMDkwMywxMDkwNSwxMDkwNiwxMDkwNiwxMDkwNSwxMDkwNywxMDkwOCwxMDkwOCwxMDkwNywxMDkwOSwxMDkxMCwxMDkxMCwxMDkwOSwxMDkxMSwxMDkxMiwxMDkxMiwxMDkxMSwxMDkxMywxMDkxNCwxMDkxNCwxMDkxMywxMDkxOCwxMDkxOSwxMDkxOSwxMDkxOCwxMDkyMCwxMDkyMSwxMDkyMSwxMDkyMCwxMDkyMiwxMDkyMywxMDkyMywxMDkyMiwxMDkyNCwxMDkyNSwxMDkyNSwxMDkyNCwxMDkyNywxMDkyOCwxMDkyOCwxMDkyNywxMDkyOSwxMDkzMCwxMDkzMCwxMDkyOSwxMDkzMSwxMDkzMiwxMDkzMiwxMDkzMSwxMDkzMywxMDkzNCwxMDkzNCwxMDkzMywxMDkzNSwxMDkzNiwxMDkzNiwxMDkzNSwxMDkzNywxMDkzOCwxMDkzOCwxMDkzNywxMDkzOSwxMDk0MCwxMDk0MCwxMDkzOSwxMDk0MSwxMDk0MiwxMDk0MiwxMDk0MSwxMDk0MywxMDk0NCwxMDk0NCwxMDk0MywxMDk0NSwxMDk0NiwxMDk0NiwxMDk0NSwxMDk0NywxMDk0OCwxMDk0OCwxMDk0NywxMDk0OSwxMDk1MCwxMDk1MCwxMDk0OSwxMDk1MSwxMDk1MiwxMDk1MiwxMDk1MSwxMDk1MywxMDk1NCwxMDk1NCwxMDk1MywxMDk1NSwxMDk1NiwxMDk1NiwxMDk1NSwxMDk1NywxMDk1OCwxMDk1OCwxMDk1NywxMDk1OSwxMDk2MCwxMDk2MCwxMDk1OSwxMDk2MSwxMDk2MiwxMDk2MiwxMDk2MSwxMDk2MywxMDk2NCwxMDk2NCwxMDk2MywxMDk2NSwxMDk2NiwxMDk2NiwxMDk2NSwxMDk3NCw4ODcwLDEwOTc5LDg4NzMsMTA5ODAsODg3MiwxMDk4MSw4ODc1LDEwOTg4LDEwOTg5LDEwOTg5LDEwOTg4LDEwOTkwLDg3NDAsMTA5OTksMTFlMywxMWUzLDEwOTk5LDExMDAxLDExMDAyLDExMDAyLDExMDAxLDExMjYyLDg3MzUsMTE3NzgsMTE3NzksMTE3NzksMTE3NzgsMTE3ODAsMTE3ODEsMTE3ODEsMTE3ODAsMTE3ODUsMTE3ODYsMTE3ODYsMTE3ODUsMTE3ODgsMTE3ODksMTE3ODksMTE3ODgsMTE4MDQsMTE4MDUsMTE4MDUsMTE4MDQsMTE4MDgsMTE4MDksMTE4MDksMTE4MDgsMTE4MTAsMTE4MTEsMTE4MTEsMTE4MTAsMTE4MTIsMTE4MTMsMTE4MTMsMTE4MTIsMTE4MTQsMTE4MTUsMTE4MTUsMTE4MTQsMTE4MTYsMTE4MTcsMTE4MTcsMTE4MTYsMTE4NjEsMTE4NjIsMTE4NjIsMTE4NjEsMTE4NjMsMTE4NjQsMTE4NjQsMTE4NjMsMTE4NjUsMTE4NjYsMTE4NjYsMTE4NjUsMTE4NjcsMTE4NjgsMTE4NjgsMTE4NjcsMTIyOTYsMTIyOTcsMTIyOTcsMTIyOTYsMTIyOTgsMTIyOTksMTIyOTksMTIyOTgsMTIzMDAsMTIzMDEsMTIzMDEsMTIzMDAsMTIzMDIsMTIzMDMsMTIzMDMsMTIzMDIsMTIzMDQsMTIzMDUsMTIzMDUsMTIzMDQsMTIzMDgsMTIzMDksMTIzMDksMTIzMDgsMTIzMTAsMTIzMTEsMTIzMTEsMTIzMTAsMTIzMTIsMTIzMTMsMTIzMTMsMTIzMTIsMTIzMTQsMTIzMTUsMTIzMTUsMTIzMTQsNjUxMTMsNjUxMTQsNjUxMTQsNjUxMTMsNjUxMTUsNjUxMTYsNjUxMTYsNjUxMTUsNjUxMTcsNjUxMTgsNjUxMTgsNjUxMTcsNjUxMjQsNjUxMjUsNjUxMjUsNjUxMjQsNjUyODgsNjUyODksNjUyODksNjUyODgsNjUzMDgsNjUzMTAsNjUzMTAsNjUzMDgsNjUzMzksNjUzNDEsNjUzNDEsNjUzMzksNjUzNzEsNjUzNzMsNjUzNzMsNjUzNzEsNjUzNzUsNjUzNzYsNjUzNzYsNjUzNzUsNjUzNzgsNjUzNzksNjUzNzksNjUzNzhdLEVwPVs0MCw0MSwwLDQxLDQwLDEsOTEsOTMsMCw5Myw5MSwxLDEyMywxMjUsMCwxMjUsMTIzLDEsMzg5OCwzODk5LDAsMzg5OSwzODk4LDEsMzkwMCwzOTAxLDAsMzkwMSwzOTAwLDEsNTc4Nyw1Nzg4LDAsNTc4OCw1Nzg3LDEsODI2MSw4MjYyLDAsODI2Miw4MjYxLDEsODMxNyw4MzE4LDAsODMxOCw4MzE3LDEsODMzMyw4MzM0LDAsODMzNCw4MzMzLDEsODk2OCw4OTY5LDAsODk2OSw4OTY4LDEsODk3MCw4OTcxLDAsODk3MSw4OTcwLDEsOTAwMSw5MDAyLDAsOTAwMiw5MDAxLDEsMTAwODgsMTAwODksMCwxMDA4OSwxMDA4OCwxLDEwMDkwLDEwMDkxLDAsMTAwOTEsMTAwOTAsMSwxMDA5MiwxMDA5MywwLDEwMDkzLDEwMDkyLDEsMTAwOTQsMTAwOTUsMCwxMDA5NSwxMDA5NCwxLDEwMDk2LDEwMDk3LDAsMTAwOTcsMTAwOTYsMSwxMDA5OCwxMDA5OSwwLDEwMDk5LDEwMDk4LDEsMTAxMDAsMTAxMDEsMCwxMDEwMSwxMDEwMCwxLDEwMTgxLDEwMTgyLDAsMTAxODIsMTAxODEsMSwxMDIxNCwxMDIxNSwwLDEwMjE1LDEwMjE0LDEsMTAyMTYsMTAyMTcsMCwxMDIxNywxMDIxNiwxLDEwMjE4LDEwMjE5LDAsMTAyMTksMTAyMTgsMSwxMDIyMCwxMDIyMSwwLDEwMjIxLDEwMjIwLDEsMTAyMjIsMTAyMjMsMCwxMDIyMywxMDIyMiwxLDEwNjI3LDEwNjI4LDAsMTA2MjgsMTA2MjcsMSwxMDYyOSwxMDYzMCwwLDEwNjMwLDEwNjI5LDEsMTA2MzEsMTA2MzIsMCwxMDYzMiwxMDYzMSwxLDEwNjMzLDEwNjM0LDAsMTA2MzQsMTA2MzMsMSwxMDYzNSwxMDYzNiwwLDEwNjM2LDEwNjM1LDEsMTA2MzcsMTA2NDAsMCwxMDYzOCwxMDYzOSwxLDEwNjM5LDEwNjM4LDAsMTA2NDAsMTA2MzcsMSwxMDY0MSwxMDY0MiwwLDEwNjQyLDEwNjQxLDEsMTA2NDMsMTA2NDQsMCwxMDY0NCwxMDY0MywxLDEwNjQ1LDEwNjQ2LDAsMTA2NDYsMTA2NDUsMSwxMDY0NywxMDY0OCwwLDEwNjQ4LDEwNjQ3LDEsMTA3MTIsMTA3MTMsMCwxMDcxMywxMDcxMiwxLDEwNzE0LDEwNzE1LDAsMTA3MTUsMTA3MTQsMSwxMDc0OCwxMDc0OSwwLDEwNzQ5LDEwNzQ4LDEsMTE4MTAsMTE4MTEsMCwxMTgxMSwxMTgxMCwxLDExODEyLDExODEzLDAsMTE4MTMsMTE4MTIsMSwxMTgxNCwxMTgxNSwwLDExODE1LDExODE0LDEsMTE4MTYsMTE4MTcsMCwxMTgxNywxMTgxNiwxLDExODYxLDExODYyLDAsMTE4NjIsMTE4NjEsMSwxMTg2MywxMTg2NCwwLDExODY0LDExODYzLDEsMTE4NjUsMTE4NjYsMCwxMTg2NiwxMTg2NSwxLDExODY3LDExODY4LDAsMTE4NjgsMTE4NjcsMSwxMjI5NiwxMjI5NywwLDEyMjk3LDEyMjk2LDEsMTIyOTgsMTIyOTksMCwxMjI5OSwxMjI5OCwxLDEyMzAwLDEyMzAxLDAsMTIzMDEsMTIzMDAsMSwxMjMwMiwxMjMwMywwLDEyMzAzLDEyMzAyLDEsMTIzMDQsMTIzMDUsMCwxMjMwNSwxMjMwNCwxLDEyMzA4LDEyMzA5LDAsMTIzMDksMTIzMDgsMSwxMjMxMCwxMjMxMSwwLDEyMzExLDEyMzEwLDEsMTIzMTIsMTIzMTMsMCwxMjMxMywxMjMxMiwxLDEyMzE0LDEyMzE1LDAsMTIzMTUsMTIzMTQsMSw2NTExMyw2NTExNCwwLDY1MTE0LDY1MTEzLDEsNjUxMTUsNjUxMTYsMCw2NTExNiw2NTExNSwxLDY1MTE3LDY1MTE4LDAsNjUxMTgsNjUxMTcsMSw2NTI4OCw2NTI4OSwwLDY1Mjg5LDY1Mjg4LDEsNjUzMzksNjUzNDEsMCw2NTM0MSw2NTMzOSwxLDY1MzcxLDY1MzczLDAsNjUzNzMsNjUzNzEsMSw2NTM3NSw2NTM3NiwwLDY1Mzc2LDY1Mzc1LDEsNjUzNzgsNjUzNzksMCw2NTM3OSw2NTM3OCwxXTtmdW5jdGlvbiBEcChlKXtsZXQgdD0wLG49Q3AubGVuZ3RoLTE7Zm9yKDt0PG47KXtsZXQgcj10K24rMT4+MTtDcFtyXTw9ZT90PXI6bj1yLTF9cmV0dXJuIHdwW3RdfWZ1bmN0aW9uIE9wKGUpe3JldHVybiBTcFtEcChlKV19Y29uc3Qga3A9KCgpPT57bGV0IGU9bmV3IE1hcDtmb3IobGV0IHQ9MDt0PFRwLmxlbmd0aDt0Kz0yKWUuc2V0KFRwW3RdLFRwW3QrMV0pO3JldHVybiBlfSkoKTtmdW5jdGlvbiBBcChlKXtyZXR1cm4ga3AuZ2V0KGUpPz9udWxsfWNvbnN0IGpwPSgoKT0+e2xldCBlPW5ldyBNYXA7Zm9yKGxldCB0PTA7dDxFcC5sZW5ndGg7dCs9MyllLnNldChFcFt0XSx7cGFpcjpFcFt0KzFdLHR5cGU6RXBbdCsyXT09PTA/YG9gOmBjYH0pO3JldHVybiBlfSkoKTtmdW5jdGlvbiBNcChlKXtyZXR1cm4ganAuZ2V0KGUpPz9udWxsfWNvbnN0IE5wPWU9PmU9PT1gUkxFYHx8ZT09PWBMUkVgfHxlPT09YFJMT2B8fGU9PT1gTFJPYHx8ZT09PWBQREZgfHxlPT09YEJOYCxQcD1lPT5lPT09YExSSWB8fGU9PT1gUkxJYHx8ZT09PWBGU0lgLEZwPWU9PmU9PT1gQmB8fGU9PT1gU2B8fGU9PT1gV1NgfHxlPT09YE9OYHx8ZT09PWBGU0lgfHxlPT09YExSSWB8fGU9PT1gUkxJYHx8ZT09PWBQRElgLElwPWU9PmUmMT9lKzI6ZSsxLExwPWU9PmUmMT9lKzE6ZSsyO2Z1bmN0aW9uIFJwKGUsdCxuKXtsZXQgcj0wO2ZvcihsZXQgaT10O2k8bjtpKyspe2xldCB0PWVbaV07aWYoUHAodCkpcisrO2Vsc2UgaWYodD09PWBQRElgKXI+MCYmci0tO2Vsc2UgaWYocj09PTApe2lmKHQ9PT1gTGApcmV0dXJuIDA7aWYodD09PWBSYHx8dD09PWBBTGApcmV0dXJuIDF9fXJldHVybiAwfWZ1bmN0aW9uIHpwKGUpe2xldCB0PWUubGVuZ3RoLG49bmV3IEludDMyQXJyYXkodCkuZmlsbCh0KSxyPW5ldyBJbnQzMkFycmF5KHQpLmZpbGwoLTEpLGk9W107Zm9yKGxldCBhPTA7YTx0O2ErKyl7bGV0IHQ9ZVthXTtpZihQcCh0KSlpLnB1c2goYSk7ZWxzZSBpZih0PT09YFBESWAmJmkubGVuZ3RoKXtsZXQgZT1pLnBvcCgpO25bZV09YSxyW2FdPWV9fXJldHVybntwZGlPZjpuLGluaXRPZjpyfX1mdW5jdGlvbiBCcChlLHQsbil7bGV0IHI9ZS5sZW5ndGgsaT1BcnJheShyKS5maWxsKHQpLGE9ZS5zbGljZSgpLG89W3tsZXZlbDp0LG92ZXJyaWRlOmBuZXV0cmFsYCxpc29sYXRlOiExfV0scz0wLGM9MCxsPTAsdT0oKT0+b1tvLmxlbmd0aC0xXTtmb3IobGV0IGQ9MDtkPHI7ZCsrKXtsZXQgcj1lW2RdO3N3aXRjaChyKXtjYXNlYFJMRWA6Y2FzZWBMUkVgOmNhc2VgUkxPYDpjYXNlYExST2A6e2lbZF09dSgpLmxldmVsO2xldCBlPXI9PT1gUkxFYHx8cj09PWBSTE9gP0lwKHUoKS5sZXZlbCk6THAodSgpLmxldmVsKTtlPD0xMjUmJnM9PT0wJiZjPT09MD9vLnB1c2goe2xldmVsOmUsb3ZlcnJpZGU6cj09PWBSTE9gP2BSYDpyPT09YExST2A/YExgOmBuZXV0cmFsYCxpc29sYXRlOiExfSk6cz09PTAmJmMrKzticmVha31jYXNlYFJMSWA6Y2FzZWBMUklgOmNhc2VgRlNJYDp7aVtkXT11KCkubGV2ZWw7bGV0IHQ9dSgpLm92ZXJyaWRlO3QhPT1gbmV1dHJhbGAmJihhW2RdPXQpO2xldCBmO2Y9cj09PWBSTElgP2BSYDpyPT09YExSSWA/YExgOlJwKGUsZCsxLG5bZF0pPT09MT9gUmA6YExgO2xldCBwPWY9PT1gUmA/SXAodSgpLmxldmVsKTpMcCh1KCkubGV2ZWwpO3A8PTEyNSYmcz09PTAmJmM9PT0wPyhsKyssby5wdXNoKHtsZXZlbDpwLG92ZXJyaWRlOmBuZXV0cmFsYCxpc29sYXRlOiEwfSkpOnMrKzticmVha31jYXNlYFBESWA6aWYocz4wKXMtLTtlbHNlIGlmKGw+MCl7Zm9yKGM9MDshdSgpLmlzb2xhdGU7KW8ucG9wKCk7by5wb3AoKSxsLS19e2lbZF09dSgpLmxldmVsO2xldCBlPXUoKS5vdmVycmlkZTtlIT09YG5ldXRyYWxgJiYoYVtkXT1lKX1icmVhaztjYXNlYFBERmA6aVtkXT11KCkubGV2ZWwscz4wfHwoYz4wP2MtLTohdSgpLmlzb2xhdGUmJm8ubGVuZ3RoPj0yJiZvLnBvcCgpKTticmVhaztjYXNlYEJgOm8ubGVuZ3RoPTEscz0wLGM9MCxsPTAsaVtkXT10O2JyZWFrO2Nhc2VgQk5gOmlbZF09dSgpLmxldmVsO2JyZWFrO2RlZmF1bHQ6e2lbZF09dSgpLmxldmVsO2xldCBlPXUoKS5vdmVycmlkZTtlIT09YG5ldXRyYWxgJiYoYVtkXT1lKTticmVha319fXJldHVybntsZXZlbHM6aSx0eXBlczphfX1mdW5jdGlvbiBWcChlKXtyZXR1cm4gZT09PTkwMDE/MTIyOTY6ZT09PTkwMDI/MTIyOTc6ZX1mdW5jdGlvbiBIcChlLHQsbixyLGksYSl7bGV0IG89ZS5sZW5ndGgscz1bXTtmb3IobGV0IGU9MDtlPG87ZSsrKW5bZV18fHMucHVzaChlKTtsZXQgYz1bXTtmb3IobGV0IGU9MDtlPHMubGVuZ3RoO2UrKyl7bGV0IG49c1tlXTtlPT09MHx8dFtuXSE9PXRbc1tlLTFdXT9jLnB1c2goW25dKTpjW2MubGVuZ3RoLTFdLnB1c2gobil9bGV0IGw9bmV3IE1hcDtmb3IobGV0IGUgb2YgYylsLnNldChlWzBdLGUpO2xldCB1PWU9PmUmMT9gUmA6YExgLGQ9W107Zm9yKGxldCBzIG9mIGMpe2xldCBjPXNbMF07aWYoZVtjXT09PWBQRElgJiZhW2NdIT09LTEpY29udGludWU7bGV0IGY9W10scD1zO2Zvcig7Oyl7Zm9yKGxldCBlIG9mIHApZi5wdXNoKGUpO2xldCB0PXBbcC5sZW5ndGgtMV07aWYoUHAoZVt0XSkmJmlbdF0hPT1vKXtsZXQgZT1sLmdldChpW3RdKTtpZihlKXtwPWU7Y29udGludWV9fWJyZWFrfWxldCBtPXRbZlswXV0saD1yO2ZvcihsZXQgZT1mWzBdLTE7ZT49MDtlLS0paWYoIW5bZV0pe2g9dFtlXTticmVha31sZXQgZz11KE1hdGgubWF4KG0saCkpLF89ZltmLmxlbmd0aC0xXSx2PXI7aWYoIShQcChlW19dKSYmaVtfXT09PW8pKXtmb3IobGV0IGU9XysxO2U8bztlKyspaWYoIW5bZV0pe3Y9dFtlXTticmVha319bGV0IHk9dShNYXRoLm1heChtLHYpKTtkLnB1c2goe2luZGljZXM6ZixsZXZlbDptLHNvczpnLGVvczp5fSl9cmV0dXJuIGR9Y29uc3QgVXA9ZT0+ZT09PWBMYD9gTGA6ZT09PWBSYHx8ZT09PWBFTmB8fGU9PT1gQU5gP2BSYDpudWxsO2Z1bmN0aW9uIFdwKGUsdCxuLHIsaSl7bGV0IGE9ZS5pbmRpY2VzLG89YS5sZW5ndGgse3NvczpzLGVvczpjLGxldmVsOmx9PWU7Zm9yKGxldCBlPTA7ZTxvO2UrKyl7bGV0IHQ9YVtlXTtpZihyW3RdPT09YE5TTWApaWYoZT09PTApclt0XT1zO2Vsc2V7bGV0IG49clthW2UtMV1dO3JbdF09bj09PWBMUklgfHxuPT09YFJMSWB8fG49PT1gRlNJYHx8bj09PWBQRElgP2BPTmA6bn19e2xldCBlPXM7Zm9yKGxldCB0PTA7dDxvO3QrKyl7bGV0IG49clthW3RdXTtuPT09YFJgfHxuPT09YExgfHxuPT09YEFMYD9lPW46bj09PWBFTmAmJmU9PT1gQUxgJiYoclthW3RdXT1gQU5gKX19Zm9yKGxldCBlPTA7ZTxvO2UrKylyW2FbZV1dPT09YEFMYCYmKHJbYVtlXV09YFJgKTtmb3IobGV0IGU9MTtlPG8tMTtlKyspe2xldCB0PXJbYVtlXV0sbj1yW2FbZS0xXV0saT1yW2FbZSsxXV07dD09PWBFU2AmJm49PT1gRU5gJiZpPT09YEVOYHx8dD09PWBDU2AmJm49PT1gRU5gJiZpPT09YEVOYD9yW2FbZV1dPWBFTmA6dD09PWBDU2AmJm49PT1gQU5gJiZpPT09YEFOYCYmKHJbYVtlXV09YEFOYCl9Zm9yKGxldCBlPTA7ZTxvO2UrKyl7aWYoclthW2VdXSE9PWBFVGApY29udGludWU7bGV0IHQ9ZTtmb3IoO3Q8byYmclthW3RdXT09PWBFVGA7KXQrKztsZXQgbj1lPjA/clthW2UtMV1dOnMsaT10PG8/clthW3RdXTpjO2lmKG49PT1gRU5gfHxpPT09YEVOYClmb3IobGV0IG49ZTtuPHQ7bisrKXJbYVtuXV09YEVOYDtlPXQtMX1mb3IobGV0IGU9MDtlPG87ZSsrKXtsZXQgdD1yW2FbZV1dOyh0PT09YEVTYHx8dD09PWBFVGB8fHQ9PT1gQ1NgKSYmKHJbYVtlXV09YE9OYCl9e2xldCBlPXM7Zm9yKGxldCB0PTA7dDxvO3QrKyl7bGV0IG49clthW3RdXTtuPT09YFJgfHxuPT09YExgP2U9bjpuPT09YEVOYCYmZT09PWBMYCYmKHJbYVt0XV09YExgKX19bGV0IHU9bCYxP2BSYDpgTGAsZD11PT09YFJgP2BMYDpgUmAsZj1bXTt7bGV0IGU9W107b3V0ZXI6Zm9yKGxldCBuPTA7bjxvO24rKyl7bGV0IGk9YVtuXTtpZihyW2ldIT09YE9OYCljb250aW51ZTtsZXQgbz1NcCh0W2ldKTtpZihvKWlmKG8udHlwZT09PWBvYCl7aWYoZS5sZW5ndGg9PT02MylicmVhayBvdXRlcjtlLnB1c2goe2V4cGVjdDpWcChvLnBhaXIpLHBvczpufSl9ZWxzZXtsZXQgcj1WcCh0W2ldKTtmb3IobGV0IHQ9ZS5sZW5ndGgtMTt0Pj0wO3QtLSlpZihlW3RdLmV4cGVjdD09PXIpe2YucHVzaCh7b3BlbjplW3RdLnBvcyxjbG9zZTpufSksZS5sZW5ndGg9dDticmVha319fWYuc29ydCgoZSx0KT0+ZS5vcGVuLXQub3Blbil9bGV0IHA9KGUsdCk9Pntmb3IobGV0IGk9ZSsxO2k8byYmblthW2ldXT09PWBOU01gO2krKylyW2FbaV1dPXR9O2ZvcihsZXR7b3BlbjplLGNsb3NlOnR9b2YgZil7bGV0IG49ITEsaT0hMTtmb3IobGV0IG89ZSsxO288dDtvKyspe2xldCBlPVVwKHJbYVtvXV0pO2U9PT11P249ITA6ZT09PWQmJihpPSEwKX1sZXQgbz1udWxsO2lmKG4pbz11O2Vsc2UgaWYoaSl7bGV0IHQ9cztmb3IobGV0IG49ZS0xO24+PTA7bi0tKXtsZXQgZT1VcChyW2Fbbl1dKTtpZihlKXt0PWU7YnJlYWt9fW89dD09PWQ/ZDp1fW8mJihyW2FbZV1dPW8sclthW3RdXT1vLHAoZSxvKSxwKHQsbykpfWZvcihsZXQgZT0wO2U8bztlKyspe2lmKCFGcChyW2FbZV1dKSljb250aW51ZTtsZXQgdD1lO2Zvcig7dDxvJiZGcChyW2FbdF1dKTspdCsrO2xldCBuPWU+MD9VcChyW2FbZS0xXV0pOnMsaT10PG8/VXAoclthW3RdXSk6YztpZihuJiZpJiZuPT09aSlmb3IobGV0IGk9ZTtpPHQ7aSsrKXJbYVtpXV09bjtlPXQtMX1mb3IobGV0IGU9MDtlPG87ZSsrKUZwKHJbYVtlXV0pJiYoclthW2VdXT11KTtmb3IobGV0IGU9MDtlPG87ZSsrKXtsZXQgdD1hW2VdLG49clt0XTtsJjE/KG49PT1gTGB8fG49PT1gRU5gfHxuPT09YEFOYCkmJihpW3RdKz0xKTpuPT09YFJgP2lbdF0rPTE6KG49PT1gQU5gfHxuPT09YEVOYCkmJihpW3RdKz0yKX19ZnVuY3Rpb24gR3AoZSx0LG4pe2xldCByPWUubGVuZ3RoLGk9QXJyYXkocik7Zm9yKGxldCB0PTA7dDxyO3QrKylpW3RdPW4/Llt0XT8/T3AoZVt0XSk7bGV0IGE9dD09PWBydGxgPzE6dD09PWBsdHJgPzA6UnAoaSwwLHIpLHtwZGlPZjpvLGluaXRPZjpzfT16cChpKSx7bGV2ZWxzOmMsdHlwZXM6bH09QnAoaSxhLG8pLHU9QXJyYXkocik7Zm9yKGxldCBlPTA7ZTxyO2UrKyl1W2VdPU5wKGlbZV0pO2xldCBkPUhwKGksYyx1LGEsbyxzKSxmPWwuc2xpY2UoKTtmb3IobGV0IHQgb2YgZClXcCh0LGUsaSxmLGMpO2xldCBwPWU9PntsZXQgdD1pW2VdO3JldHVybiB0PT09YFdTYHx8UHAodCl8fHQ9PT1gUERJYHx8dVtlXX07Zm9yKGxldCBlPTA7ZTxyO2UrKyl7bGV0IHQ9aVtlXTtpZih0PT09YEJgfHx0PT09YFNgKXtjW2VdPWE7Zm9yKGxldCB0PWUtMTt0Pj0wJiZwKHQpO3QtLSl1W3RdfHwoY1t0XT1hKX19Zm9yKGxldCBlPXItMTtlPj0wJiZwKGUpO2UtLSl1W2VdfHwoY1tlXT1hKTtmb3IobGV0IGU9MDtlPHI7ZSsrKXVbZV0mJihjW2VdPS0xKTtyZXR1cm57bGV2ZWxzOmMscGFyYWdyYXBoTGV2ZWw6YX19ZnVuY3Rpb24gS3AoZSx0LG4pe2xldCByPVtdO2ZvcihsZXQgaT10O2k8bjtpKyspe2xldCB0PWVbaV07dD49MCYmdDw9MTI2JiZyLnB1c2goaSl9aWYoci5sZW5ndGg9PT0wKXJldHVybiByO2xldCBpPTAsYT0xMjc7Zm9yKGxldCB0IG9mIHIpe2xldCBuPWVbdF07bj5pJiYoaT1uKSxuJjEmJm48YSYmKGE9bil9Zm9yKGxldCB0PWk7dD49YTt0LS0pe2xldCBuPTA7Zm9yKDtuPHIubGVuZ3RoOylpZihlW3Jbbl1dPj10KXtsZXQgaT1uKzE7Zm9yKDtpPHIubGVuZ3RoJiZlW3JbaV1dPj10OylpKys7Zm9yKGxldCBlPW4sdD1pLTE7ZTx0O2UrKyx0LS0pe2xldCBuPXJbZV07cltlXT1yW3RdLHJbdF09bn1uPWl9ZWxzZSBuKyt9cmV0dXJuIHJ9ZnVuY3Rpb24gcXAoZSl7bGV0IHQ9W10sbj1bXSxyPVtdO2ZvcihsZXQgaT0wO2k8ZS5sZW5ndGg7KXtsZXQgYT1lLmNvZGVQb2ludEF0KGkpLG89YT42NTUzNT8yOjE7dC5wdXNoKGEpLG4ucHVzaChvKSxyLnB1c2goaSksaSs9b31yZXR1cm57Y3BzOnQsdW5pdHM6bixzdGFydHM6cn19dmFyIEpwPWNsYXNze2NvbXB1dGVMZXZlbHMoZSx0LG4pe2xldHtjcHM6cix1bml0czppLHN0YXJ0czphfT1xcChlKSx7bGV2ZWxzOm8scGFyYWdyYXBoTGV2ZWw6c309R3Aocix0LG4/ci5tYXAoKGUsdCk9Pm5bYVt0XV0/P251bGwpOnZvaWQgMCksYz1uZXcgVWludDhBcnJheShlLmxlbmd0aCksbD0wO2ZvcihsZXQgZT0wO2U8by5sZW5ndGg7ZSsrKXtsZXQgdD1vW2VdPT09LTE/MjU1Om9bZV07Zm9yKGxldCBuPTA7bjxpW2VdO24rKyljW2wrK109dH1yZXR1cm57bGV2ZWxzOmMscGFyYWdyYXBoTGV2ZWw6c319cmVvcmRlclZpc3VhbChlLHQsbil7cmV0dXJuIEtwKGUsdCxuKX1nZXRNaXJyb3IoZSl7cmV0dXJuIEFwKGUpfX07ZnVuY3Rpb24gWXAoKXtyZXR1cm4gbmV3IEpwfWxldCBYcD1udWxsO2Z1bmN0aW9uIFpwKCl7cmV0dXJuIFhwPT09bnVsbCYmKFhwPVlwKCkpLFhwfWNvbnN0IFFwPS9bXHUwNTkwLVx1MDhGRlx1RkIxRC1cdUZERkZcdUZFNzAtXHVGRUZGXHUyMDBGXHUyMDJCXHUyMDJFXHUyMDY3XXxbXHV7MTA4MDB9LVx1ezEwRkZGfVx1ezFFODAwfS1cdXsxRUZGRn1dL3U7ZnVuY3Rpb24gJHAoZSl7cmV0dXJuIFFwLnRlc3QoZSl9ZnVuY3Rpb24gZW0oZSx0LG4pe2xldCByPW4ubGVuZ3RoLGk9bmV3IFVpbnQ4QXJyYXkocik7Zm9yKGxldCBhPTA7YTxyO2ErKyl7bGV0IHI9ZVtuW2FdXTtpW2FdPXI9PT0yNTU/dDpyfXJldHVybntvcmRlcjpacCgpLnJlb3JkZXJWaXN1YWwoaSwwLHIpLHNlZ0xldmVsczppfX1mdW5jdGlvbiB0bShlKXtsZXQgdD1uZXcgU2V0O2ZvcihsZXQgbiBvZiBlKXQuYWRkKG4uY29kZVBvaW50QXQoMCkpO3JldHVybiB0fWZ1bmN0aW9uIG5tKGUpe3JldHVybntlbmFibGVkOmU/LmtpbnNva3UhPT0hMSxsaW5lU3RhcnRGb3JiaWRkZW46dG0oZT8ubm9MaW5lQnJlYWtzQmVmb3JlPz9g4oCd4oCZ77yJ44CV77y9772d44CJ44CL44CN44CP44CR44CZ44CX44Cf772gwrvjgIHjgILvvIzvvI7jg7vvvJrvvJvvvI/vvJ/vvIHigJDjg7zjgqDigJPjgJzvvZ7jgYHjgYPjgYXjgYfjgYnjgaPjgoPjgoXjgofjgo7jgpXjgpbjgqHjgqPjgqXjgqfjgqnjg4Pjg6Pjg6Xjg6fjg67jg7Xjg7bjh7Djh7Hjh7Ljh7Pjh7Tjh7Xjh7bjh7fjh7jjh7njh7rjh7vjh7zjh73jh77jh7/jgIXjgLvjgp3jgp7jg73jg77jgpvjgpzvvIXigLDihIPCsOKAsuKAs++9oe+9o++9pO+9pe+9sO++nu++nyEpLC46Oz9dfe+9oGApLGxpbmVFbmRGb3JiaWRkZW46dG0oZT8ubm9MaW5lQnJlYWtzQWZ0ZXI/P2DigJzigJjvvIjjgJTvvLvvvZvjgIjjgIrjgIzjgI7jgJDjgJjjgJbjgJ3vvZ/Cq++8hO+/pe+8g++/oe+/oChbe++9n2ApfX1jb25zdCBybT1ubSgpO2Z1bmN0aW9uIGltKGUsdCxuLHI9MSl7aWYoIW4uZW5hYmxlZHx8dDw9MHx8dD49ZS5sZW5ndGgpcmV0dXJuIHQ7bGV0IGk9dD0+dDxlLmxlbmd0aCYmbi5saW5lU3RhcnRGb3JiaWRkZW4uaGFzKGVbdF0uY29kZVBvaW50QXQoMCkpLGE9dD0+dD49MCYmbi5saW5lRW5kRm9yYmlkZGVuLmhhcyhlW3RdLmNvZGVQb2ludEF0KDApKSxvPXQ7Zm9yKDtvPnImJihpKG8pfHxhKG8tMSkpOylvLS07cmV0dXJuIG88PXImJihpKG8pfHxhKG8tMSkpP3Q6b31mdW5jdGlvbiBhbShlLHQsbil7aWYoIXQuZW5hYmxlZClyZXR1cm4gMDtsZXQgcj1lLmxlbmd0aC1uO2ZvcihsZXQgbj0xO248PXI7bisrKXtsZXQgcj1lW2UubGVuZ3RoLW5dO2lmKC9ccy8udGVzdChyKXx8dC5saW5lU3RhcnRGb3JiaWRkZW4uaGFzKHIuY29kZVBvaW50QXQoMCkpKWNvbnRpbnVlO2xldCBpPWVbZS5sZW5ndGgtbi0xXTtpZighKGkmJnQubGluZUVuZEZvcmJpZGRlbi5oYXMoaS5jb2RlUG9pbnRBdCgwKSkpKXJldHVybiBufXJldHVybiAwfWZ1bmN0aW9uIG9tKGUpe3JldHVybiBlPj0xMjI4OCYmZTw9NDA5NTl8fGU+PTQ0MDMyJiZlPD01NTIwM3x8ZT49NjM3NDQmJmU8PTY0MjU1fHxlPj02NTI4MCYmZTw9NjU1MTl9Y29uc3Qgc209YEJLLkNNLkNSLkdMLkxGLk5MLlNQLldKLlpXLlpXSi5BSy5BTC5BUC5BUy5CMi5CQS5CQi5DQi5DTC5DUC5FQi5FTS5FWC5IMi5IMy5ITC5ISC5IWS5JRC5JTi5JUy5KTC5KVC5KVi5OUy5OVS5PUC5QTy5QUi5RVS5SSS5TWS5WRi5WSWAuc3BsaXQoYC5gKSxjbT1bMCw5LDEwLDExLDEzLDE0LDMyLDMzLDM0LDM1LDM2LDM3LDM4LDM5LDQwLDQxLDQyLDQzLDQ0LDQ1LDQ2LDQ3LDQ4LDU4LDYwLDYzLDY0LDkxLDkyLDkzLDk0LDEyMywxMjQsMTI1LDEyNiwxMjcsMTMzLDEzNCwxNjAsMTYxLDE2MiwxNjMsMTY2LDE3MSwxNzIsMTczLDE3NCwxNzYsMTc3LDE3OCwxODAsMTgxLDE4NywxODgsMTkxLDE5Miw3MTIsNzEzLDcxNiw3MTcsNzM1LDczNiw3NjgsODYwLDg2Nyw4ODAsODk0LDg5NSwxMTU1LDExNjIsMTQxNywxNDE4LDE0MTksMTQyMywxNDI0LDE0MjUsMTQ3MCwxNDcxLDE0NzIsMTQ3MywxNDc1LDE0NzYsMTQ3OCwxNDc5LDE0ODAsMTQ4OCwxNTE1LDE1MTksMTUyMywxNTM2LDE1NDIsMTU0NSwxNTQ4LDE1NTAsMTU1MiwxNTYzLDE1NjQsMTU2NSwxNTY4LDE2MTEsMTYzMiwxNjQyLDE2NDMsMTY0NSwxNjQ4LDE2NDksMTc0OCwxNzQ5LDE3NTAsMTc1NywxNzU4LDE3NTksMTc2NSwxNzY3LDE3NjksMTc3MCwxNzc0LDE3NzYsMTc4NiwxODA5LDE4MTAsMTg0MCwxODY3LDE5NTgsMTk2OSwxOTg0LDE5OTQsMjAyNywyMDM2LDIwNDAsMjA0MSwyMDQyLDIwNDUsMjA0NiwyMDQ4LDIwNzAsMjA3NCwyMDc1LDIwODQsMjA4NSwyMDg4LDIwODksMjA5NCwyMTM3LDIxNDAsMjE5MiwyMTk0LDIxOTksMjIwOCwyMjUwLDIyNzQsMjI3NSwyMzA4LDIzNjIsMjM2NSwyMzY2LDIzODQsMjM4NSwyMzkyLDI0MDIsMjQwNCwyNDA2LDI0MTYsMjQzMywyNDM2LDI0OTIsMjQ5MywyNDk0LDI1MDEsMjUwMywyNTA1LDI1MDcsMjUxMCwyNTE5LDI1MjAsMjUzMCwyNTMyLDI1MzQsMjU0NCwyNTQ2LDI1NDgsMjU1MywyNTU0LDI1NTUsMjU1NiwyNTU4LDI1NTksMjU2MSwyNTY0LDI2MjAsMjYyMSwyNjIyLDI2MjcsMjYzMSwyNjMzLDI2MzUsMjYzOCwyNjQxLDI2NDIsMjY2MiwyNjcyLDI2NzQsMjY3NywyNjc4LDI2ODksMjY5MiwyNzQ4LDI3NDksMjc1MCwyNzU4LDI3NTksMjc2MiwyNzYzLDI3NjYsMjc4NiwyNzg4LDI3OTAsMjgwMCwyODAxLDI4MDIsMjgxMCwyODE2LDI4MTcsMjgyMCwyODc2LDI4NzcsMjg3OCwyODg1LDI4ODcsMjg4OSwyODkxLDI4OTQsMjkwMSwyOTA0LDI5MTQsMjkxNiwyOTE4LDI5MjgsMjk0NiwyOTQ3LDMwMDYsMzAxMSwzMDE0LDMwMTcsMzAxOCwzMDIyLDMwMzEsMzAzMiwzMDQ2LDMwNTYsMzA2NSwzMDY2LDMwNzIsMzA3NywzMTMyLDMxMzMsMzEzNCwzMTQxLDMxNDIsMzE0NSwzMTQ2LDMxNTAsMzE1NywzMTU5LDMxNzAsMzE3MiwzMTc0LDMxODQsMzE5MSwzMTkyLDMyMDEsMzIwNCwzMjA1LDMyNjAsMzI2MSwzMjYyLDMyNjksMzI3MCwzMjczLDMyNzQsMzI3OCwzMjg1LDMyODcsMzI5OCwzMzAwLDMzMDIsMzMxMiwzMzE1LDMzMTYsMzMyOCwzMzMyLDMzODcsMzM4OSwzMzkwLDMzOTcsMzM5OCwzNDAxLDM0MDIsMzQwNiwzNDE1LDM0MTYsMzQyNiwzNDI4LDM0MzAsMzQ0MCwzNDQ5LDM0NTAsMzQ1NywzNDYwLDM1MzAsMzUzMSwzNTM1LDM1NDEsMzU0MiwzNTQzLDM1NDQsMzU1MiwzNTU4LDM1NjgsMzU3MCwzNTcyLDM2MzMsMzYzNCwzNjM2LDM2NDMsMzY0NywzNjQ4LDM2NTUsMzY2MywzNjY0LDM2NzQsMzY3NiwzNzYxLDM3NjIsMzc2NCwzNzczLDM3ODQsMzc5MSwzNzkyLDM4MDIsMzg0MSwzODQ1LDM4NDYsMzg0OCwzODQ5LDM4NTEsMzg1MiwzODUzLDM4NTgsMzg1OSwzODYwLDM4NjEsMzg2NCwzODY2LDM4NzIsMzg4MiwzODkyLDM4OTMsMzg5NCwzODk1LDM4OTYsMzg5NywzODk4LDM4OTksMzkwMCwzOTAxLDM5MDIsMzkwNCwzOTUzLDM5NjcsMzk2OCwzOTczLDM5NzQsMzk3NiwzOTgxLDM5OTIsMzk5Myw0MDI5LDQwMzAsNDAzMiw0MDM4LDQwMzksNDA0OCw0MDUwLDQwNTEsNDA1Miw0MDU3LDQwNTksNDEzOSw0MTU5LDQxNjAsNDE3MCw0MTcyLDQxODIsNDE4Niw0MTkwLDQxOTMsNDE5NCw0MTk3LDQxOTksNDIwNiw0MjA5LDQyMTMsNDIyNiw0MjM4LDQyMzksNDI0MCw0MjUwLDQyNTQsNDM1Miw0NDQ4LDQ1MjAsNDYwOCw0OTU3LDQ5NjAsNDk2MSw0OTYyLDUxMjAsNTEyMSw1NzYwLDU3NjEsNTc4Nyw1Nzg4LDU3ODksNTg2Nyw1ODcwLDU5MDYsNTkxMCw1OTM4LDU5NDEsNTk0Myw1OTcwLDU5NzIsNjAwMiw2MDA0LDYwNjgsNjEwMCw2MTAyLDYxMDMsNjEwNCw2MTA1LDYxMDYsNjEwNyw2MTA4LDYxMDksNjExMCw2MTEyLDYxMjIsNjE0Niw2MTQ4LDYxNTAsNjE1MSw2MTUyLDYxNTQsNjE1NSw2MTU4LDYxNTksNjE2MCw2MTcwLDYyNzcsNjI3OSw2MzEzLDYzMTQsNjQzMiw2NDQ0LDY0NDgsNjQ2MCw2NDY4LDY0NzAsNjQ4MCw2NjA4LDY2MTksNjY3OSw2Njg0LDY3NDEsNjc1MSw2NzUyLDY3ODEsNjc4Myw2Nzg0LDY3OTQsNjgwMCw2ODEwLDY4MzIsNjg3OCw2ODgwLDY4OTEsNjg5Miw2OTEyLDY5MTcsNjk2NCw2OTgwLDY5ODEsNjk4OSw2OTkwLDY5OTIsNzAwMiw3MDA0LDcwMDUsNzAwOSw3MDE5LDcwMjgsNzAzNyw3MDQwLDcwNDMsNzA3Myw3MDg2LDcwODgsNzA5OCw3MTA0LDcxNDIsNzE1NCw3MTU2LDcyMDQsNzIyNCw3MjI3LDcyMzIsNzI0Miw3MjQ4LDcyNTgsNzI5NCw3Mjk2LDczNzYsNzM3OSw3MzgwLDc0MDEsNzQwNSw3NDA2LDc0MTIsNzQxMyw3NDE1LDc0MTgsNzYxNiw3NjI5LDc2MzAsNzY3Niw3Njc3LDc2ODAsODE4OSw4MTkwLDgxOTIsODE5OSw4MjAwLDgyMDMsODIwNCw4MjA1LDgyMDYsODIwOCw4MjA5LDgyMTAsODIxMiw4MjEzLDgyMTYsODIxOCw4MjE5LDgyMjIsODIyMyw4MjI0LDgyMjgsODIzMSw4MjMyLDgyMzQsODIzOSw4MjQwLDgyNDgsODI0OSw4MjUxLDgyNTIsODI1NCw4MjYwLDgyNjEsODI2Miw4MjYzLDgyNjYsODI3OCw4Mjc5LDgyODAsODI4NCw4Mjg1LDgyODgsODI4OSw4Mjk0LDgzMDQsODMxNyw4MzE4LDgzMTksODMzMyw4MzM0LDgzMzUsODM1Miw4MzU5LDgzNjAsODM3NCw4Mzc1LDgzNzksODM4MCw4MzgyLDgzODMsODM4NCw4Mzg1LDg0MDAsODQzMyw4NDUxLDg0NTIsODQ1Nyw4NDU4LDg0NzAsODQ3MSw4NzIyLDg3MjQsODk0Myw4OTQ0LDg5NjgsODk2OSw4OTcwLDg5NzEsODk3Miw4OTg2LDg5ODgsOTAwMSw5MDAyLDkwMDMsOTIwMCw5MjA0LDk3MjgsOTczMiw5NzQ4LDk3NTAsOTc1Miw5NzUzLDk3NTQsOTc1Nyw5NzU4LDk3NjAsOTc4NSw5Nzg4LDk4MzIsOTgzMyw5ODU1LDk4NTYsOTkxNyw5OTI5LDk5MzMsOTkzNCw5OTM1LDk5MzgsOTkzOSw5OTQxLDk5NDQsOTk0Niw5OTQ4LDk5NDksOTk1MSw5OTU0LDk5NjIsOTk2Myw5OTY5LDk5NzQsOTk3NSw5OTc3LDk5NzgsOTk3OSw5OTgxLDk5ODksOTk5Miw5OTk0LDk5OTgsMTAwNzUsMTAwODEsMTAwODIsMTAwODQsMTAwODUsMTAwODgsMTAwODksMTAwOTAsMTAwOTEsMTAwOTIsMTAwOTMsMTAwOTQsMTAwOTUsMTAwOTYsMTAwOTcsMTAwOTgsMTAwOTksMTAxMDAsMTAxMDEsMTAxMDIsMTAxODEsMTAxODIsMTAxODMsMTAyMTQsMTAyMTUsMTAyMTYsMTAyMTcsMTAyMTgsMTAyMTksMTAyMjAsMTAyMjEsMTAyMjIsMTAyMjMsMTAyMjQsMTAyNDAsMTAyNDEsMTA2MjcsMTA2MjgsMTA2MjksMTA2MzAsMTA2MzEsMTA2MzIsMTA2MzMsMTA2MzQsMTA2MzUsMTA2MzYsMTA2MzcsMTA2MzgsMTA2MzksMTA2NDAsMTA2NDEsMTA2NDIsMTA2NDMsMTA2NDQsMTA2NDUsMTA2NDYsMTA2NDcsMTA2NDgsMTA2NDksMTA3MTIsMTA3MTMsMTA3MTQsMTA3MTUsMTA3MTYsMTA3NDgsMTA3NDksMTA3NTAsMTE1MDMsMTE1MDYsMTE1MTMsMTE1MTQsMTE1MTcsMTE1MTgsMTE1MTksMTE1MjAsMTE2MzIsMTE2MzMsMTE2NDcsMTE2NDgsMTE3NDQsMTE3NzYsMTE3OTAsMTE3OTgsMTE3OTksMTE4MDAsMTE4MDEsMTE4MDIsMTE4MDQsMTE4MDYsMTE4MDgsMTE4MTAsMTE4MTEsMTE4MTIsMTE4MTMsMTE4MTQsMTE4MTUsMTE4MTYsMTE4MTcsMTE4MTgsMTE4MjIsMTE4MjMsMTE4MjQsMTE4MjYsMTE4MjcsMTE4MjksMTE4MzQsMTE4MzYsMTE4MzksMTE4NDAsMTE4NDEsMTE4NDIsMTE4NDMsMTE4NTEsMTE4NTIsMTE4NTMsMTE4NTQsMTE4NTYsMTE4NTksMTE4NjEsMTE4NjIsMTE4NjMsMTE4NjQsMTE4NjUsMTE4NjYsMTE4NjcsMTE4NjgsMTE4NjksMTE4NzAsMTE5MDQsMTE5MzAsMTE5MzEsMTIwMjAsMTIwMzIsMTIyNDYsMTIyNzIsMTIyODgsMTIyODksMTIyOTEsMTIyOTMsMTIyOTQsMTIyOTYsMTIyOTcsMTIyOTgsMTIyOTksMTIzMDAsMTIzMDEsMTIzMDIsMTIzMDMsMTIzMDQsMTIzMDUsMTIzMDYsMTIzMDgsMTIzMDksMTIzMTAsMTIzMTEsMTIzMTIsMTIzMTMsMTIzMTQsMTIzMTUsMTIzMTYsMTIzMTcsMTIzMTgsMTIzMjAsMTIzMzAsMTIzMzYsMTIzNDEsMTIzNDIsMTIzNDcsMTIzNDksMTIzNTIsMTIzNTMsMTIzNTQsMTIzNTUsMTIzNTYsMTIzNTcsMTIzNTgsMTIzNTksMTIzNjAsMTIzNjEsMTIzNjIsMTIzODcsMTIzODgsMTI0MTksMTI0MjAsMTI0MjEsMTI0MjIsMTI0MjMsMTI0MjQsMTI0MzAsMTI0MzEsMTI0MzcsMTI0MzksMTI0NDEsMTI0NDMsMTI0NDcsMTI0NDgsMTI0NTAsMTI0NTEsMTI0NTIsMTI0NTMsMTI0NTQsMTI0NTUsMTI0NTYsMTI0NTcsMTI0NTgsMTI0ODMsMTI0ODQsMTI1MTUsMTI1MTYsMTI1MTcsMTI1MTgsMTI1MTksMTI1MjAsMTI1MjYsMTI1MjcsMTI1MzMsMTI1MzUsMTI1MzksMTI1NDMsMTI1NDQsMTI1NDksMTI1OTIsMTI1OTMsMTI2ODcsMTI2ODgsMTI3NzQsMTI3ODMsMTI3ODQsMTI4MDAsMTI4MzEsMTI4MzIsMTI4NzIsMTI4ODAsMTk5MDQsMTk5NjgsNDA5ODEsNDA5ODIsNDIxMjUsNDIxMjgsNDIxODMsNDIyMzgsNDIyNDAsNDI1MDksNDI1MTAsNDI1MTEsNDI1MTIsNDI1MjgsNDI1MzgsNDI2MDcsNDI2MTEsNDI2MTIsNDI2MjIsNDI2NTQsNDI2NTYsNDI3MzYsNDI3MzgsNDI3MzksNDI3NDQsNDMwMTAsNDMwMTEsNDMwMTQsNDMwMTUsNDMwMTksNDMwMjAsNDMwNDMsNDMwNDgsNDMwNTIsNDMwNTMsNDMwNjQsNDMwNjUsNDMxMjQsNDMxMjYsNDMxMjgsNDMxMzYsNDMxMzgsNDMxODgsNDMyMDYsNDMyMTQsNDMyMTYsNDMyMjYsNDMyMzIsNDMyNTAsNDMyNjAsNDMyNjEsNDMyNjMsNDMyNjQsNDMyNzQsNDMzMDIsNDMzMTAsNDMzMTIsNDMzMzUsNDMzNDgsNDMzNjAsNDMzODksNDMzOTIsNDMzOTYsNDM0NDMsNDM0NTYsNDM0NTcsNDM0NjMsNDM0NjYsNDM0NzAsNDM0NzEsNDM0NzIsNDM0ODIsNDM0ODYsNDM0ODgsNDM0OTMsNDM0OTQsNDM1MDQsNDM1MTQsNDM1MjAsNDM1NjEsNDM1NzUsNDM1ODQsNDM1ODcsNDM1ODgsNDM1OTYsNDM1OTgsNDM2MDAsNDM2MTAsNDM2MTIsNDM2MTMsNDM2MTYsNDM2NDMsNDM2NDYsNDM2OTYsNDM2OTcsNDM2OTgsNDM3MDEsNDM3MDMsNDM3MDUsNDM3MTAsNDM3MTIsNDM3MTMsNDM3MTQsNDM3NTUsNDM3NjAsNDM3NjIsNDM3NjUsNDM3NjcsNDQwMDMsNDQwMTEsNDQwMTIsNDQwMTQsNDQwMTYsNDQwMjYsNDQwMzIsNDQwMzMsNDQwNjAsNDQwNjEsNDQwODgsNDQwODksNDQxMTYsNDQxMTcsNDQxNDQsNDQxNDUsNDQxNzIsNDQxNzMsNDQyMDAsNDQyMDEsNDQyMjgsNDQyMjksNDQyNTYsNDQyNTcsNDQyODQsNDQyODUsNDQzMTIsNDQzMTMsNDQzNDAsNDQzNDEsNDQzNjgsNDQzNjksNDQzOTYsNDQzOTcsNDQ0MjQsNDQ0MjUsNDQ0NTIsNDQ0NTMsNDQ0ODAsNDQ0ODEsNDQ1MDgsNDQ1MDksNDQ1MzYsNDQ1MzcsNDQ1NjQsNDQ1NjUsNDQ1OTIsNDQ1OTMsNDQ2MjAsNDQ2MjEsNDQ2NDgsNDQ2NDksNDQ2NzYsNDQ2NzcsNDQ3MDQsNDQ3MDUsNDQ3MzIsNDQ3MzMsNDQ3NjAsNDQ3NjEsNDQ3ODgsNDQ3ODksNDQ4MTYsNDQ4MTcsNDQ4NDQsNDQ4NDUsNDQ4NzIsNDQ4NzMsNDQ5MDAsNDQ5MDEsNDQ5MjgsNDQ5MjksNDQ5NTYsNDQ5NTcsNDQ5ODQsNDQ5ODUsNDUwMTIsNDUwMTMsNDUwNDAsNDUwNDEsNDUwNjgsNDUwNjksNDUwOTYsNDUwOTcsNDUxMjQsNDUxMjUsNDUxNTIsNDUxNTMsNDUxODAsNDUxODEsNDUyMDgsNDUyMDksNDUyMzYsNDUyMzcsNDUyNjQsNDUyNjUsNDUyOTIsNDUyOTMsNDUzMjAsNDUzMjEsNDUzNDgsNDUzNDksNDUzNzYsNDUzNzcsNDU0MDQsNDU0MDUsNDU0MzIsNDU0MzMsNDU0NjAsNDU0NjEsNDU0ODgsNDU0ODksNDU1MTYsNDU1MTcsNDU1NDQsNDU1NDUsNDU1NzIsNDU1NzMsNDU2MDAsNDU2MDEsNDU2MjgsNDU2MjksNDU2NTYsNDU2NTcsNDU2ODQsNDU2ODUsNDU3MTIsNDU3MTMsNDU3NDAsNDU3NDEsNDU3NjgsNDU3NjksNDU3OTYsNDU3OTcsNDU4MjQsNDU4MjUsNDU4NTIsNDU4NTMsNDU4ODAsNDU4ODEsNDU5MDgsNDU5MDksNDU5MzYsNDU5MzcsNDU5NjQsNDU5NjUsNDU5OTIsNDU5OTMsNDYwMjAsNDYwMjEsNDYwNDgsNDYwNDksNDYwNzYsNDYwNzcsNDYxMDQsNDYxMDUsNDYxMzIsNDYxMzMsNDYxNjAsNDYxNjEsNDYxODgsNDYxODksNDYyMTYsNDYyMTcsNDYyNDQsNDYyNDUsNDYyNzIsNDYyNzMsNDYzMDAsNDYzMDEsNDYzMjgsNDYzMjksNDYzNTYsNDYzNTcsNDYzODQsNDYzODUsNDY0MTIsNDY0MTMsNDY0NDAsNDY0NDEsNDY0NjgsNDY0NjksNDY0OTYsNDY0OTcsNDY1MjQsNDY1MjUsNDY1NTIsNDY1NTMsNDY1ODAsNDY1ODEsNDY2MDgsNDY2MDksNDY2MzYsNDY2MzcsNDY2NjQsNDY2NjUsNDY2OTIsNDY2OTMsNDY3MjAsNDY3MjEsNDY3NDgsNDY3NDksNDY3NzYsNDY3NzcsNDY4MDQsNDY4MDUsNDY4MzIsNDY4MzMsNDY4NjAsNDY4NjEsNDY4ODgsNDY4ODksNDY5MTYsNDY5MTcsNDY5NDQsNDY5NDUsNDY5NzIsNDY5NzMsNDdlMyw0NzAwMSw0NzAyOCw0NzAyOSw0NzA1Niw0NzA1Nyw0NzA4NCw0NzA4NSw0NzExMiw0NzExMyw0NzE0MCw0NzE0MSw0NzE2OCw0NzE2OSw0NzE5Niw0NzE5Nyw0NzIyNCw0NzIyNSw0NzI1Miw0NzI1Myw0NzI4MCw0NzI4MSw0NzMwOCw0NzMwOSw0NzMzNiw0NzMzNyw0NzM2NCw0NzM2NSw0NzM5Miw0NzM5Myw0NzQyMCw0NzQyMSw0NzQ0OCw0NzQ0OSw0NzQ3Niw0NzQ3Nyw0NzUwNCw0NzUwNSw0NzUzMiw0NzUzMyw0NzU2MCw0NzU2MSw0NzU4OCw0NzU4OSw0NzYxNiw0NzYxNyw0NzY0NCw0NzY0NSw0NzY3Miw0NzY3Myw0NzcwMCw0NzcwMSw0NzcyOCw0NzcyOSw0Nzc1Niw0Nzc1Nyw0Nzc4NCw0Nzc4NSw0NzgxMiw0NzgxMyw0Nzg0MCw0Nzg0MSw0Nzg2OCw0Nzg2OSw0Nzg5Niw0Nzg5Nyw0NzkyNCw0NzkyNSw0Nzk1Miw0Nzk1Myw0Nzk4MCw0Nzk4MSw0ODAwOCw0ODAwOSw0ODAzNiw0ODAzNyw0ODA2NCw0ODA2NSw0ODA5Miw0ODA5Myw0ODEyMCw0ODEyMSw0ODE0OCw0ODE0OSw0ODE3Niw0ODE3Nyw0ODIwNCw0ODIwNSw0ODIzMiw0ODIzMyw0ODI2MCw0ODI2MSw0ODI4OCw0ODI4OSw0ODMxNiw0ODMxNyw0ODM0NCw0ODM0NSw0ODM3Miw0ODM3Myw0ODQwMCw0ODQwMSw0ODQyOCw0ODQyOSw0ODQ1Niw0ODQ1Nyw0ODQ4NCw0ODQ4NSw0ODUxMiw0ODUxMyw0ODU0MCw0ODU0MSw0ODU2OCw0ODU2OSw0ODU5Niw0ODU5Nyw0ODYyNCw0ODYyNSw0ODY1Miw0ODY1Myw0ODY4MCw0ODY4MSw0ODcwOCw0ODcwOSw0ODczNiw0ODczNyw0ODc2NCw0ODc2NSw0ODc5Miw0ODc5Myw0ODgyMCw0ODgyMSw0ODg0OCw0ODg0OSw0ODg3Niw0ODg3Nyw0ODkwNCw0ODkwNSw0ODkzMiw0ODkzMyw0ODk2MCw0ODk2MSw0ODk4OCw0ODk4OSw0OTAxNiw0OTAxNyw0OTA0NCw0OTA0NSw0OTA3Miw0OTA3Myw0OTEwMCw0OTEwMSw0OTEyOCw0OTEyOSw0OTE1Niw0OTE1Nyw0OTE4NCw0OTE4NSw0OTIxMiw0OTIxMyw0OTI0MCw0OTI0MSw0OTI2OCw0OTI2OSw0OTI5Niw0OTI5Nyw0OTMyNCw0OTMyNSw0OTM1Miw0OTM1Myw0OTM4MCw0OTM4MSw0OTQwOCw0OTQwOSw0OTQzNiw0OTQzNyw0OTQ2NCw0OTQ2NSw0OTQ5Miw0OTQ5Myw0OTUyMCw0OTUyMSw0OTU0OCw0OTU0OSw0OTU3Niw0OTU3Nyw0OTYwNCw0OTYwNSw0OTYzMiw0OTYzMyw0OTY2MCw0OTY2MSw0OTY4OCw0OTY4OSw0OTcxNiw0OTcxNyw0OTc0NCw0OTc0NSw0OTc3Miw0OTc3Myw0OTgwMCw0OTgwMSw0OTgyOCw0OTgyOSw0OTg1Niw0OTg1Nyw0OTg4NCw0OTg4NSw0OTkxMiw0OTkxMyw0OTk0MCw0OTk0MSw0OTk2OCw0OTk2OSw0OTk5Niw0OTk5Nyw1MDAyNCw1MDAyNSw1MDA1Miw1MDA1Myw1MDA4MCw1MDA4MSw1MDEwOCw1MDEwOSw1MDEzNiw1MDEzNyw1MDE2NCw1MDE2NSw1MDE5Miw1MDE5Myw1MDIyMCw1MDIyMSw1MDI0OCw1MDI0OSw1MDI3Niw1MDI3Nyw1MDMwNCw1MDMwNSw1MDMzMiw1MDMzMyw1MDM2MCw1MDM2MSw1MDM4OCw1MDM4OSw1MDQxNiw1MDQxNyw1MDQ0NCw1MDQ0NSw1MDQ3Miw1MDQ3Myw1MDUwMCw1MDUwMSw1MDUyOCw1MDUyOSw1MDU1Niw1MDU1Nyw1MDU4NCw1MDU4NSw1MDYxMiw1MDYxMyw1MDY0MCw1MDY0MSw1MDY2OCw1MDY2OSw1MDY5Niw1MDY5Nyw1MDcyNCw1MDcyNSw1MDc1Miw1MDc1Myw1MDc4MCw1MDc4MSw1MDgwOCw1MDgwOSw1MDgzNiw1MDgzNyw1MDg2NCw1MDg2NSw1MDg5Miw1MDg5Myw1MDkyMCw1MDkyMSw1MDk0OCw1MDk0OSw1MDk3Niw1MDk3Nyw1MTAwNCw1MTAwNSw1MTAzMiw1MTAzMyw1MTA2MCw1MTA2MSw1MTA4OCw1MTA4OSw1MTExNiw1MTExNyw1MTE0NCw1MTE0NSw1MTE3Miw1MTE3Myw1MTIwMCw1MTIwMSw1MTIyOCw1MTIyOSw1MTI1Niw1MTI1Nyw1MTI4NCw1MTI4NSw1MTMxMiw1MTMxMyw1MTM0MCw1MTM0MSw1MTM2OCw1MTM2OSw1MTM5Niw1MTM5Nyw1MTQyNCw1MTQyNSw1MTQ1Miw1MTQ1Myw1MTQ4MCw1MTQ4MSw1MTUwOCw1MTUwOSw1MTUzNiw1MTUzNyw1MTU2NCw1MTU2NSw1MTU5Miw1MTU5Myw1MTYyMCw1MTYyMSw1MTY0OCw1MTY0OSw1MTY3Niw1MTY3Nyw1MTcwNCw1MTcwNSw1MTczMiw1MTczMyw1MTc2MCw1MTc2MSw1MTc4OCw1MTc4OSw1MTgxNiw1MTgxNyw1MTg0NCw1MTg0NSw1MTg3Miw1MTg3Myw1MTkwMCw1MTkwMSw1MTkyOCw1MTkyOSw1MTk1Niw1MTk1Nyw1MTk4NCw1MTk4NSw1MjAxMiw1MjAxMyw1MjA0MCw1MjA0MSw1MjA2OCw1MjA2OSw1MjA5Niw1MjA5Nyw1MjEyNCw1MjEyNSw1MjE1Miw1MjE1Myw1MjE4MCw1MjE4MSw1MjIwOCw1MjIwOSw1MjIzNiw1MjIzNyw1MjI2NCw1MjI2NSw1MjI5Miw1MjI5Myw1MjMyMCw1MjMyMSw1MjM0OCw1MjM0OSw1MjM3Niw1MjM3Nyw1MjQwNCw1MjQwNSw1MjQzMiw1MjQzMyw1MjQ2MCw1MjQ2MSw1MjQ4OCw1MjQ4OSw1MjUxNiw1MjUxNyw1MjU0NCw1MjU0NSw1MjU3Miw1MjU3Myw1MjYwMCw1MjYwMSw1MjYyOCw1MjYyOSw1MjY1Niw1MjY1Nyw1MjY4NCw1MjY4NSw1MjcxMiw1MjcxMyw1Mjc0MCw1Mjc0MSw1Mjc2OCw1Mjc2OSw1Mjc5Niw1Mjc5Nyw1MjgyNCw1MjgyNSw1Mjg1Miw1Mjg1Myw1Mjg4MCw1Mjg4MSw1MjkwOCw1MjkwOSw1MjkzNiw1MjkzNyw1Mjk2NCw1Mjk2NSw1Mjk5Miw1Mjk5Myw1MzAyMCw1MzAyMSw1MzA0OCw1MzA0OSw1MzA3Niw1MzA3Nyw1MzEwNCw1MzEwNSw1MzEzMiw1MzEzMyw1MzE2MCw1MzE2MSw1MzE4OCw1MzE4OSw1MzIxNiw1MzIxNyw1MzI0NCw1MzI0NSw1MzI3Miw1MzI3Myw1MzMwMCw1MzMwMSw1MzMyOCw1MzMyOSw1MzM1Niw1MzM1Nyw1MzM4NCw1MzM4NSw1MzQxMiw1MzQxMyw1MzQ0MCw1MzQ0MSw1MzQ2OCw1MzQ2OSw1MzQ5Niw1MzQ5Nyw1MzUyNCw1MzUyNSw1MzU1Miw1MzU1Myw1MzU4MCw1MzU4MSw1MzYwOCw1MzYwOSw1MzYzNiw1MzYzNyw1MzY2NCw1MzY2NSw1MzY5Miw1MzY5Myw1MzcyMCw1MzcyMSw1Mzc0OCw1Mzc0OSw1Mzc3Niw1Mzc3Nyw1MzgwNCw1MzgwNSw1MzgzMiw1MzgzMyw1Mzg2MCw1Mzg2MSw1Mzg4OCw1Mzg4OSw1MzkxNiw1MzkxNyw1Mzk0NCw1Mzk0NSw1Mzk3Miw1Mzk3Myw1NGUzLDU0MDAxLDU0MDI4LDU0MDI5LDU0MDU2LDU0MDU3LDU0MDg0LDU0MDg1LDU0MTEyLDU0MTEzLDU0MTQwLDU0MTQxLDU0MTY4LDU0MTY5LDU0MTk2LDU0MTk3LDU0MjI0LDU0MjI1LDU0MjUyLDU0MjUzLDU0MjgwLDU0MjgxLDU0MzA4LDU0MzA5LDU0MzM2LDU0MzM3LDU0MzY0LDU0MzY1LDU0MzkyLDU0MzkzLDU0NDIwLDU0NDIxLDU0NDQ4LDU0NDQ5LDU0NDc2LDU0NDc3LDU0NTA0LDU0NTA1LDU0NTMyLDU0NTMzLDU0NTYwLDU0NTYxLDU0NTg4LDU0NTg5LDU0NjE2LDU0NjE3LDU0NjQ0LDU0NjQ1LDU0NjcyLDU0NjczLDU0NzAwLDU0NzAxLDU0NzI4LDU0NzI5LDU0NzU2LDU0NzU3LDU0Nzg0LDU0Nzg1LDU0ODEyLDU0ODEzLDU0ODQwLDU0ODQxLDU0ODY4LDU0ODY5LDU0ODk2LDU0ODk3LDU0OTI0LDU0OTI1LDU0OTUyLDU0OTUzLDU0OTgwLDU0OTgxLDU1MDA4LDU1MDA5LDU1MDM2LDU1MDM3LDU1MDY0LDU1MDY1LDU1MDkyLDU1MDkzLDU1MTIwLDU1MTIxLDU1MTQ4LDU1MTQ5LDU1MTc2LDU1MTc3LDU1MjA0LDU1MjE2LDU1MjM5LDU1MjQzLDU1MjkyLDYzNzQ0LDY0MjU2LDY0Mjg1LDY0Mjg2LDY0Mjg3LDY0Mjk3LDY0Mjk4LDY0MzExLDY0MzEyLDY0MzE3LDY0MzE4LDY0MzE5LDY0MzIwLDY0MzIyLDY0MzIzLDY0MzI1LDY0MzI2LDY0MzM2LDY0ODMwLDY0ODMxLDY0ODMyLDY1MDIwLDY1MDIxLDY1MDI0LDY1MDQwLDY1MDQzLDY1MDQ1LDY1MDQ3LDY1MDQ4LDY1MDQ5LDY1MDUwLDY1MDU2LDY1MDU3LDY1MDU4LDY1MDU5LDY1MDYwLDY1MDYxLDY1MDYyLDY1MDY0LDY1MDY1LDY1MDY2LDY1MDY3LDY1MDY4LDY1MDY5LDY1MDcxLDY1MDcyLDY1MDc3LDY1MDc4LDY1MDc5LDY1MDgwLDY1MDgxLDY1MDgyLDY1MDgzLDY1MDg0LDY1MDg1LDY1MDg2LDY1MDg3LDY1MDg4LDY1MDg5LDY1MDkwLDY1MDkxLDY1MDkyLDY1MDkzLDY1MDk1LDY1MDk2LDY1MDk3LDY1MTA0LDY1MTA1LDY1MTA2LDY1MTA3LDY1MTA4LDY1MTEwLDY1MTEyLDY1MTEzLDY1MTE0LDY1MTE1LDY1MTE2LDY1MTE3LDY1MTE4LDY1MTE5LDY1MTI3LDY1MTI4LDY1MTI5LDY1MTMwLDY1MTMxLDY1MTMyLDY1Mjc5LDY1MjgwLDY1MjgxLDY1MjgyLDY1Mjg0LDY1Mjg1LDY1Mjg2LDY1Mjg4LDY1Mjg5LDY1MjkwLDY1MjkyLDY1MjkzLDY1Mjk0LDY1Mjk1LDY1MzA2LDY1MzA4LDY1MzExLDY1MzEyLDY1MzM5LDY1MzQwLDY1MzQxLDY1MzQyLDY1MzcxLDY1MzcyLDY1MzczLDY1Mzc0LDY1Mzc1LDY1Mzc2LDY1Mzc4LDY1Mzc5LDY1MzgxLDY1MzgyLDY1MzgzLDY1MzkzLDY1NDM4LDY1NDQwLDY1NDcxLDY1NDc0LDY1NDgwLDY1NDgyLDY1NDg4LDY1NDkwLDY1NDk2LDY1NDk4LDY1NTAxLDY1NTA0LDY1NTA1LDY1NTA2LDY1NTA5LDY1NTExLDY1NTI5LDY1NTMyLDY1NTMzLDY1NzkyLDY1Nzk1LDY2MDQ1LDY2MDQ2LDY2MjcyLDY2MjczLDY2NDIyLDY2NDI3LDY2NDYzLDY2NDY0LDY2NTEyLDY2NTEzLDY2NzIwLDY2NzMwLDY3NjcxLDY3NjcyLDY3ODcxLDY3ODcyLDY4MDk3LDY4MTAwLDY4MTAxLDY4MTAzLDY4MTA4LDY4MTEyLDY4MTUyLDY4MTU1LDY4MTU5LDY4MTYwLDY4MTc2LDY4MTg0LDY4MzI1LDY4MzI3LDY4MzM2LDY4MzQyLDY4MzQzLDY4NDA5LDY4NDE2LDY4OTAwLDY4OTA0LDY4OTEyLDY4OTIyLDY4OTI4LDY4OTM4LDY4OTY5LDY4OTc0LDY4OTc1LDY5MjkxLDY5MjkzLDY5Mjk0LDY5MzI4LDY5MzI5LDY5MzcwLDY5Mzc2LDY5NDQ2LDY5NDU3LDY5NTA2LDY5NTEwLDY5NjMyLDY5NjM1LDY5NjM3LDY5Njg4LDY5NzAyLDY5NzAzLDY5NzA1LDY5NzEwLDY5NzE0LDY5NzM0LDY5NzQ0LDY5NzQ1LDY5NzQ3LDY5NzQ5LDY5NzUwLDY5NzU5LDY5NzYwLDY5NzYzLDY5ODA4LDY5ODE5LDY5ODIxLDY5ODIyLDY5ODI2LDY5ODI3LDY5ODM3LDY5ODM4LDY5ODcyLDY5ODgyLDY5ODg4LDY5ODkxLDY5OTI3LDY5OTQxLDY5OTQyLDY5OTUyLDY5OTU2LDY5OTU3LDY5OTU5LDcwMDAzLDcwMDA0LDcwMDA1LDcwMDA2LDcwMDE2LDcwMDE5LDcwMDY3LDcwMDgxLDcwMDg1LDcwMDg3LDcwMDg4LDcwMDg5LDcwMDkzLDcwMDk0LDcwMDk2LDcwMTA2LDcwMTA3LDcwMTA4LDcwMTA5LDcwMTEyLDcwMTg4LDcwMjAwLDcwMjAyLDcwMjAzLDcwMjA1LDcwMjA2LDcwMjA3LDcwMjA5LDcwMjEwLDcwMzEzLDcwMzE0LDcwMzY3LDcwMzc5LDcwMzg0LDcwMzk0LDcwNDAwLDcwNDA0LDcwNDA1LDcwNDEzLDcwNDE1LDcwNDE3LDcwNDE5LDcwNDQxLDcwNDQyLDcwNDQ5LDcwNDUwLDcwNDUyLDcwNDUzLDcwNDU4LDcwNDU5LDcwNDYxLDcwNDYyLDcwNDY5LDcwNDcxLDcwNDczLDcwNDc1LDcwNDc3LDcwNDc4LDcwNDgwLDcwNDgxLDcwNDg3LDcwNDg4LDcwNDkzLDcwNDk0LDcwNDk2LDcwNDk4LDcwNTAwLDcwNTAyLDcwNTA5LDcwNTEyLDcwNTE3LDcwNTI4LDcwNTM4LDcwNTM5LDcwNTQwLDcwNTQyLDcwNTQzLDcwNTQ0LDcwNTQ2LDcwNTgyLDcwNTgzLDcwNTg0LDcwNTkzLDcwNTk0LDcwNTk1LDcwNTk3LDcwNTk4LDcwNTk5LDcwNjAzLDcwNjA0LDcwNjA4LDcwNjA5LDcwNjEwLDcwNjExLDcwNjE0LDcwNjE1LDcwNjE3LDcwNjI1LDcwNjI3LDcwNzA5LDcwNzI3LDcwNzMxLDcwNzM1LDcwNzM2LDcwNzQ2LDcwNzQ4LDcwNzUwLDcwNzUxLDcwODMyLDcwODUyLDcwODY0LDcwODc0LDcxMDg3LDcxMDk0LDcxMDk2LDcxMTA1LDcxMTA2LDcxMTA4LDcxMTEwLDcxMTEzLDcxMTI4LDcxMTMyLDcxMTM0LDcxMjE2LDcxMjMzLDcxMjM1LDcxMjQ4LDcxMjU4LDcxMjY0LDcxMjc3LDcxMzM5LDcxMzUyLDcxMzYwLDcxMzcwLDcxMzc2LDcxMzk2LDcxNDUzLDcxNDY4LDcxNDcyLDcxNDgyLDcxNDg0LDcxNDg3LDcxNzI0LDcxNzM5LDcxOTA0LDcxOTE0LDcxOTM2LDcxOTQzLDcxOTQ1LDcxOTQ2LDcxOTQ4LDcxOTU2LDcxOTU3LDcxOTU5LDcxOTYwLDcxOTg0LDcxOTkwLDcxOTkxLDcxOTkzLDcxOTk1LDcxOTk4LDcxOTk5LDcyZTMsNzIwMDEsNzIwMDIsNzIwMDQsNzIwMDcsNzIwMTYsNzIwMjYsNzIxNDUsNzIxNTIsNzIxNTQsNzIxNjEsNzIxNjIsNzIxNjMsNzIxNjQsNzIxNjUsNzIxOTMsNzIyMDMsNzIyNDMsNzIyNTAsNzIyNTEsNzIyNTUsNzIyNTYsNzIyNTcsNzIyNjEsNzIyNjIsNzIyNjMsNzIyNjQsNzIyNzMsNzIyODQsNzIzMzAsNzIzNDYsNzIzNDksNzIzNTAsNzIzNTMsNzIzNTUsNzI0NDgsNzI0NTgsNzI1NDQsNzI1NTIsNzI2ODgsNzI2OTgsNzI3NTEsNzI3NTksNzI3NjAsNzI3NjgsNzI3NjksNzI3NzQsNzI3ODQsNzI3OTQsNzI4MTYsNzI4MTcsNzI4MTgsNzI4NTAsNzI4NzIsNzI4NzMsNzI4ODcsNzMwMDksNzMwMTUsNzMwMTgsNzMwMTksNzMwMjAsNzMwMjIsNzMwMjMsNzMwMzAsNzMwMzEsNzMwMzIsNzMwNDAsNzMwNTAsNzMwOTgsNzMxMDMsNzMxMDQsNzMxMDYsNzMxMDcsNzMxMTIsNzMxMjAsNzMxMzAsNzMxODQsNzMxOTQsNzM0NDAsNzM0NTgsNzM0NTksNzM0NjMsNzM0NjUsNzM0NzIsNzM0NzQsNzM0NzUsNzM0NzYsNzM0ODksNzM0OTAsNzM1MjQsNzM1MzEsNzM1MzQsNzM1MzgsNzM1MzksNzM1NDEsNzM1NTIsNzM1NjIsNzM1NjMsNzM2OTMsNzM2OTcsNzM3MjcsNzM3MjgsNzQ4NjQsNzQ4NjksNzg0MjQsNzg0MjcsNzg0MzAsNzg0NjYsNzg0NjcsNzg0NzAsNzg0NzEsNzg0NzIsNzg0NzMsNzg0NzQsNzg3MTMsNzg3MTQsNzg3MTYsNzg4OTUsNzg4OTYsNzg5MDMsNzg5MDQsNzg5MDUsNzg5MDgsNzg5MDksNzg5MTAsNzg5MTEsNzg5MTIsNzg5MTMsNzg5MTksNzg5MzQsODM0MDYsODM0MDcsODM0MDgsOTAzNjgsOTAzOTgsOTA0MTYsOTA0MjYsOTI3NjgsOTI3NzgsOTI3ODIsOTI3ODQsOTI4NjQsOTI4NzQsOTI5MTIsOTI5MTcsOTI5MTgsOTI5NzYsOTI5ODMsOTI5ODYsOTI5OTYsOTI5OTcsOTMwMDgsOTMwMTgsOTM1NTAsOTM1NTIsOTM1NjIsOTM4NDcsOTM4NDksOTQwMzEsOTQwMzIsOTQwMzMsOTQwODgsOTQwOTUsOTQwOTksOTQxNzYsOTQxODAsOTQxODEsOTQxOTIsOTQxOTQsOTQxOTYsOTQxOTksOTQyMDgsMTAxMTIwLDEwMTYzMiwxMDE2NjMsMTAxNzYwLDEwMTg3NSwxMTA1OTIsMTEwODgzLDExMDg5OCwxMTA4OTksMTEwOTI4LDExMDkzMSwxMTA5MzMsMTEwOTM0LDExMDk0OCwxMTA5NTIsMTEwOTYwLDExMTM1NiwxMTM4MjEsMTEzODIzLDExMzgyNCwxMTM4MjgsMTE4ZTMsMTE4MDEwLDExODUyOCwxMTg1NzQsMTE4NTc2LDExODU5OSwxMTkxNDEsMTE5MTQ2LDExOTE0OSwxMTkxNzEsMTE5MTczLDExOTE4MCwxMTkyMTAsMTE5MjE0LDExOTM2MiwxMTkzNjUsMTIwNzgyLDEyMDgzMiwxMjEzNDQsMTIxMzk5LDEyMTQwMywxMjE0NTMsMTIxNDYxLDEyMTQ2MiwxMjE0NzYsMTIxNDc3LDEyMTQ3OSwxMjE0ODMsMTIxNDk5LDEyMTUwNCwxMjE1MDUsMTIxNTIwLDEyMjg4MCwxMjI4ODcsMTIyODg4LDEyMjkwNSwxMjI5MDcsMTIyOTE0LDEyMjkxNSwxMjI5MTcsMTIyOTE4LDEyMjkyMywxMjMwMjMsMTIzMDI0LDEyMzE4NCwxMjMxOTEsMTIzMjAwLDEyMzIxMCwxMjM1NjYsMTIzNTY3LDEyMzYyOCwxMjM2MzIsMTIzNjQyLDEyMzY0NywxMjM2NDgsMTI0MTQwLDEyNDE0NCwxMjQxNTQsMTI0Mzk4LDEyNDQwMCwxMjQ0MDEsMTI0NDExLDEyNDY0MywxMjQ2NDQsMTI0NjQ2LDEyNDY0NywxMjQ2NTQsMTI0NjU2LDEyNDY2MSwxMjQ2NjIsMTI1MTM2LDEyNTE0MywxMjUyNTIsMTI1MjU5LDEyNTI2NCwxMjUyNzQsMTI1Mjc4LDEyNTI4MCwxMjYxMjQsMTI2MTI1LDEyNjEyOCwxMjYxMjksMTI2OTc2LDEyNzIzMiwxMjc0MDYsMTI3NDYyLDEyNzQ4OCwxMjc4NzcsMTI3ODc4LDEyNzkwMCwxMjc5MDIsMTI3OTI1LDEyNzkyNywxMjc5MzIsMTI3OTMzLDEyNzkzOCwxMjc5NDEsMTI3OTQzLDEyNzk0NCwxMjc5NDYsMTI3OTQ5LDEyNzk5NSwxMjhlMywxMjgwNjYsMTI4MDY4LDEyODA3MCwxMjgwODEsMTI4MTAyLDEyODEyMSwxMjgxMjQsMTI4MTI1LDEyODEyOSwxMjgxMzIsMTI4MTMzLDEyODEzNiwxMjgxNDMsMTI4MTQ0LDEyODE0NSwxMjgxNDYsMTI4MTYwLDEyODE2MSwxMjgxNjIsMTI4MTYzLDEyODE2NCwxMjgxNjUsMTI4MTcwLDEyODE3MSwxMjgxNzUsMTI4MTc2LDEyODE3NywxMjgxNzksMTI4MjU2LDEyODI2MywxMjgyNzksMTI4MjkzLDEyODMwNiwxMjgzMzAsMTI4MzcyLDEyODM3NCwxMjgzNzgsMTI4Mzc5LDEyODQwMCwxMjg0MDEsMTI4NDA1LDEyODQwNywxMjg0NjgsMTI4NDc2LDEyODUwMCwxMjg1MDYsMTI4NTgxLDEyODU4NCwxMjg1ODcsMTI4NTkyLDEyODYzMCwxMjg2MzMsMTI4NjM2LDEyODY0MCwxMjg2NzUsMTI4Njc2LDEyODY5MiwxMjg2OTUsMTI4NzA0LDEyODcwNSwxMjg3MTYsMTI4NzE3LDEyODc2OCwxMjg4ODQsMTI4ODg3LDEyODg5MSwxMjg4OTYsMTI4OTgxLDEyOTAyNCwxMjkyOTIsMTI5MjkzLDEyOTI5NSwxMjkyOTYsMTI5MzA0LDEyOTMxMiwxMjkzMTgsMTI5MzE5LDEyOTMyOCwxMjkzMzgsMTI5MzQwLDEyOTM0MywxMjkzOTksMTI5NDAwLDEyOTQ2MSwxMjk0NjMsMTI5NDY0LDEyOTQ2NiwxMjk0NjcsMTI5NDY4LDEyOTQ4NSwxMjk0ODgsMTI5NDg5LDEyOTUwMiwxMjk1MzYsMTI5NjI0LDEyOTczMSwxMjk3MzQsMTI5Nzc2LDEyOTc4NSwxMjk3OTIsMTMwMDMyLDEzMDA0MiwxMzAwNDgsMTMxMDcwLDEzMTA3MiwxOTY2MDYsMTk2NjA4LDI2MjE0Miw5MTc1MDUsOTE3NTA2LDkxNzUzNiw5MTc2MzIsOTE3NzYwLDkxOGUzXSxsbT1bMSwxNSw0LDAsMiwxLDYsMjIsMzksMTEsMzgsMzcsMTEsMzksMzYsMTksMTEsMzgsMzAsMjcsMzAsNDEsMzUsMzAsMTEsMjIsMTEsMzYsMzgsMTksMTEsMzYsMTUsMTgsMTEsMSw1LDEsMywzNiwzNywzOCwxMSwzOSwxMSwxNSwxMSwzNywzOCwxMSwxNiwxMSwzOSwxMSwzNiwxMSwxNiwxMSwxNiwxMSwxNiwxMSwxLDMsMSwxMSwzMCwxMSwxLDExLDMwLDI2LDExLDM4LDExLDEsMjYsMSwxMSwxLDExLDEsMjIsMSwxMSwyNSwxMSwyNSwxMSwzNSwxMSwzNywzMCwxMSwxLDIyLDEsMjIsMTEsMSwzNSwzNywzNSwxMSwxLDExLDIyLDExLDEsMzUsMTEsMSwxMSwxLDExLDEsMTEsMzUsMTEsMSwxMSwxLDExLDEsMTEsMzUsMTEsMSwxMSwzMCwyMiwxMSwxLDM4LDExLDEsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwzNSwxMSwxLDExLDEsMzUsMSwxMSwxLDExLDEsMTEsMSwxMSwxLDE1LDM1LDExLDEsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwxLDExLDEsMTEsMzUsMTEsMzcsMTEsMzcsMTEsMzgsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwzNSwxLDExLDEsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwxLDExLDEsMTEsMzUsMTEsMzgsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwxLDExLDM1LDExLDEsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwzNSwxMSwzOCwxMSwxLDExLDEsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwxLDExLDM1LDExLDE2LDExLDEsMTYsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwxLDExLDEsMTEsMzUsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwxLDExLDM1LDExLDM3LDExLDEsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwzNSwxMSwxLDExLDEsMTEsMSwxMSwzOCwxMSwxLDExLDM1LDE1LDExLDEsMTEsMSwxMSwxLDExLDM1LDExLDE2LDExLDE2LDMsMTYsMTUsMywyMiwzLDExLDIyLDExLDEsMTEsMzUsMTEsMTUsMSwxMSwxLDExLDEsMzYsMTgsMzYsMTgsMSwxMSwxLDE1LDEsMTUsMSwxMSwxLDExLDEsMTEsMTUsMTEsMSwxMSwxNiwxNSwxNiwxMSwzLDExLDEsMTEsMzUsMTUsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwxLDExLDEsMTEsMSwzNSwxLDExLDMxLDMzLDMyLDExLDEsMTEsMTUsMTEsMjYsMTEsMTUsMTEsMzYsMTgsMTEsMTUsMTEsMSwxMSwxLDE1LDExLDEsMTEsMSwxMSwxLDE1LDM0LDExLDE1LDExLDE1LDM4LDExLDEsMTEsMzUsMTEsMjIsMTUsMTYsMTEsMjIsMTEsMSwzLDEsMzUsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwyMiwzNSwxMSwzNSwxMSwxLDExLDEsMTEsMSwxMSwxLDM1LDExLDM1LDExLDEsMTEsMSwzLDExLDEsMTAsMSw0MywxMCwxMSwxNSwxMywxNSwyOCwxNSwyOCwxLDI4LDE1LDEsMTEsMSwxMSwzNSwxMSwxMywxLDQyLDExLDEsMTEsMTUsMzUsMTEsMzUsMTEsMTUsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwxLDExLDEsMywxLDMsMSwxMSwxNiwxMSwxNSwzLDE1LDgsMSw5LDEsMjYsMywyNiwxNCwxMSwzOSwzNiwzOSwzNiwzOSwxMSwyOSwxNSwwLDEsMywzNywxMSwzOSwxMSwzNCwxMSwzMCwzNiwxOCwzNCwxMSwxNSwzNywxNSwxMSwxNSw3LDExLDEsMTEsMzYsMTgsMTEsMzYsMTgsMTEsMzgsMzcsMzgsMzcsMzgsMzcsMzgsMzcsMzgsMzcsMzgsMSwxMSwzNywxMSwzNywxMSwzOCwxMSwzOCwxMSwyOSwxMSwzNiwxOCwzNiwxOCwxMSwyOCwxMSwzNiwxOCwxMSwyOCwxMSwyOCwxMSwyOCwxMSwyOCwxMSwyOCwyMCwyOCwxMSwyOCwxMSwyOCwxMSwyOCwxMSwyOCwxMSwyOCwxMSwyOCwxMSwyOCwxMSwyOCwxMSwyOCwxMSwyOCwxMSwyOCwxMSwyOCwxMSwyOCwyMCwyOCwxMSwyOCwxMSwyOCwyMCwxMSwzOSwxMSwyMiwyOCwxMSwzNiwxOCwzNiwxOCwzNiwxOCwzNiwxOCwzNiwxOCwzNiwxOCwzNiwxOCwxMSwzNiwxOCwxMSwzNiwxOCwzNiwxOCwzNiwxOCwzNiwxOCwzNiwxOCwxMSwxNSwxMSwzNiwxOCwzNiwxOCwzNiwxOCwzNiwxOCwzNiwxOCwzNiwxOCwzNiwxOCwzNiwxOCwzNiwxOCwzNiwxOCwzNiwxOCwxMSwzNiwxOCwzNiwxOCwxMSwzNiwxOCwxMSwxLDExLDIyLDE1LDExLDIyLDE1LDExLDE1LDExLDEsMTEsMSwzOSwxNSwxMSwyNiwzNiwxNSwxMSwzOSwxMSwzOSwzNiwxOCwzNiwxOCwzNiwxOCwzNiwxOCwxNSwyMiwxMSwxNSwxMSwxNSwxMSwxNCwxNSwxMSwyNiwxNSwzNiwxNSwxMSwxNSwxMSwxNSwxMSwyMiwzNiwxOSwzNiwxOSwzNiwxOSwzNiwxOSwyNiwxMSwyOCwxMSwyOCwxMSwyOCwxMSwyOCwxNSwxOCwyOCwzNCwyOCwzNiwxOCwzNiwxOCwzNiwxOCwzNiwxOCwzNiwxOCwyOCwzNiwxOCwzNiwxOCwzNiwxOCwzNiwxOCwzNCwzNiwxOCwyOCwxLDI4LDEsMjgsMzQsMjgsMTEsMzQsMjgsMzQsMjgsMzQsMjgsMzQsMjgsMzQsMjgsMzQsMjgsMzQsMjgsMzQsMjgsMzQsMjgsMzQsMjgsMzQsMTEsMSwzNCwyOCwzNCwyOCwzNCwyOCwzNCwyOCwzNCwyOCwzNCwyOCwzNCwyOCwzNCwyOCwzNCwyOCwzNCwyOCwzNCwyOCwzNCwyOCwzNCwyOCwxMSwyOCwxMSwyOCwxMSwyOCwxMSwyOCwzNCwyOCwxMSwyOCwxMSwyOCwxMSwyOCwzNCwyOCwxMSwyOCwxMSwxNSwxMSwxNSwyMiwxNSwxMSwzNSwxMSwxLDExLDEsMTEsMSwxMSwxLDExLDE1LDExLDEsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwzNywxMSwxNiwyMiwxMSwxLDExLDEsMTEsMTUsMzUsMTEsMSwxMSwxNiwxMSwxLDM1LDExLDEsMTUsMTEsMSwxMSwzMSwxMSwxLDEwLDEsNDMsMjgsMTUsMjgsMTEsMTUsMTMsMTEsMjgsMTEsMSwxMSwzNSwxMSwxMywxLDExLDE1LDEsMTUsMSwxMSwxMywxMSwyOCwxNSwxMSwxLDExLDEsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwxLDE1LDExLDEsMTEsMSwxNSwxLDExLDM1LDExLDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDIzLDI0LDExLDMzLDExLDMyLDExLDI4LDExLDI1LDEsMjUsMTEsMjUsMTEsMjUsMTEsMjUsMTEsMjUsMTEsMjUsMTEsMjUsMTEsMTgsMzYsMTEsMzcsMTEsMSwxOCwzNCwyMiwzNiwxOCwyOSwxMSwzLDEsMywxLDMsMSwzLDEsMywxLDMsMSwzLDEsMjgsMzYsMTgsMzYsMTgsMzYsMTgsMzYsMTgsMzYsMTgsMzYsMTgsMzYsMTgsMzYsMTgsMjgsMzYsMTgsMjgsMTgsMjgsMTgsMTEsMzQsMjIsMjgsMzYsMTgsMzYsMTgsMzYsMTgsMjgsMTEsMjgsMzgsMzcsMjgsMTEsNywxMSwyMiwyOCwzOCwzNywyOCwzNiwxOCwyOCwxOCwyOCwxOCwyOCwzNCwyOCwyMiwyOCwzNiwyOCwxOCwyOCwzNiwyOCwxOCwyOCwzNiwxOCwzNiwxOCwzNCwyOCwzNCwyOCwzNCwyOCwxMSwyOCwxMSwyOCwxMSwyOCwxMSwyOCwxMSwzNywzOCwyOCwzOCwxMSwxLDE3LDExLDE1LDExLDEsMTEsMSwxMSwxLDExLDE1LDExLDE1LDExLDM1LDExLDE1LDExLDE1LDExLDEsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwxNSwxMSwxLDExLDE1LDI5LDExLDE1LDExLDEsMTEsMzUsMTEsMzUsMTEsMSwyNiwxMSwxLDI2LDExLDE1LDExLDEsMTEsMSwxMSwxLDExLDEsMTIsMTAsMSw0MywxNSwyOCwxMSwyOCwxMywxLDEwLDEsMTAsMTEsMywxLDExLDEsMTEsMzUsMTUsMSwxMSwzNSwxMSwzNSwxMSwxLDExLDEsMTEsMzUsMTUsMTEsMSwxMSwxLDExLDE2LDExLDEsMTEsMSwxMSwxNSwxMSwxNSwxLDExLDEsMzUsMTEsMTYsMTEsMTUsMTEsMSwxNSwxMSwxNSwxMSwxLDExLDEsMTEsMTUsMTEsMSwxMSwzNSwxMSwxLDExLDEwLDExLDEwLDExLDEwLDExLDEwLDExLDEwLDExLDEwLDExLDEsMTUsMSwxMSwxLDExLDEsNDMsMTEsMTMsMTEsMSwxMSwxNSwxMywxMCwxLDExLDEsMTEsMSwxMSwxMywxMSwxMywxMSwxMywxMSwxMywxMCwxMSwyOCwxLDExLDEsMTEsMSwxMSwxLDExLDEsNDMsMTIsMSwyOCwxMSwyOCwxMSwxLDExLDEsMTEsMTUsMTEsMzUsMTUsMTEsMSwxMSwxLDExLDM1LDExLDEsMTEsMSwxNiwxNSwyMiwxMSwxNSwxMSwxLDExLDEsMTUsMTEsMzUsMTEsMTYsMTEsMSwxMSwzNSwxMSwzNSwxMSwxLDExLDM1LDExLDE1LDExLDEsMTEsMzUsMTEsMTAsMTEsMTAsMTEsMTAsMTEsMTAsMTEsMTAsMSwxMSwxLDExLDEsNDMsMTIsMSwxMiwxLDE1LDExLDEzLDExLDEsMTEsMSwxMSwxNiwxMSwxLDExLDEsMTEsMSwxMSwxLDE2LDExLDE1LDE2LDExLDEsMTEsMSwxMSwxLDE1LDExLDE2LDE1LDExLDE2LDExLDEsMTEsMzUsMTEsMSwxMSwxLDExLDE1LDExLDM1LDExLDE2LDIyLDExLDEsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwxLDExLDEsMTEsMzUsMTEsMSwxMSwxLDExLDEsMTEsMzUsMTEsMzUsMTEsMTMsMTUsMSwxNSwxMSwxLDEyLDEsMTAsMTEsMTAsMSwxMSwxLDQzLDE1LDI4LDEzLDEsMTEsMzcsMTEsMTUsMTEsMTUsMTEsMzYsMTgsMTEsMTgsMTEsMzYsMTgsMzYsMTgsMTEsMzYsMTgsMTEsMzYsMywzNiwxOCwzLDM2LDE4LDM2LDE4LDEsMTEsMSwxMSwzNiwxOCwxMSwxMywxLDEzLDExLDM1LDExLDE1LDExLDM1LDExLDEsMTUsMTEsMSwxNSwxMSwxNSwxMSwzNSwxMSwxNSwzNSwxMSwxNSwxMSwxLDExLDEsMTEsMSwxMSwzNCwzLDExLDEsMzQsMjgsMTEsMjgsMTEsMjgsMTEsMjgsMTEsMjgsMTEsMzQsMTEsMzQsMTEsMzQsMTEsMzQsMTEsMjgsMTEsMSwxNSwxLDExLDM1LDExLDEsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwxLDExLDEsMTEsMzUsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwxNSwxMSwxLDExLDEsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwzNSwxMSwxLDExLDEsMzUsMTEsMzgsMTEsMSwzNSwxMSwxLDExLDM1LDExLDEsMTEsMSwxMSwxLDExLDEsMTEsMSwxMSwxLDExLDM1LDExLDM2LDExLDM3LDExLDM3LDExLDI4LDExLDI4LDQwLDI4LDIwLDI4LDExLDI4LDExLDI4LDExLDI4LDIwLDI4LDIwLDI4LDIwLDI4LDIxLDI4LDIwLDI4LDIwLDI4LDIwLDI4LDIwLDI4LDIwLDI4LDIwLDI4LDIwLDI4LDIwLDI4LDExLDI4LDExLDI4LDExLDI4LDIwLDI4LDExLDI4LDExLDI4LDExLDI4LDExLDI4LDExLDI4LDIwLDI4LDIwLDI4LDIwLDI4LDIwLDI4LDExLDI4LDExLDI4LDIwLDI4LDIwLDExLDM5LDM0LDExLDI4LDIwLDI4LDIwLDI4LDIwLDI4LDIwLDI4LDExLDI4LDExLDI4LDExLDI4LDExLDIwLDI4LDIwLDI4LDIwLDI4LDIwLDI4LDIwLDI4LDIwLDI4LDIwLDI4LDIwLDI4LDIwLDI4LDIwLDI4LDIwLDI4LDIwLDI4LDExLDI4LDIwLDI4LDIwLDI4LDExLDM1LDExLDI4LDExLDI4LDExLDI4LDExLDEsMTEsMSwxMSwxLDExXSx1bT1bNDM1Miw4MzYxLDg5ODYsOTAwMSw5MTkzLDkyMDAsOTIwMyw5NzI1LDk3NDgsOTc3Niw5ODAwLDk4NTUsOTg2Niw5ODc1LDk4ODksOTg5OCw5OTE3LDk5MjQsOTkzNCw5OTQwLDk5NjIsOTk3MCw5OTczLDk5NzgsOTk4MSw5OTg5LDk5OTQsMTAwMjQsMTAwNjAsMTAwNjIsMTAwNjcsMTAwNzEsMTAxMzMsMTAxNjAsMTAxNzUsMTEwMzUsMTEwODgsMTEwOTMsMTE5MDQsMTE5MzEsMTIwMzIsMTIyNzIsMTIzNTMsMTI0NDEsMTI1NDksMTI1OTMsMTI2ODgsMTI3ODMsMTI4MzIsMTI4ODAsNDIxMjgsNDMzNjAsNDQwMzIsNjM3NDQsNjUwNDAsNjUwNzIsNjUxMDgsNjUxMjgsNjUyODEsNjU0NzQsNjU0ODIsNjU0OTAsNjU0OTgsNjU1MDQsNjU1MTIsOTQxNzYsOTQxOTIsOTQyMDgsMTAxNjMxLDEwMTc2MCwxMTA1NzYsMTEwNTgxLDExMDU4OSwxMTA1OTIsMTEwODk4LDExMDkyOCwxMTA5MzMsMTEwOTQ4LDExMDk2MCwxMTk1NTIsMTE5NjQ4LDEyNjk4MCwxMjcxODMsMTI3Mzc0LDEyNzM3NywxMjc0ODgsMTI3NTA0LDEyNzU1MiwxMjc1NjgsMTI3NTg0LDEyNzc0NCwxMjc3ODksMTI3Nzk5LDEyNzg3MCwxMjc5MDQsMTI3OTUxLDEyNzk2OCwxMjc5ODgsMTI3OTkyLDEyODA2NCwxMjgwNjYsMTI4MjU1LDEyODMzMSwxMjgzMzYsMTI4Mzc4LDEyODQwNSwxMjg0MjAsMTI4NTA3LDEyODY0MCwxMjg3MTYsMTI4NzIwLDEyODcyNSwxMjg3MzIsMTI4NzQ3LDEyODc1NiwxMjg5OTIsMTI5MDA4LDEyOTI5MiwxMjkzNDAsMTI5MzUxLDEyOTY0OCwxMjk2NjQsMTI5Njc4LDEyOTczNiwxMjk3NDEsMTI5NzU5LDEyOTc3NSwxMzEwNzIsMTk2NjA4XSxkbT1bNDQ0OCw4MzYyLDg5ODgsOTAwMyw5MTk3LDkyMDEsOTIwNCw5NzI3LDk3NTAsOTc4NCw5ODEyLDk4NTYsOTg3Miw5ODc2LDk4OTAsOTkwMCw5OTE5LDk5MjYsOTkzNSw5OTQxLDk5NjMsOTk3Miw5OTc0LDk5NzksOTk4Miw5OTkwLDk5OTYsMTAwMjUsMTAwNjEsMTAwNjMsMTAwNzAsMTAwNzIsMTAxMzYsMTAxNjEsMTAxNzYsMTEwMzcsMTEwODksMTEwOTQsMTE5MzAsMTIwMjAsMTIyNDYsMTIzNTEsMTI0MzksMTI1NDQsMTI1OTIsMTI2ODcsMTI3NzQsMTI4MzEsMTI4NzIsNDIxMjUsNDIxODMsNDMzODksNTUyMDQsNjQyNTYsNjUwNTAsNjUxMDcsNjUxMjcsNjUxMzIsNjU0NzEsNjU0ODAsNjU0ODgsNjU0OTYsNjU1MDEsNjU1MTEsNjU1MTksOTQxODEsOTQxOTksMTAxNTkwLDEwMTY2MywxMDE4NzUsMTEwNTgwLDExMDU4OCwxMTA1OTEsMTEwODgzLDExMDg5OSwxMTA5MzEsMTEwOTM0LDExMDk1MiwxMTEzNTYsMTE5NjM5LDExOTY3MSwxMjY5ODEsMTI3MTg0LDEyNzM3NSwxMjczODcsMTI3NDkxLDEyNzU0OCwxMjc1NjEsMTI3NTcwLDEyNzU5MCwxMjc3NzcsMTI3Nzk4LDEyNzg2OSwxMjc4OTIsMTI3OTQ3LDEyNzk1NiwxMjc5ODUsMTI3OTg5LDEyODA2MywxMjgwNjUsMTI4MjUzLDEyODMxOCwxMjgzMzUsMTI4MzYwLDEyODM3OSwxMjg0MDcsMTI4NDIxLDEyODU5MiwxMjg3MTAsMTI4NzE3LDEyODcyMywxMjg3MjksMTI4NzM2LDEyODc0OSwxMjg3NjUsMTI5MDA0LDEyOTAwOSwxMjkzMzksMTI5MzUwLDEyOTUzNiwxMjk2NjEsMTI5Njc1LDEyOTczNSwxMjk3MzcsMTI5NzU3LDEyOTc3MSwxMjk3ODUsMTk2NjA2LDI2MjE0Ml07ZnVuY3Rpb24gZm0oZSl7bGV0IHQ9MCxuPWNtLmxlbmd0aC0xO2Zvcig7dDxuOyl7bGV0IHI9dCtuKzE+PjE7Y21bcl08PWU/dD1yOm49ci0xfXJldHVybiBzbVtsbVt0XV19ZnVuY3Rpb24gcG0oZSl7bGV0IHQ9MCxuPXVtLmxlbmd0aC0xO2lmKG48MHx8ZTx1bVswXSlyZXR1cm4hMTtmb3IoO3Q8bjspe2xldCByPXQrbisxPj4xO3VtW3JdPD1lP3Q9cjpuPXItMX1yZXR1cm4gZTxkbVt0XX1mdW5jdGlvbiBtbShlLHQpe2xldCBuPWZtKGUpO2lmKG49PT1gT1BgKXJldHVybiEwO2xldCByPWZtKHQpLGk9bj09PWBBTGB8fG49PT1gSExgLGE9cj09PWBBTGB8fHI9PT1gSExgO3JldHVybiEhKGkmJihhfHxyPT09YE5VYHx8cj09PWBQUmB8fHI9PT1gUE9gKXx8YSYmKG49PT1gTlVgfHxuPT09YFBSYHx8bj09PWBQT2ApfHxuPT09YFBSYCYmKHI9PT1gSURgfHxyPT09YEVCYHx8cj09PWBFTWApfHwobj09PWBJRGB8fG49PT1gRUJgfHxuPT09YEVNYCkmJnI9PT1gUE9gfHxuPT09YE5VYCYmKHI9PT1gTlVgfHxyPT09YFBPYHx8cj09PWBQUmApfHxyPT09YE5VYCYmKG49PT1gUE9gfHxuPT09YFBSYHx8bj09PWBIWWB8fG49PT1gSVNgKXx8KGl8fG49PT1gTlVgKSYmcj09PWBPUGAmJiFwbSh0KXx8bj09PWBDUGAmJiFwbShlKSYmKGF8fHI9PT1gTlVgKSl9ZnVuY3Rpb24gaG0oZSl7cmV0dXJuIGU9PT1gbXlgfHxlPT09YGJvYH1mdW5jdGlvbiBnbShlKXtyZXR1cm4gZT49MzU4NCYmZTw9MzcxMXx8ZT49MzcxMiYmZTw9MzgzOXx8ZT49NjAxNiYmZTw9NjE0M3x8ZT49NDA5NiYmZTw9NDI1NXx8ZT49NDM2MTYmJmU8PTQzNjQ3fHxlPj00MzQ4OCYmZTw9NDM1MTl8fGU+PTM4NDAmJmU8PTQwOTV9ZnVuY3Rpb24gX20oZSl7cmV0dXJuIGU9PT0zNjMzfHxlPj0zNjM1JiZlPD0zNjQyfHxlPj0zNjU1JiZlPD0zNjYyfHxlPT09Mzc2MXx8ZT49Mzc2MyYmZTw9Mzc3Mnx8ZT49Mzc4NCYmZTw9Mzc5MHx8ZT49NjA2OCYmZTw9NjA5OXx8ZT09PTYxMDl9ZnVuY3Rpb24gdm0oZSl7cmV0dXJuIGU8PTM3MTE/YHRoYDplPD0zODM5P2Bsb2A6ZTw9NDA5NT9gYm9gOmU8PTQyNTU/YG15YDplPD02MTQzP2BrbWA6YG15YH1mdW5jdGlvbiB5bShlKXtmb3IobGV0IHQgb2YgZSlpZihnbSh0LmNvZGVQb2ludEF0KDApKSlyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBibShlKXtmb3IobGV0IHQgb2YgZSl7bGV0IGU9dC5jb2RlUG9pbnRBdCgwKTtpZihnbShlKSlyZXR1cm4gaG0odm0oZSkpfXJldHVybiExfWZ1bmN0aW9uIHhtKGUpe2xldCB0PSExO2ZvcihsZXQgbiBvZiBlKXtsZXQgZT1uLmNvZGVQb2ludEF0KDApO2lmKGdtKGUpKXtpZihobSh2bShlKSkpcmV0dXJuITE7dD0hMH19cmV0dXJuIHR9Y29uc3QgU209bmV3IE1hcDtmdW5jdGlvbiBDbShlKXtsZXQgdD1TbS5nZXQoZSk7aWYodCE9PXZvaWQgMClyZXR1cm4gdDtsZXQgbj1udWxsO3RyeXt0eXBlb2YgSW50bDxgdWAmJnR5cGVvZiBJbnRsLlNlZ21lbnRlcj09YGZ1bmN0aW9uYCYmKG49bmV3IEludGwuU2VnbWVudGVyKGUse2dyYW51bGFyaXR5OmB3b3JkYH0pKX1jYXRjaHtuPW51bGx9cmV0dXJuIFNtLnNldChlLG4pLG59ZnVuY3Rpb24gd20oZSl7bGV0IHQ9Q20oZSk7cmV0dXJuIHQ/ZT0+dC5zZWdtZW50KGUpOm51bGx9ZnVuY3Rpb24gVG0oZSl7aWYoIXltKGUpKXJldHVybltdO2xldCB0PVtdLG49ZS5sZW5ndGgscj0wO2Zvcig7cjxuOyl7bGV0IGk9ZS5jb2RlUG9pbnRBdChyKSxhPWk+NjU1MzU/MjoxO2lmKCFnbShpKSl7cis9YTtjb250aW51ZX1sZXQgbz12bShpKSxzPWhtKG8pLGM9cithO2Zvcig7YzxuOyl7bGV0IHQ9ZS5jb2RlUG9pbnRBdChjKTtpZighZ20odCl8fGhtKHZtKHQpKSE9PXMpYnJlYWs7Yys9dD42NTUzNT8yOjF9bGV0IGw9ZS5zbGljZShyLGMpO2lmKHMpZm9yKGxldCBlIG9mIE5tKGwpKXQucHVzaChyK2UpO2Vsc2V7bGV0IGU9d20obyk7aWYoZSl7bGV0IG49W107dHJ5e2ZvcihsZXQgdCBvZiBlKGwpKXQuaW5kZXg+MCYmKHQuaXNXb3JkTGlrZT8/ITApJiZuLnB1c2gocit0LmluZGV4KTtmb3IobGV0IGUgb2Ygbil0LnB1c2goZSl9Y2F0Y2h7fX19cj1jfXJldHVybiB0fWZ1bmN0aW9uIEVtKGUpe2lmKCF5bShlKSlyZXR1cm5bXTtsZXQgdD1bXSxuPWUubGVuZ3RoLHI9ZS5jb2RlUG9pbnRBdCgwKSxpPXI+NjU1MzU/MjoxO2Zvcig7aTxuOyl7bGV0IG49ZS5jb2RlUG9pbnRBdChpKSxhPW4+NjU1MzU/MjoxO2dtKHIpIT09Z20obikmJiFEbShyKSYmIURtKG4pJiZ0LnB1c2goaSkscj1uLGkrPWF9cmV0dXJuIHR9ZnVuY3Rpb24gRG0oZSl7cmV0dXJuIGU9PT0zMnx8ZT09PTl8fGU9PT0xMHx8ZT09PTEzfHxlPT09MTIyODh8fGU9PT0xNjB8fGU9PT04MTk5fHxlPT09ODIzOXx8ZT09PTgyODh8fGU9PT02NTI3OX1mdW5jdGlvbiBPbShlLHQpe2lmKCF5bShlKSlyZXR1cm5bXTtsZXQgbj1lLmxlbmd0aCxyPW5ldyBTZXQoVG0oZSkpLGk9bmV3IFNldChObShlKSksYT1lPT57aS5oYXMoZSkmJnIuYWRkKGUpfTtmb3IobGV0IHQgb2YgRW0oZSkpYSh0KTtpZih0Py5jamspe2xldCB0PWUuY29kZVBvaW50QXQoMCkscj10PjY1NTM1PzI6MTtmb3IoO3I8bjspe2xldCBuPWUuY29kZVBvaW50QXQocik7KG9tKG4pfHxvbSh0KSkmJmEociksdD1uLHIrPW4+NjU1MzU/MjoxfX1sZXQgbz10Py5raW5zb2t1LHM9byE9bnVsbCYmby5lbmFibGVkIT09ITEsYz1bXTtmb3IobGV0IHQgb2YgcilpZighKHQ8PTB8fHQ+PW4pKXtpZihzKXtsZXQgbj1lLmNvZGVQb2ludEF0KHQpLHI9a20oZSx0KTtpZihyIT09dm9pZCAwJiZvLmxpbmVFbmRGb3JiaWRkZW4uaGFzKHIpfHxvLmxpbmVTdGFydEZvcmJpZGRlbi5oYXMobikpY29udGludWV9Yy5wdXNoKHQpfXJldHVybiBjLnNvcnQoKGUsdCk9PmUtdCksY31mdW5jdGlvbiBrbShlLHQpe2lmKHQ8PTApcmV0dXJuO2xldCBuPWUuY2hhckNvZGVBdCh0LTEpO2lmKG4+PTU2MzIwJiZuPD01NzM0MyYmdD49Mil7bGV0IG49ZS5jaGFyQ29kZUF0KHQtMik7aWYobj49NTUyOTYmJm48PTU2MzE5KXJldHVybiBlLmNvZGVQb2ludEF0KHQtMil9cmV0dXJuIG59ZnVuY3Rpb24gQW0oZSx0LG4scixpLGE9ITEpe2xldCBvPWUubGVuZ3RoO2lmKG4+PW8pcmV0dXJuIG47aWYoYSl7aWYoaShlLnNsaWNlKG4sbykpPD1yKXJldHVybiBvO2xldCBhPTAscz10Lmxlbmd0aC0xLGM9bjtmb3IoO2E8PXM7KXtsZXQgbD1hK3M+PjEsdT10W2xdO3U8PW4/YT1sKzE6dT49bz9zPWwtMTppKGUuc2xpY2Uobix1KSk8PXI/KGM9dSxhPWwrMSk6cz1sLTF9cmV0dXJuIGN9bGV0IHM9bjtmb3IobGV0IGEgb2YgdClhPD1ufHxhPj1vfHxpKGUuc2xpY2UobixhKSk8PXImJihzPWEpO3JldHVybiBpKGUuc2xpY2UobixvKSk8PXImJihzPW8pLHN9bGV0IGptO2Z1bmN0aW9uIE1tKCl7aWYoam0hPT12b2lkIDApcmV0dXJuIGptO2xldCBlPW51bGw7dHJ5e3R5cGVvZiBJbnRsPGB1YCYmdHlwZW9mIEludGwuU2VnbWVudGVyPT1gZnVuY3Rpb25gJiYoZT1uZXcgSW50bC5TZWdtZW50ZXIodm9pZCAwLHtncmFudWxhcml0eTpgZ3JhcGhlbWVgfSkpfWNhdGNoe2U9bnVsbH1yZXR1cm4gam09ZSxlfWZ1bmN0aW9uIE5tKGUpe2xldCB0PU1tKCk7aWYodCl0cnl7bGV0IG49W107Zm9yKGxldCByIG9mIHQuc2VnbWVudChlKSlyLmluZGV4PjAmJm4ucHVzaChyLmluZGV4KTtyZXR1cm4gbn1jYXRjaHt9bGV0IG49W107Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDspe2xldCByPWUuY29kZVBvaW50QXQodCk7dCs9cj42NTUzNT8yOjEsdDxlLmxlbmd0aCYmbi5wdXNoKHQpfXJldHVybiBufWNvbnN0IFBtPVtgVWAsYFJgLGBUdWAsYFRyYF0sRm09WzAsMTY3LDE2OCwxNjksMTcwLDE3NCwxNzUsMTc3LDE3OCwxODgsMTkxLDIxNSwyMTYsMjQ3LDI0OCw3NDYsNzQ4LDQzNTIsNDYwOCw1MTIxLDU3NjAsNjMyMCw2NDAwLDgyMTQsODIxNSw4MjE2LDgyMTgsODIyMCw4MjIyLDgyMjQsODIyNiw4MjQwLDgyNDIsODI1MSw4MjUzLDgyNTgsODI1OSw4MjYzLDgyNjYsODI3Myw4Mjc0LDgyOTMsODI5NCw4NDEzLDg0MTcsODQxOCw4NDIxLDg0NDgsODQ1MCw4NDUxLDg0NTgsODQ2Myw4NDY0LDg0NjcsODQ2OSw4NDcwLDg0NzIsODQ3OCw4NDg0LDg0ODUsODQ4Niw4NDg3LDg0ODgsODQ4OSw4NDkwLDg0OTQsODQ5NSw4NTAxLDg1MTIsODUxNyw4NTIzLDg1MjQsODUyNiw4NTI3LDg1ODYsODU4OCw4NTkyLDg3MzQsODczNSw4NzU2LDg3NTgsODk2MCw4OTY4LDg5NzIsODk5Miw4OTk2LDkwMDEsOTAwMyw5MDA0LDkwODUsOTExNSw5MTUwLDkxNjYsOTE2Nyw5MTY4LDkxNjksOTE4MCw5MTg2LDkyNTEsOTI1Miw5NDcyLDk2MzIsOTc1NCw5NzYwLDEwMDg4LDEwMTAyLDEwMTMyLDExMDI2LDExMDU2LDExMDg4LDExMDk4LDExMTU5LDExMTYwLDExMTkyLDExMjE4LDExMjE5LDExMjQ0LDExMjQ4LDExMjY0LDExODU2LDExODU4LDExOTA0LDEyMjg5LDEyMjkxLDEyMjk2LDEyMzA2LDEyMzA4LDEyMzIwLDEyMzM2LDEyMzM3LDEyMzUzLDEyMzU0LDEyMzU1LDEyMzU2LDEyMzU3LDEyMzU4LDEyMzU5LDEyMzYwLDEyMzYxLDEyMzYyLDEyMzg3LDEyMzg4LDEyNDE5LDEyNDIwLDEyNDIxLDEyNDIyLDEyNDIzLDEyNDI0LDEyNDMwLDEyNDMxLDEyNDM3LDEyNDM5LDEyNDQzLDEyNDQ1LDEyNDQ4LDEyNDQ5LDEyNDUwLDEyNDUxLDEyNDUyLDEyNDUzLDEyNDU0LDEyNDU1LDEyNDU2LDEyNDU3LDEyNDU4LDEyNDgzLDEyNDg0LDEyNTE1LDEyNTE2LDEyNTE3LDEyNTE4LDEyNTE5LDEyNTIwLDEyNTI2LDEyNTI3LDEyNTMzLDEyNTM1LDEyNTQwLDEyNTQxLDEyNTgzLDEyNTg0LDEyNzI0LDEyNzI4LDEyNzMxLDEyNzMyLDEyNzg0LDEyODAwLDEzMDU1LDEzMTQ0LDEzMTc5LDEzMTg0LDQyMTkyLDQzMzYwLDQzMzkyLDQ0MDMyLDU1Mjk2LDU3MzQ0LDY0MjU2LDY1MDQwLDY1MDU2LDY1MDcyLDY1MDk3LDY1MTA0LDY1MTA3LDY1MTEyLDY1MTEzLDY1MTE5LDY1MTIzLDY1MTI3LDY1MTM2LDY1MjgxLDY1MjgyLDY1Mjg4LDY1MjkwLDY1MjkyLDY1MjkzLDY1Mjk0LDY1Mjk1LDY1MzA2LDY1MzA4LDY1MzExLDY1MzEyLDY1MzM5LDY1MzQwLDY1MzQxLDY1MzQyLDY1MzQzLDY1MzQ0LDY1MzcxLDY1Mzc3LDY1NTA0LDY1NTA3LDY1NTA4LDY1NTEyLDY1NTIwLDY1NTI5LDY1NTMyLDY1NTM0LDY3OTY4LDY4ZTMsNzEwNDAsNzExNjgsNzIxOTIsNzIzODQsNzc4MjQsODM1ODQsOTQxNzYsMTAxODg4LDExMDU3NiwxMTA4OTgsMTEwODk5LDExMDkyOCwxMTA5MzEsMTEwOTMzLDExMDkzNCwxMTA5NDgsMTEwOTUyLDExMTM2MCwxMTg0NjQsMTE4NzM2LDExODc4NCwxMTkyOTYsMTE5NTIwLDExOTY4MCwxMjA4MzIsMTIxNTIwLDEyNjk3NiwxMjc0ODgsMTI3NDkwLDEyOTAyNCwxMjkyODAsMTI5NzkyLDEzMTA3MiwxOTY2MDYsMTk2NjA4LDI2MjE0Miw5ODMwNDAsMTA0ODU3NCwxMDQ4NTc2LDExMTQxMTBdLEltPVsxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDMsMSwzLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMywwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMiwwLDMsMCwzLDAsMywwLDIsMCwyLDAsMiwwLDIsMCwyLDAsMiwwLDIsMCwyLDAsMiwwLDIsMCwyLDAsMiwwLDMsMiwwLDIsMCwyLDAsMiwwLDIsMCwyLDAsMiwwLDIsMCwyLDAsMiwwLDIsMCwzLDAsMiwwLDIsMCwyLDAsMiwwLDIsMCwyLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDIsMCwxLDMsMCwxLDAsMSwyLDAsMywwLDIsMSwyLDAsMywxLDIsMCwzLDAsMywwLDMsMCwzLDEsMCwzLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwyLDAsMiwwLDIsMCwyLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwyLDAsMSwwLDEsMCwxLDAsMSwwLDEsMCwxXTtmdW5jdGlvbiBMbShlKXtsZXQgdD0wLG49Rm0ubGVuZ3RoLTE7Zm9yKDt0PG47KXtsZXQgcj10K24rMT4+MTtGbVtyXTw9ZT90PXI6bj1yLTF9cmV0dXJuIEltW3RdfWZ1bmN0aW9uIFJtKGUpe3JldHVybiBQbVtMbShlKV19ZnVuY3Rpb24gem0oZSl7cmV0dXJuIEJtLmdldChlKT8/bnVsbH1jb25zdCBCbT1uZXcgTWFwKFtbNjUyOTIsNjUwNDBdLFsxMjI4OSw2NTA0MV0sWzEyMjkwLDY1MDQyXV0pO2Z1bmN0aW9uIFZtKGUpe3JldHVybiBIbS5nZXQoZSk/P251bGx9Y29uc3QgSG09bmV3IE1hcChbWzY1Mjg4LDY1MDc3XSxbNjUyODksNjUwNzhdLFs2NTM3MSw2NTA3OV0sWzY1MzczLDY1MDgwXSxbMTIzMDgsNjUwODFdLFsxMjMwOSw2NTA4Ml0sWzEyMzA0LDY1MDgzXSxbMTIzMDUsNjUwODRdLFsxMjI5OCw2NTA4NV0sWzEyMjk5LDY1MDg2XSxbMTIyOTYsNjUwODddLFsxMjI5Nyw2NTA4OF0sWzEyMzAwLDY1MDg5XSxbMTIzMDEsNjUwOTBdLFsxMjMwMiw2NTA5MV0sWzEyMzAzLDY1MDkyXSxbMTIzMTAsNjUwNDddLFsxMjMxMSw2NTA0OF1dKSxVbT1uZXcgU2V0KFs2NTMwN10pO2Z1bmN0aW9uIFdtKGUpe3JldHVybiBVbS5oYXMoZSl9Y29uc3QgR209bmV3IFdlYWtNYXA7ZnVuY3Rpb24gS20oZSl7bGV0IHQ9ZS5jYW52YXMsbj10Py5vd25lckRvY3VtZW50Py5kZWZhdWx0Vmlldz8uSFRNTENhbnZhc0VsZW1lbnQ7cmV0dXJuIHR5cGVvZiBuPT1gZnVuY3Rpb25gJiZ0IGluc3RhbmNlb2Ygbnx8dHlwZW9mIEhUTUxDYW52YXNFbGVtZW50PGB1YCYmdCBpbnN0YW5jZW9mIEhUTUxDYW52YXNFbGVtZW50P3Q6bnVsbH1mdW5jdGlvbiBxbShlLHQpe3JldHVybiBlLnJlcGxhY2UoLyhefFxzKVxkKlwuP1xkKyg/OnB4fHB0fHBjfGlufGNtfG1tfHF8ZW18cmVtfCUpKD86XC9bXlxzXSspPyg/PVxzKS9pLGAkMSR7dH1gKX1mdW5jdGlvbiBKbShlLHQ9ITApe2xldCBuPWUudHJpbSgpO3JldHVyblsuLi5uPT09YGB8fG4udG9Mb3dlckNhc2UoKT09PWBub3JtYWxgP1tdOm4uc3BsaXQoYCxgKS5tYXAoZT0+ZS50cmltKCkpLmZpbHRlcihlPT4hL14oWyInXSl2ZXJ0XDEoPzpccysoPzpvbnxvZmZ8XGQrKSk/JC9pLnRlc3QoZSkpLGAidmVydCIgJHsrISF0fWBdLmpvaW4oYCwgYCl9ZnVuY3Rpb24gWW0oZSl7dHJ5e2xldCB0PWUub3duZXJEb2N1bWVudD8uZGVmYXVsdFZpZXcsbj10Py5nZXRDb21wdXRlZFN0eWxlP3QuZ2V0Q29tcHV0ZWRTdHlsZShlKTp0eXBlb2YgZ2V0Q29tcHV0ZWRTdHlsZT09YGZ1bmN0aW9uYD9nZXRDb21wdXRlZFN0eWxlKGUpOm51bGw7aWYobj8uZm9udEZlYXR1cmVTZXR0aW5ncylyZXR1cm4gbi5mb250RmVhdHVyZVNldHRpbmdzfWNhdGNoe31yZXR1cm4gZS5zdHlsZS5mb250RmVhdHVyZVNldHRpbmdzfWZ1bmN0aW9uIFhtKGUsdCl7aWYoZS5pc0Nvbm5lY3RlZClyZXR1cm4gdCgpO2xldCBuPWUub3duZXJEb2N1bWVudD8/KHR5cGVvZiBkb2N1bWVudD5gdWA/bnVsbDpkb2N1bWVudCkscj1uPy5ib2R5Pz9uPy5kb2N1bWVudEVsZW1lbnQ7aWYoIXIpcmV0dXJuIHQoKTtsZXQgaT1lLnBhcmVudE5vZGUsYT1lLm5leHRTaWJsaW5nLG89ZS5zdHlsZSxzPXtwb3NpdGlvbjpvLnBvc2l0aW9uLGxlZnQ6by5sZWZ0LHRvcDpvLnRvcCxvcGFjaXR5Om8ub3BhY2l0eSxwb2ludGVyRXZlbnRzOm8ucG9pbnRlckV2ZW50c307T2JqZWN0LmFzc2lnbihvLHtwb3NpdGlvbjpgZml4ZWRgLGxlZnQ6YC05OTk5OXB4YCx0b3A6YDBgLG9wYWNpdHk6YDBgLHBvaW50ZXJFdmVudHM6YG5vbmVgfSksci5hcHBlbmRDaGlsZChlKTtsZXQgYz0hMTt0cnl7cmV0dXJuIHQoKX1jYXRjaChlKXt0aHJvdyBjPSEwLGV9ZmluYWxseXtsZXQgdDt0cnl7aWYoaSl7bGV0IHQ9YT8ucGFyZW50Tm9kZT09PWk/YTpudWxsO2kuaW5zZXJ0QmVmb3JlKGUsdCl9ZWxzZSBlLnJlbW92ZSgpfWNhdGNoKG4pe3Q9bjt0cnl7ZS5yZW1vdmUoKX1jYXRjaHt9fWZpbmFsbHl7T2JqZWN0LmFzc2lnbihvLHMpfWlmKHQhPT12b2lkIDAmJiFjKXRocm93IHR9fWZ1bmN0aW9uIFptKGUsdCl7bGV0IG49S20oZSk7cmV0dXJuIG49PT1udWxsP3QoKTpYbShuLHQpfWZ1bmN0aW9uIFFtKGUpe2xldCB0PUdtLmdldChlKTtpZih0KXJldHVybiB0O2xldCBuPWUuY3JlYXRlRWxlbWVudChgY2FudmFzYCk7bi53aWR0aD0yNTYsbi5oZWlnaHQ9MjU2LG4uc2V0QXR0cmlidXRlKGBhcmlhLWhpZGRlbmAsYHRydWVgKSxPYmplY3QuYXNzaWduKG4uc3R5bGUse3Bvc2l0aW9uOmBmaXhlZGAsbGVmdDpgLTk5OTk5cHhgLHRvcDpgMGAsb3BhY2l0eTpgMGAscG9pbnRlckV2ZW50czpgbm9uZWB9KTtsZXQgcj17Y2FudmFzOm4sY2FjaGU6bmV3IE1hcCxlcG9jaDowfSxpPSgpPT57ci5lcG9jaCs9MSxyLmNhY2hlLmNsZWFyKCl9O3JldHVybiBlLmZvbnRzPy5hZGRFdmVudExpc3RlbmVyPy4oYGxvYWRpbmdkb25lYCxpKSxlLmZvbnRzPy5hZGRFdmVudExpc3RlbmVyPy4oYGxvYWRpbmdlcnJvcmAsaSksR20uc2V0KGUscikscn1mdW5jdGlvbiAkbShlLHQpe2xldHt3aWR0aDpuLGhlaWdodDpyfT1lLmNhbnZhcyxpPWUuZ2V0SW1hZ2VEYXRhKDAsMCxuLHIpLmRhdGEsYT1uZXcgVWludDhDbGFtcGVkQXJyYXkobipyKSxvPW4scz1yLGM9LTEsbD0tMSx1PTAsZD0wLGY9MDtmb3IobGV0IGU9MDtlPHI7ZSs9MSlmb3IobGV0IHQ9MDt0PG47dCs9MSl7bGV0IHI9aVsoZSpuK3QpKjQrM107YVtlKm4rdF09cixyIT09MCYmKG89TWF0aC5taW4obyx0KSxzPU1hdGgubWluKHMsZSksYz1NYXRoLm1heChjLHQpLGw9TWF0aC5tYXgobCxlKSx1Kz1yLGQrPXQqcixmKz1lKnIpfWlmKGM8b3x8bDxzfHx1PT09MClyZXR1cm4gbnVsbDtsZXQgcD1lLm1lYXN1cmVUZXh0KHQpLG09ZT0+dHlwZW9mIGU9PWBudW1iZXJgJiZOdW1iZXIuaXNGaW5pdGUoZSk/ZTowO3JldHVybnthbHBoYTphLGdlb21ldHJ5OltvLHMsYyxsLGQvdSxmL3VdLG1ldHJpY3M6W20ocC53aWR0aCksbShwLmFjdHVhbEJvdW5kaW5nQm94TGVmdCksbShwLmFjdHVhbEJvdW5kaW5nQm94UmlnaHQpLG0ocC5hY3R1YWxCb3VuZGluZ0JveEFzY2VudCksbShwLmFjdHVhbEJvdW5kaW5nQm94RGVzY2VudCldfX1mdW5jdGlvbiBlaChlLHQsbil7bGV0IHI9ZS5jYW52YXM7ci5zdHlsZS5mb250RmVhdHVyZVNldHRpbmdzPW4sZS5mb250PWUuZm9udCxlLmNsZWFyUmVjdCgwLDAsci53aWR0aCxyLmhlaWdodCk7bGV0IGk9U3RyaW5nLmZyb21Db2RlUG9pbnQodCk7cmV0dXJuIGUuZmlsbFRleHQoaSxyLndpZHRoLzIsci5oZWlnaHQvMiksJG0oZSxpKX1mdW5jdGlvbiB0aChlLHQpe2xldCBuPTAscj1NYXRoLm1pbihlLmxlbmd0aCx0Lmxlbmd0aCk7Zm9yKGxldCBpPTA7aTxyO2krPTEpbis9TWF0aC5hYnMoZVtpXS10W2ldKTtyZXR1cm4gbn1mdW5jdGlvbiBuaChlLHQsbixyKXtsZXQgaT0oZSx0LG4scik9PntsZXQgaT1NYXRoLm1heCh0aChlLHQpLHRoKG4scikpO3JldHVybiBNYXRoLm1pbih0aChlLG4pLHRoKGUsciksdGgodCxuKSx0aCh0LHIpKT5pfTtyZXR1cm4gaShlLmFscGhhLHQuYWxwaGEsbi5hbHBoYSxyLmFscGhhKXx8aShlLmdlb21ldHJ5LHQuZ2VvbWV0cnksbi5nZW9tZXRyeSxyLmdlb21ldHJ5KXx8aShlLm1ldHJpY3MsdC5tZXRyaWNzLG4ubWV0cmljcyxyLm1ldHJpY3MpfWZ1bmN0aW9uIHJoKGUsdCl7bGV0IG49S20oZSk7aWYobj09PW51bGx8fHR5cGVvZiBkb2N1bWVudD5gdWApcmV0dXJuITE7bGV0IHI9bi5vd25lckRvY3VtZW50Pz9kb2N1bWVudCxpPVFtKHIpLGE9WW0obiksbz1gJHtpLmVwb2NofToke3FtKGUuZm9udCxgPHNpemU+YCl9OiR7YX06JHt0fWAscz1pLmNhY2hlLmdldChvKTtpZihzIT09dm9pZCAwKXJldHVybiBzO2xldCBjPSExLGw9ci5ib2R5Pz9yLmRvY3VtZW50RWxlbWVudDtpZighbClyZXR1cm4hMTtsZXQgdT1pLmNhbnZhcy5pc0Nvbm5lY3RlZDt1fHxsLmFwcGVuZENoaWxkKGkuY2FudmFzKTtsZXQgZD1pLmNhbnZhcy5nZXRDb250ZXh0KGAyZGAse3dpbGxSZWFkRnJlcXVlbnRseTohMH0pO2lmKGQhPT1udWxsKXtsZXQgbj1pLmNhbnZhcy5zdHlsZS5mb250RmVhdHVyZVNldHRpbmdzO3RyeXtkLmZvbnQ9cW0oZS5mb250LGAyMDBweGApLGQuZmlsbFN0eWxlPWAjMDAwYCxkLnRleHRBbGlnbj1gY2VudGVyYCxkLnRleHRCYXNlbGluZT1gbWlkZGxlYDtsZXQgbj1KbShhLCExKSxyPUptKGEsITApLGk9ZWgoZCx0LG4pLG89ZWgoZCx0LG4pLHM9ZWgoZCx0LHIpLGw9ZWgoZCx0LHIpO2M9aSE9PW51bGwmJm8hPT1udWxsJiZzIT09bnVsbCYmbCE9PW51bGwmJm5oKGksbyxzLGwpfWNhdGNoe2M9ITF9ZmluYWxseXtpLmNhbnZhcy5zdHlsZS5mb250RmVhdHVyZVNldHRpbmdzPW4sZC5mb250PWQuZm9udCxkLmNsZWFyUmVjdCgwLDAsaS5jYW52YXMud2lkdGgsaS5jYW52YXMuaGVpZ2h0KSx1fHxpLmNhbnZhcy5yZW1vdmUoKX19cmV0dXJuIGkuY2FjaGUuc2V0KG8sYyksY31mdW5jdGlvbiBpaChlLHQpe2xldCBuPWUuY2FudmFzO3JldHVybiBuPy5zdHlsZT9abShlLCgpPT57bGV0IHI9bi5zdHlsZSxpPXIuZm9udEZlYXR1cmVTZXR0aW5ncztyLmZvbnRGZWF0dXJlU2V0dGluZ3M9Sm0oWW0obikpLGUuZm9udD1lLmZvbnQ7dHJ5e3JldHVybiB0KCl9ZmluYWxseXtyLmZvbnRGZWF0dXJlU2V0dGluZ3M9aSxlLmZvbnQ9ZS5mb250fX0pOnQoKX1mdW5jdGlvbiBhaChlLHQpe3JldHVybiBpaChlLCgpPT57bGV0IG49ZS50ZXh0QWxpZ24scj1lLnRleHRCYXNlbGluZTtlLnRleHRBbGlnbj1gY2VudGVyYCxlLnRleHRCYXNlbGluZT1gbWlkZGxlYDt0cnl7bGV0IG49ZS5tZWFzdXJlVGV4dCh0KSxyPU51bWJlci5pc0Zpbml0ZShuLndpZHRoKT9NYXRoLm1heCgwLG4ud2lkdGgpOjAsaT10eXBlb2Ygbi5hY3R1YWxCb3VuZGluZ0JveEFzY2VudD09YG51bWJlcmAmJk51bWJlci5pc0Zpbml0ZShuLmFjdHVhbEJvdW5kaW5nQm94QXNjZW50KSYmdHlwZW9mIG4uYWN0dWFsQm91bmRpbmdCb3hEZXNjZW50PT1gbnVtYmVyYCYmTnVtYmVyLmlzRmluaXRlKG4uYWN0dWFsQm91bmRpbmdCb3hEZXNjZW50KTtyZXR1cm57YWR2YW5jZVB4OnIsaW5rQmVmb3JlUHg6aT9uLmFjdHVhbEJvdW5kaW5nQm94QXNjZW50OjAsaW5rQWZ0ZXJQeDppP24uYWN0dWFsQm91bmRpbmdCb3hEZXNjZW50OjAsY2VsbEFkdmFuY2VQeDpyLG9yaWdpbkluQ2VsbFB4OnIvMn19ZmluYWxseXtlLnRleHRBbGlnbj1uLGUudGV4dEJhc2VsaW5lPXJ9fSl9Y29uc3Qgb2g9ZT0+ZT09PTMyfHxlPT09MTIyODg7ZnVuY3Rpb24gc2goZSx0LG49e30pe2lmKE1hdGguYWJzKHQpPD0uNSlyZXR1cm4gbnVsbDtsZXQgcj1uLmZpcnN0Q29udGVudFNpPz8wLGk9bi5sYXN0RHJhd25TaT8/ZS5sZW5ndGgtMSxhPW4ubWluUGVyR2FwPz8tMS8wLG89bi5pc0dhcENoYXI/P29tLHM9bi5pc1doaXRlc3BhY2U/P29oLGM9bi5zZWFDbHVzdGVyR2Fwcz8/ITEsbD1bXTtmb3IobGV0IHQ9cjt0PGUubGVuZ3RoO3QrKyl7bGV0IG49ZVt0XTtpZihuPT09dm9pZCAwKWNvbnRpbnVlO2lmKG4udGV4dD09PXZvaWQgMCl7bC5wdXNoKHtzaTp0LG9mZjowLHdzOiExfSk7Y29udGludWV9bGV0IHI9MDtmb3IobGV0IGUgb2Ygbi50ZXh0KXtsZXQgbj1lLmNvZGVQb2ludEF0KDApO2wucHVzaCh7c2k6dCxvZmY6cixjcDpuLHdzOnMobil9KSxyKyt9fWxldCB1PS0xLGQ9LTE7Zm9yKGxldCBlPTA7ZTxsLmxlbmd0aDtlKyspbFtlXS53c3x8KHU9PT0tMSYmKHU9ZSksZD1lKTtpZih1PT09LTF8fHU9PT1kKXJldHVybiBudWxsO2xldCBmPUFycmF5KGwubGVuZ3RoKS5maWxsKCExKSxwPTA7Zm9yKGxldCBlPXU7ZTxkO2UrKyl7bGV0IHQ9bFtlXTtpZih0LnNpPT09aSljb250aW51ZTtpZih0LndzKXtmW2VdPSEwLHArKztjb250aW51ZX1sZXQgbj1sW2UrMV07aWYobi53cyljb250aW51ZTtsZXQgcj10LmNwLGE9bi5jcDsociE9PXZvaWQgMCYmbyhyKXx8YSE9PXZvaWQgMCYmbyhhKXx8YyYmciE9PXZvaWQgMCYmYSE9PXZvaWQgMCYmZ20ocikmJmdtKGEpJiYhX20oYSkpJiYoZltlXT0hMCxwKyspfWlmKHA9PT0wKXJldHVybiBudWxsO2xldCBtPXQvcDt0PDAmJm08YSYmKG09YSk7bGV0IGg9bmV3IE1hcDtmb3IobGV0IGUgb2YgbCllLmNwIT09dm9pZCAwJiZoLnNldChlLnNpLChoLmdldChlLnNpKT8/MCkrMSk7bGV0IGc9bmV3IE1hcDtmb3IobGV0IGU9MDtlPGwubGVuZ3RoO2UrKyl7aWYoIWZbZV0pY29udGludWU7bGV0IHQ9bFtlXSxuPWcuZ2V0KHQuc2kpO258fChuPXtzcGxpdEJlZm9yZTpbXSx0cmFpbGluZ0dhcDohMSxpbnRlcm5hbFN0cmV0Y2g6MH0sZy5zZXQodC5zaSxuKSk7bGV0IHI9aC5nZXQodC5zaSk/PzA7dC5jcD09PXZvaWQgMHx8dC5vZmY9PT1yLTE/bi50cmFpbGluZ0dhcD0hMDoobi5zcGxpdEJlZm9yZS5wdXNoKHQub2ZmKzEpLG4uaW50ZXJuYWxTdHJldGNoKz1tKX1yZXR1cm57cGVyR2FwOm0scGVyU2VnOmd9fWNvbnN0IGNoPVtbMWUzLGBNYF0sWzkwMCxgQ01gXSxbNTAwLGBEYF0sWzQwMCxgQ0RgXSxbMTAwLGBDYF0sWzkwLGBYQ2BdLFs1MCxgTGBdLFs0MCxgWExgXSxbMTAsYFhgXSxbOSxgSVhgXSxbNSxgVmBdLFs0LGBJVmBdLFsxLGBJYF1dO2Z1bmN0aW9uIGxoKGUpe2xldCB0PWBgLG49ZTtmb3IobGV0W2Uscl1vZiBjaClmb3IoO24+PWU7KXQrPXIsbi09ZTtyZXR1cm4gdH1mdW5jdGlvbiB1aChlLHQpe2xldCBuPXQubGVuZ3RoLHI9TWF0aC5mbG9vcigoZS0xKS9uKSsxO3JldHVybiB0WyhlLTEpJW5dLnJlcGVhdChyKX1jb25zdCBkaD1BcnJheS5mcm9tKHtsZW5ndGg6MjZ9LChlLHQpPT5TdHJpbmcuZnJvbUNoYXJDb2RlKDY1K3QpKSxmaD1g2KMu2Kgu2Kou2Ksu2Kwu2K0u2K4u2K8u2LAu2LEu2LIu2LMu2LQu2LUu2LYu2Lcu2Lgu2Lku2Lou2YEu2YIu2YMu2YQu2YUu2YYu2Ycu2Ygu2YpgLnNwbGl0KGAuYCkscGg9YNijLtioLtisLtivLtmHLtmILtiyLtitLti3LtmKLtmDLtmELtmFLtmGLtizLti5LtmBLti1LtmCLtixLti0LtiqLtirLtiuLtiwLti2Lti6Lti4YC5zcGxpdChgLmApLG1oPVtg15BgLGDXkWAsYNeSYCxg15NgLGDXlGAsYNeVYCxg15ZgLGDXl2AsYNeYYCxg15lgLGDXm2AsYNecYCxg155gLGDXoGAsYNehYCxg16JgLGDXpGAsYNemYCxg16dgLGDXqGAsYNepYCxg16pgXSxoaD1bLi4uU2goMTA3MiwxMDgwKSwuLi5TaCgxMDgyLDEwODcpLC4uLlNoKDEwODgsMTA5NyksYNGLYCxg0Y1gLGDRjmAsYNGPYF0sZ2g9Wy4uLlNoKDEwNDAsMTA0OCksLi4uU2goMTA1MCwxMDU1KSwuLi5TaCgxMDU2LDEwNjUpLGDQq2AsYNCtYCxg0K5gLGDQr2BdLF9oPVtg4LiBYCxg4LiCYCxg4LiEYCwuLi5TaCgzNTkxLDM2MTkpLGDguKVgLC4uLlNoKDM2MjMsMzYzMCldLHZoPVtg44SxYCxg44S0YCxg44S3YCxg44S5YCxg44WBYCxg44WCYCxg44WFYCxg44WHYCxg44WIYCxg44WKYCxg44WLYCxg44WMYCxg44WNYCxg44WOYF0seWg9W2DqsIBgLGDrgphgLGDri6RgLGDrnbxgLGDrp4hgLGDrsJRgLGDsgqxgLGDslYRgLGDsnpBgLGDssKhgLGDsubRgLGDtg4BgLGDtjIxgLGDtlZhgXSxiaD1TaCgyMzI1LDIzNjEpLHhoPVsuLi5TaCgyMzA5LDIzMjQpLGDgpIXgpIJgLGDgpIXgpINgXTtmdW5jdGlvbiBTaChlLHQpe2xldCBuPVtdO2ZvcihsZXQgcj1lO3I8PXQ7cisrKW4ucHVzaChTdHJpbmcuZnJvbUNvZGVQb2ludChyKSk7cmV0dXJuIG59Y29uc3QgQ2g9YOOCoi7jgqQu44KmLuOCqC7jgqou44KrLuOCrS7jgq8u44KxLuOCsy7jgrUu44K3LuOCuS7jgrsu44K9LuOCvy7jg4Eu44OELuODhi7jg4gu44OKLuODiy7jg4wu44ONLuODji7jg48u44OSLuODlS7jg5gu44ObLuODni7jg58u44OgLuODoS7jg6Iu44OkLuODpi7jg6gu44OpLuODqi7jg6su44OsLuODrS7jg68u44OwLuODsS7jg7Iu44OzYC5zcGxpdChgLmApLHdoPVsuLi5TaCg2NTM5Myw2NTQzNiksYO+9pmAsYO++nWBdO2Z1bmN0aW9uIFRoKGUpe3JldHVybiBlPD0yMD9TdHJpbmcuZnJvbUNvZGVQb2ludCg5MzEyKyhlLTEpKTpTdHJpbmcoZSl9ZnVuY3Rpb24gRWgoZSx0KXtyZXR1cm4gU3RyaW5nKGUpLnNwbGl0KGBgKS5tYXAoZT0+dFtlLmNoYXJDb2RlQXQoMCktNDhdKS5qb2luKGBgKX1jb25zdCBEaD1TaCg2NTI5Niw2NTMwNSksT2g9U2goMzY2NCwzNjczKSxraD1TaCgyNDA2LDI0MTUpLEFoPVtg44CHYCxg5LiAYCxg5LqMYCxg5LiJYCxg5ZubYCxg5LqUYCxg5YWtYCxg5LiDYCxg5YWrYCxg5LmdYF0samg9W2DsmIFgLGDsnbxgLGDsnbRgLGDsgrxgLGDsgqxgLGDsmKRgLGDsnKFgLGDsuaBgLGDtjJRgLGDqtaxgXSxNaD1bYOmbtmAsYOS4gGAsYOS6jGAsYOS4iWAsYOWbm2AsYOS6lGAsYOWFrWAsYOS4g2AsYOWFq2AsYOS5nWBdLE5oPVtg4peLYCxg5LiAYCxg5LqMYCxg5LiJYCxg5ZubYCxg5LqUYCxg5YWtYCxg5LiDYCxg5YWrYCxg5LmdYF07ZnVuY3Rpb24gUGgoZSx0KXtpZihlPDEwKXJldHVybiB0W2VdO2lmKGU8MTAwKXtsZXQgbj1NYXRoLmZsb29yKGUvMTApLHI9ZSUxMCxpPW49PT0xP2DljYFgOnRbbl0rYOWNgWA7cmV0dXJuIHI9PT0wP2k6aSt0W3JdfXJldHVybiBFaChlLHQpfWZ1bmN0aW9uIEZoKGUsdCl7c3dpdGNoKHQpe2Nhc2VgdXBwZXJSb21hbmA6cmV0dXJuIGU+PTE/bGgoZSk6U3RyaW5nKGUpO2Nhc2VgbG93ZXJSb21hbmA6cmV0dXJuIGU+PTE/bGgoZSkudG9Mb3dlckNhc2UoKTpTdHJpbmcoZSk7Y2FzZWB1cHBlckxldHRlcmA6cmV0dXJuIGU+PTE/dWgoZSxkaCk6U3RyaW5nKGUpO2Nhc2VgbG93ZXJMZXR0ZXJgOnJldHVybiBlPj0xP3VoKGUsZGgpLnRvTG93ZXJDYXNlKCk6U3RyaW5nKGUpO2Nhc2VgYXJhYmljQWxwaGFgOnJldHVybiBlPj0xP3VoKGUsZmgpOlN0cmluZyhlKTtjYXNlYGFyYWJpY0FiamFkYDpyZXR1cm4gZT49MT91aChlLHBoKTpTdHJpbmcoZSk7Y2FzZWBydXNzaWFuTG93ZXJgOnJldHVybiBlPj0xP3VoKGUsaGgpOlN0cmluZyhlKTtjYXNlYHJ1c3NpYW5VcHBlcmA6cmV0dXJuIGU+PTE/dWgoZSxnaCk6U3RyaW5nKGUpO2Nhc2VgdGhhaUxldHRlcnNgOnJldHVybiBlPj0xP3VoKGUsX2gpOlN0cmluZyhlKTtjYXNlYGNob3N1bmdgOnJldHVybiBlPj0xP3VoKGUsdmgpOlN0cmluZyhlKTtjYXNlYGdhbmFkYWA6cmV0dXJuIGU+PTE/dWgoZSx5aCk6U3RyaW5nKGUpO2Nhc2VgaGluZGlWb3dlbHNgOnJldHVybiBlPj0xP3VoKGUsYmgpOlN0cmluZyhlKTtjYXNlYGhpbmRpQ29uc29uYW50c2A6cmV0dXJuIGU+PTE/dWgoZSx4aCk6U3RyaW5nKGUpO2Nhc2VgYWl1ZW9GdWxsV2lkdGhgOnJldHVybiBlPj0xP3VoKGUsQ2gpOlN0cmluZyhlKTtjYXNlYGFpdWVvYDpyZXR1cm4gZT49MT91aChlLHdoKTpTdHJpbmcoZSk7Y2FzZWBkZWNpbWFsRW5jbG9zZWRDaXJjbGVgOnJldHVybiBlPj0xP1RoKGUpOlN0cmluZyhlKTtjYXNlYGhlYnJldzFgOnJldHVybiBlPj0xP3poKGUpOlN0cmluZyhlKTtjYXNlYGhlYnJldzJgOnJldHVybiBlPj0xP0JoKGUpOlN0cmluZyhlKTtjYXNlYGhleGA6cmV0dXJuIGU+PTE/ZS50b1N0cmluZygxNikudG9VcHBlckNhc2UoKTpTdHJpbmcoZSk7Y2FzZWBudW1iZXJJbkRhc2hgOnJldHVybiBlPj0xP2AtICR7ZX0gLWA6U3RyaW5nKGUpO2Nhc2VgZGVjaW1hbFplcm9gOnJldHVybiBlPj0xJiZlPD05P2AwJHtlfWA6U3RyaW5nKGUpO2Nhc2VgZGVjaW1hbEZ1bGxXaWR0aGA6cmV0dXJuIGU+PTE/RWgoZSxEaCk6U3RyaW5nKGUpO2Nhc2VgZGVjaW1hbEhhbGZXaWR0aGA6cmV0dXJuIFN0cmluZyhlKTtjYXNlYHRoYWlOdW1iZXJzYDpyZXR1cm4gZT49MT9FaChlLE9oKTpTdHJpbmcoZSk7Y2FzZWBoaW5kaU51bWJlcnNgOnJldHVybiBlPj0xP0VoKGUsa2gpOlN0cmluZyhlKTtjYXNlYGlkZW9ncmFwaERpZ2l0YWxgOmNhc2VgamFwYW5lc2VEaWdpdGFsVGVuVGhvdXNhbmRgOnJldHVybiBlPj0xP0VoKGUsQWgpOlN0cmluZyhlKTtjYXNlYGtvcmVhbkRpZ2l0YWxgOnJldHVybiBlPj0xP0VoKGUsamgpOlN0cmluZyhlKTtjYXNlYGtvcmVhbkRpZ2l0YWwyYDpyZXR1cm4gZT49MT9FaChlLE1oKTpTdHJpbmcoZSk7Y2FzZWB0YWl3YW5lc2VEaWdpdGFsYDpyZXR1cm4gZT49MT9FaChlLE5oKTpTdHJpbmcoZSk7Y2FzZWBjaGluZXNlQ291bnRpbmdgOnJldHVybiBlPj0xP1BoKGUsQWgpOlN0cmluZyhlKTtjYXNlYHRhaXdhbmVzZUNvdW50aW5nYDpyZXR1cm4gZT49MT9QaChlLE5oKTpTdHJpbmcoZSk7Y2FzZWBjaGluZXNlQ291bnRpbmdUaG91c2FuZGA6cmV0dXJuIGU+PTE/WWgoZSxIaCk6U3RyaW5nKGUpO2Nhc2VgdGFpd2FuZXNlQ291bnRpbmdUaG91c2FuZGA6cmV0dXJuIGU+PTE/WWgoZSxVaCk6U3RyaW5nKGUpO2Nhc2VgY2hpbmVzZUxlZ2FsU2ltcGxpZmllZGA6cmV0dXJuIGU+PTE/WWgoZSxHaCk6U3RyaW5nKGUpO2Nhc2VgaWRlb2dyYXBoTGVnYWxUcmFkaXRpb25hbGA6cmV0dXJuIGU+PTE/WWgoZSxxaCk6U3RyaW5nKGUpO2Nhc2VgamFwYW5lc2VDb3VudGluZ2A6cmV0dXJuIGU+PTE/WWgoZSxWaCk6U3RyaW5nKGUpO2Nhc2VgamFwYW5lc2VMZWdhbGA6cmV0dXJuIGU+PTE/WWgoZSxLaCk6U3RyaW5nKGUpO2Nhc2Vga29yZWFuQ291bnRpbmdgOnJldHVybiBlPj0xP1loKGUsV2gpOlN0cmluZyhlKTtjYXNlYGtvcmVhbkxlZ2FsYDpyZXR1cm4gZT49MT9RaChlKTpTdHJpbmcoZSk7ZGVmYXVsdDpyZXR1cm4gU3RyaW5nKGUpfX1jb25zdCBJaD1bYGAsYNeQYCxg15FgLGDXkmAsYNeTYCxg15RgLGDXlWAsYNeWYCxg15dgLGDXmGBdLExoPVtgYCxg15lgLGDXm2AsYNecYCxg155gLGDXoGAsYNehYCxg16JgLGDXpGAsYNemYF0sUmg9W2BgLGDXp2AsYNeoYCxg16lgLGDXqmAsYNeaYCxg151gLGDXn2AsYNejYCxg16VgXTtmdW5jdGlvbiB6aChlKXtsZXQgdD1gYCxuPWUscj1NYXRoLmZsb29yKG4vMWUzKTtuJT0xZTM7bGV0IGk9TWF0aC5mbG9vcihuLzEwMCk7aWYobiU9MTAwLHI+MCYmKHQrPUloW3IlMTBdKSx0Kz1SaFtpXSxuPT09MTUpcmV0dXJuIHQrYNeY15VgO2lmKG49PT0xNilyZXR1cm4gdCtg15jXlmA7bGV0IGE9TWF0aC5mbG9vcihuLzEwKSxvPW4lMTA7cmV0dXJuIHQrPUxoW2FdLHQrPUloW29dLHR9ZnVuY3Rpb24gQmgoZSl7bGV0IHQ9bWgubGVuZ3RoLG49TWF0aC5mbG9vcigoZS0xKS90KTtyZXR1cm4gbWhbZS10Km4tMV0rYNeqYC5yZXBlYXQobil9Y29uc3QgVmg9e2RpZ2l0czpNaCx0ZW46YOWNgWAsaHVuZHJlZDpg55m+YCx0aG91c2FuZDpg5Y2DYCxteXJpYWQ6YOS4h2AsZWxpZGVPbmU6ITAsaW5zZXJ0WmVybzohMX0sSGg9ey4uLlZoLGVsaWRlT25lOiExLGluc2VydFplcm86ITB9LFVoPXsuLi5IaH0sV2g9e2RpZ2l0czpbYOyYgWAsYOydvGAsYOydtGAsYOyCvGAsYOyCrGAsYOyYpGAsYOycoWAsYOy5oGAsYO2MlGAsYOq1rGBdLHRlbjpg7IutYCxodW5kcmVkOmDrsLFgLHRob3VzYW5kOmDsspxgLG15cmlhZDpg66eMYCxlbGlkZU9uZTohMCxpbnNlcnRaZXJvOiExfSxHaD17ZGlnaXRzOltg6Zu2YCxg5aO5YCxg6LSwYCxg5Y+BYCxg6IKGYCxg5LyNYCxg6ZmGYCxg5p+SYCxg5o2MYCxg546WYF0sdGVuOmDmi75gLGh1bmRyZWQ6YOS9sGAsdGhvdXNhbmQ6YOS7n2AsbXlyaWFkOmDkuIdgLGVsaWRlT25lOiExLGluc2VydFplcm86ITB9LEtoPXtkaWdpdHM6W2Dpm7ZgLGDlo7FgLGDlvJBgLGDlj4JgLGDlm5tgLGDkvI1gLGDlha1gLGDkuINgLGDlhatgLGDkuZ1gXSx0ZW46YOaLvmAsaHVuZHJlZDpg55m+YCx0aG91c2FuZDpg6ZihYCxteXJpYWQ6YOiQrGAsZWxpZGVPbmU6ITEsaW5zZXJ0WmVybzohMX0scWg9e2RpZ2l0czpbYOmbtmAsYOWjuWAsYOiys2AsYOWPg2AsYOiChmAsYOS8jWAsYOmZuGAsYOafkmAsYOaNjGAsYOeOlmBdLHRlbjpg5ou+YCxodW5kcmVkOmDkvbBgLHRob3VzYW5kOmDku59gLG15cmlhZDpg6JCsYCxlbGlkZU9uZTohMSxpbnNlcnRaZXJvOiExfTtmdW5jdGlvbiBKaChlLHQsbil7bGV0IHI9TWF0aC5mbG9vcihlLzFlMyklMTAsaT1NYXRoLmZsb29yKGUvMTAwKSUxMCxhPU1hdGguZmxvb3IoZS8xMCklMTAsbz1lJTEwLHM9W3tkaWdpdDpyLHVuaXQ6dC50aG91c2FuZH0se2RpZ2l0OmksdW5pdDp0Lmh1bmRyZWR9LHtkaWdpdDphLHVuaXQ6dC50ZW59LHtkaWdpdDpvLHVuaXQ6YGB9XSxjPWBgLGw9ITEsdT0hMTtmb3IobGV0e2RpZ2l0OmUsdW5pdDpyfW9mIHMpe2lmKGU9PT0wKXtsJiYodT0hMCk7Y29udGludWV9dSYmPSh0Lmluc2VydFplcm8mJihjKz10LmRpZ2l0c1swXSksITEpLG4mJmU9PT0xJiZyP2MrPXI6Yys9dC5kaWdpdHNbZV0rcixsPSEwfXJldHVybiBjfWZ1bmN0aW9uIFloKGUsdCl7aWYoZT49MWU4KXtsZXQgbj1NYXRoLmZsb29yKGUvMWU4KSxyPWUlMWU4LGk9WWgobix0KStg5YSEYDtyZXR1cm4gcj09PTA/aTppKyh0Lmluc2VydFplcm8mJnI8MWU3P3QuZGlnaXRzWzBdOmBgKStZaChyLHQpfWxldCBuPU1hdGguZmxvb3IoZS8xZTQpLHI9ZSUxZTQsaT1gYDtyZXR1cm4gbj4wJiYoaSs9Smgobix0LHQuZWxpZGVPbmUpK3QubXlyaWFkKSxyPjAmJih0Lmluc2VydFplcm8mJm4+MCYmcjwxZTMmJihpKz10LmRpZ2l0c1swXSksaSs9Smgocix0LHQuZWxpZGVPbmUpKSxpfWNvbnN0IFhoPVtgYCxg7ZWY64KYYCxg65GYYCxg7IWLYCxg64S3YCxg64uk7ISvYCxg7Jes7ISvYCxg7J286rOxYCxg7Jes642fYCxg7JWE7ZmJYF0sWmg9W2BgLGDsl7RgLGDsiqTrrLxgLGDshJzrpbhgLGDrp4jtnZRgLGDsibBgLGDsmIjsiJxgLGDsnbztnZRgLGDsl6zrk6BgLGDslYTtnZRgXTtmdW5jdGlvbiBRaChlKXtpZihlPj0xMDApcmV0dXJuIFN0cmluZyhlKTtsZXQgdD1NYXRoLmZsb29yKGUvMTApLG49ZSUxMDtyZXR1cm4gWmhbdF0rWGhbbl19Y29uc3QgJGg9e0FyYWJpYzpgZGVjaW1hbGAsQXJhYmljRGFzaDpgbnVtYmVySW5EYXNoYCxIZXg6YGhleGAsUm9tYW46YHVwcGVyUm9tYW5gLHJvbWFuOmBsb3dlclJvbWFuYCxBTFBIQUJFVElDOmB1cHBlckxldHRlcmAsYWxwaGFiZXRpYzpgbG93ZXJMZXR0ZXJgLEFSQUJJQ0FCSkFEOmBhcmFiaWNBYmphZGAsQVJBQklDQUxQSEE6YGFyYWJpY0FscGhhYCxIRUJSRVcxOmBoZWJyZXcxYCxIRUJSRVcyOmBoZWJyZXcyYCxISU5ESUFSQUJJQzpgaGluZGlOdW1iZXJzYCxISU5ESUxFVFRFUjE6YGhpbmRpVm93ZWxzYCxISU5ESUxFVFRFUjI6YGhpbmRpQ29uc29uYW50c2AsVEhBSUFSQUJJQzpgdGhhaU51bWJlcnNgLFRIQUlMRVRURVI6YHRoYWlMZXR0ZXJzYCxDSE9TVU5HOmBjaG9zdW5nYCxHQU5BREE6YGdhbmFkYWAsREJDSEFSOmBkZWNpbWFsRnVsbFdpZHRoYCxTQkNIQVI6YGRlY2ltYWxIYWxmV2lkdGhgfTtmdW5jdGlvbiBlZyhlKXtsZXQgdD0vXFxcKlxzKyhcUyspL2csbjtmb3IoOyhuPXQuZXhlYyhlKSkhPT1udWxsOyl7bGV0IGU9JGhbblsxXV07aWYoZSlyZXR1cm4gZX1yZXR1cm4gbnVsbH1jb25zdCB0Zz1bYEphbnVhcnlgLGBGZWJydWFyeWAsYE1hcmNoYCxgQXByaWxgLGBNYXlgLGBKdW5lYCxgSnVseWAsYEF1Z3VzdGAsYFNlcHRlbWJlcmAsYE9jdG9iZXJgLGBOb3ZlbWJlcmAsYERlY2VtYmVyYF0sbmc9W2BKYW5gLGBGZWJgLGBNYXJgLGBBcHJgLGBNYXlgLGBKdW5gLGBKdWxgLGBBdWdgLGBTZXBgLGBPY3RgLGBOb3ZgLGBEZWNgXSxyZz1bYFN1bmRheWAsYE1vbmRheWAsYFR1ZXNkYXlgLGBXZWRuZXNkYXlgLGBUaHVyc2RheWAsYEZyaWRheWAsYFNhdHVyZGF5YF0saWc9W2BTdW5gLGBNb25gLGBUdWVgLGBXZWRgLGBUaHVgLGBGcmlgLGBTYXRgXSxhZz1lPT5lPDEwP2AwJHtlfWA6YCR7ZX1gO2Z1bmN0aW9uIG9nKGUpe2xldCB0PS9cXEBccyoiKFteIl0qKSIvLmV4ZWMoZSk7aWYodClyZXR1cm4gdFsxXTtsZXQgbj0vXFxAXHMqKFxTKykvLmV4ZWMoZSk7cmV0dXJuIG4/blsxXTpudWxsfWZ1bmN0aW9uIHNnKGUsdCl7bGV0IG49dC5nZXRGdWxsWWVhcigpLHI9dC5nZXRNb250aCgpLGk9dC5nZXREYXRlKCksYT10LmdldERheSgpLG89dC5nZXRIb3VycygpLHM9byUxMj09MD8xMjpvJTEyLGM9dC5nZXRNaW51dGVzKCksbD10LmdldFNlY29uZHMoKSx1PW8+PTEyLGQ9YGAsZj0wLHA9ZS5sZW5ndGg7Zm9yKDtmPHA7KXtsZXQgdD1lW2ZdO2lmKHQ9PT1gJ2Ape2YrKztsZXQgdD1gYDtmb3IoO2Y8cDspe2lmKGVbZl09PT1gJ2Ape2lmKGVbZisxXT09PWAnYCl7dCs9YCdgLGYrPTI7Y29udGludWV9ZisrO2JyZWFrfXQrPWVbZisrXX1kKz10O2NvbnRpbnVlfWlmKC9bQS1aYS16XS8udGVzdCh0KSl7bGV0IHU9Zjtmb3IoO3U8cCYmZVt1XT09PXQ7KXUrKztsZXQgbT1lLnNsaWNlKGYsdSkubGVuZ3RoLGg9dC50b0xvd2VyQ2FzZSgpLGc9bnVsbDtpZih0PT09YHlgfHx0PT09YFlgP2c9bT49ND9TdHJpbmcobikucGFkU3RhcnQoNCxgMGApOmFnKG4lMTAwKTp0PT09YE1gP2c9bT49ND90Z1tyXTptPT09Mz9uZ1tyXTptPT09Mj9hZyhyKzEpOlN0cmluZyhyKzEpOmg9PT1gZGA/Zz1tPj00P3JnW2FdOm09PT0zP2lnW2FdOm09PT0yP2FnKGkpOlN0cmluZyhpKTp0PT09YEhgP2c9bT49Mj9hZyhvKTpTdHJpbmcobyk6dD09PWBoYD9nPW0+PTI/YWcocyk6U3RyaW5nKHMpOnQ9PT1gbWA/Zz1tPj0yP2FnKGMpOlN0cmluZyhjKTp0PT09YHNgP2c9bT49Mj9hZyhsKTpTdHJpbmcobCk6KGg9PT1gYWB8fGg9PT1gcGApJiYoZz1udWxsKSxnIT09bnVsbCl7ZCs9ZyxmPXU7Y29udGludWV9aWYoIShoPT09YGFgfHxoPT09YHBgKSlyZXR1cm4gbnVsbH1sZXQgbT0vXihbQWFQcF0pKFtNbV0pP1wvKFtBYVBwXSkoW01tXSk/Ly5leGVjKGUuc2xpY2UoZikpO2lmKG0pe2xldCBlPW1bMl0hPT12b2lkIDA7ZCs9ZT91P2BQTWA6YEFNYDp1P2BQYDpgQWAsZis9bVswXS5sZW5ndGg7Y29udGludWV9ZCs9dCxmKyt9cmV0dXJuIGR9Y29uc3QgY2c9W1tlPT5lLmluY2x1ZGVzKGBtZWlyeW8gdWlgKXx8ZS5pbmNsdWRlcyhgbWVpcnlvdWlgKXx8ZS5pbmNsdWRlcyhg44Oh44Kk44Oq44KqYCkmJmUuaW5jbHVkZXMoYHVpYCkse2FzYzoyMTcxKjEuMy8yMDQ4LGRlc2M6NDMwKjEuMy8yMDQ4LGVhT25seTohMH1dLFtlPT5lLmluY2x1ZGVzKGBtZWlyeW9gKXx8ZS5pbmNsdWRlcyhg44Oh44Kk44Oq44KqYCkse2FzYzoyMjEwLzIwNDgsZGVzYzoxMDU5LzIwNDh9XSxbZT0+IWUuaW5jbHVkZXMoYHVpYCkmJihlLmluY2x1ZGVzKGB5dSBtaW5jaG9gKXx8ZS5pbmNsdWRlcyhgeXVtaW5jaG9gKXx8ZS5pbmNsdWRlcyhg5ri45piO5pydYCl8fGUuaW5jbHVkZXMoYHl1IGdvdGhpY2ApfHxlLmluY2x1ZGVzKGB5dWdvdGhpY2ApfHxlLmluY2x1ZGVzKGDmuLjjgrTjgrfjg4Pjgq9gKSkse2FzYzoxODAyKjEuMy8yMDQ4LGRlc2M6NDU1KjEuMy8yMDQ4LGVhT25seTohMH1dLFtlPT5lLmluY2x1ZGVzKGBzYWtrYWwgbWFqYWxsYWApfHxlLmluY2x1ZGVzKGBtYWphbGxhYCkse2FzYzoxODEwLzIwNDgsZGVzYzoxMDUwLzIwNDh9XSxbZT0+ZT09PWB0aW1lcyBuZXcgcm9tYW5gLHthc2M6MTgyNS8yMDQ4LGRlc2M6NTMwLzIwNDh9XSxbZT0+ZT09PWBhcmlhbGAse2FzYzoxODU0LzIwNDgsZGVzYzo1MDEvMjA0OH1dXTtmdW5jdGlvbiBsZyhlLHQpe2lmKCFlKXJldHVybiBudWxsO2xldCBuPWUudG9Mb3dlckNhc2UoKTtmb3IobGV0W2Uscl1vZiBjZylpZihlKG4pJiYodHx8IXIuZWFPbmx5KSlyZXR1cm4gcjtyZXR1cm4gbnVsbH1mdW5jdGlvbiB1ZyhlLHQ9ITEpe2xldCBuPWxnKGUsdCk7cmV0dXJuIG49PT1udWxsP251bGw6bi5hc2Mrbi5kZXNjfWZ1bmN0aW9uIGRnKGUsdCxuPSExKXtsZXQgcj11ZyhlLG4pO3JldHVybiByPT09bnVsbD8wOnIqdH1mdW5jdGlvbiBmZyhlLHQsbixyLGk9ITEpe2xldCBhPWxnKGUsaSk7aWYoYT09PW51bGwpcmV0dXJue2FzY2VudDpuLGRlc2NlbnQ6cn07bGV0IG89KGEuYXNjK2EuZGVzYykqdDtyZXR1cm4gbityPD1vP3thc2NlbnQ6bixkZXNjZW50OnJ9Onthc2NlbnQ6YS5hc2MqdCxkZXNjZW50OmEuZGVzYyp0fX1mdW5jdGlvbiBwZyhlKXtyZXR1cm4gZS50cmltKCkudG9Mb3dlckNhc2UoKX1mdW5jdGlvbiBtZyhlKXtyZXR1cm5gbG9jYWwoIiR7ZS5yZXBsYWNlQWxsKGBcXGAsYFxcXFxgKS5yZXBsYWNlQWxsKGAiYCxgXFwiYCl9IilgfWZ1bmN0aW9uIGhnKGUpe3JldHVybmBfX29veG1sX2xvY2FsXyR7Wy4uLmVdLm1hcChlPT4oZS5jb2RlUG9pbnRBdCgwKT8/MCkudG9TdHJpbmcoMTYpLnBhZFN0YXJ0KDYsYDBgKSkuam9pbihgYCl9YH1mdW5jdGlvbiBnZygpe3JldHVybiB0eXBlb2YgT2Zmc2NyZWVuQ2FudmFzPGB1YD9uZXcgT2Zmc2NyZWVuQ2FudmFzKDEsMSkuZ2V0Q29udGV4dChgMmRgKTp0eXBlb2YgZG9jdW1lbnQ8YHVgJiZkb2N1bWVudD8uY3JlYXRlRWxlbWVudD9kb2N1bWVudC5jcmVhdGVFbGVtZW50KGBjYW52YXNgKS5nZXRDb250ZXh0KGAyZGApOm51bGx9YXN5bmMgZnVuY3Rpb24gX2coZSl7bGV0IHQ9UCgpO2lmKCF0fHx0eXBlb2YgRm9udEZhY2U+YHVgKXJldHVybntmYWNlczpbXSxtZXRyaWNzOnt9fTtsZXQgbj1bXSxyPXt9LGk9bmV3IE1hcDtmb3IobGV0IHQgb2YgZSl7bGV0IGU9dC5mYW1pbHkudHJpbSgpLG49dC5sb2NhbE5hbWVzLm1hcChlPT5lLnRyaW0oKSkuZmlsdGVyKEJvb2xlYW4pO2lmKCFlfHxuLmxlbmd0aD09PTB8fHQubGluZUhlaWdodE11bHRpcGxpZXIhPW51bGwmJiEodC5saW5lSGVpZ2h0TXVsdGlwbGllcj4wKSljb250aW51ZTtsZXQgcj10LndlaWdodD8/NDAwLGE9dC5zdHlsZT8/YG5vcm1hbGA7aWYoIShyPj0xMDAmJnI8PTkwMCl8fGEhPT1gbm9ybWFsYCYmYSE9PWBpdGFsaWNgKWNvbnRpbnVlO2xldCBvPW4ubWFwKG1nKS5qb2luKGAsIGApLHM9cGcoZSksYz1gbG9jYWwtZmFjZToke299OiR7cn06JHthfWAsbD1pLmdldChjKT8/e3NvdXJjZTpvLHJlcXVlc3RzOltdfTtsLnJlcXVlc3RzLnB1c2goey4uLnQsZmFtaWx5OmUsbm9ybWFsaXplZEZhbWlseTpzLHNvdXJjZTpvLHdlaWdodDpyLHN0eWxlOmF9KSxpLnNldChjLGwpfWZvcihsZXRbZSxhXW9mIGkpe2xldCBpPWhnKGUpLHtmYWNlOm99PWsoZSx0LCgpPT57bGV0IGU9YS5yZXF1ZXN0c1swXSxuPW5ldyBGb250RmFjZShpLGEuc291cmNlLHt3ZWlnaHQ6U3RyaW5nKGUud2VpZ2h0KSxzdHlsZTplLnN0eWxlfSk7cmV0dXJuIHQuYWRkKG4pLG59KTt0cnl7aWYoIWF3YWl0IGooby5sb2FkKCkpfHxvLnN0YXR1cyE9PWBsb2FkZWRgKXRocm93IEVycm9yKGBsb2NhbCBmb250IGxvYWQgdGltZWQgb3V0YCk7bGV0IGU9ITE7Zm9yKGxldCB0IG9mIGEucmVxdWVzdHMpe2xldCBuO2lmKHQubGluZUhlaWdodE11bHRpcGxpZXIhPW51bGwpe2xldCBlPWdnKCk7aWYoIWUpY29udGludWU7ZS5mb250PWAke3Quc3R5bGV9ICR7dC53ZWlnaHR9IDEwMHB4ICIke2l9ImA7bGV0IHI9ZS5tZWFzdXJlVGV4dChgSGflm71gKSxhPXIuZm9udEJvdW5kaW5nQm94QXNjZW50LG89ci5mb250Qm91bmRpbmdCb3hEZXNjZW50O2lmKCEoTnVtYmVyLmlzRmluaXRlKGEpJiZOdW1iZXIuaXNGaW5pdGUobykmJmErbz4wKSljb250aW51ZTtuPShhK28pLzEwMCp0LmxpbmVIZWlnaHRNdWx0aXBsaWVyfWxldCBhPXQud2VpZ2h0PT09NDAwJiZ0LnN0eWxlPT09YG5vcm1hbGA/dC5ub3JtYWxpemVkRmFtaWx5OmAke3Qubm9ybWFsaXplZEZhbWlseX06JHt0LndlaWdodH06JHt0LnN0eWxlfWA7clthXT17ZmFtaWx5OmksLi4ubj09bnVsbD97fTp7bGluZUhlaWdodFJhdGlvOm59LHJlcXVlc3RlZEZhbWlseTp0LmZhbWlseSx3ZWlnaHQ6dC53ZWlnaHQsc3R5bGU6dC5zdHlsZSxzb3VyY2VJZGVudGl0eTp0LnNvdXJjZSxzeW50aGVzaXplZDohMX0sZT0hMH1pZighZSl0aHJvdyBFcnJvcihgZXhhY3QgbG9jYWwgZm9udCByb3V0ZSB1bmF2YWlsYWJsZWApO24ucHVzaChvKX1jYXRjaHtBKFtvXSl9fXJldHVybntmYWNlczpuLG1ldHJpY3M6cn19ZnVuY3Rpb24gdmcoZSl7QShlKX1jb25zdCB5Zz1be3Rlc3Q6ZT0+ZT09PWBnZW9yZ2lhYCxiaWFzRW06LjAxMDV9XTtmdW5jdGlvbiBiZyhlKXtyZXR1cm4oZT8/YGApLnRyaW0oKS5yZXBsYWNlKC9eWyInXXxbIiddJC9nLGBgKS5yZXBsYWNlKC9ccysvZyxgIGApLnRvTG93ZXJDYXNlKCl9ZnVuY3Rpb24geGcoZSl7bGV0IHQ9YmcoZSk7Zm9yKGxldCBlIG9mIHlnKWlmKGUudGVzdCh0KSlyZXR1cm4gZS5iaWFzRW07cmV0dXJuIDB9ZnVuY3Rpb24gU2coZSx0KXtpZighTnVtYmVyLmlzU2FmZUludGVnZXIoZSl8fGU8PTApdGhyb3cgVHlwZUVycm9yKGAke3R9IG11c3QgYmUgYSBwb3NpdGl2ZSBzYWZlIGludGVnZXJgKX1mdW5jdGlvbiBDZyhlKXtpZighTnVtYmVyLmlzU2FmZUludGVnZXIoZSl8fGU8MCl0aHJvdyBUeXBlRXJyb3IoYGNhY2hlIGVudHJ5IHdlaWdodCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIHNhZmUgaW50ZWdlcmApfXZhciB3Zz1jbGFzc3sjZTsjdDsjbjsjcjsjaT1uZXcgTWFwOyNhPW5ldyBNYXA7I289MDtjb25zdHJ1Y3RvcihlKXtTZyhlLm1heEVudHJpZXMsYG1heEVudHJpZXNgKSxTZyhlLm1heFdlaWdodCxgbWF4V2VpZ2h0YCksdGhpcy4jZT1lLm1heEVudHJpZXMsdGhpcy4jdD1lLm1heFdlaWdodCx0aGlzLiNuPWUubWVhc3VyZSx0aGlzLiNyPWUub25SZW1vdmV9Z2V0IHVzYWdlKCl7cmV0dXJue2VudHJpZXM6dGhpcy4jaS5zaXplLHdlaWdodDp0aGlzLiNvLHBlbmRpbmc6dGhpcy4jYS5zaXplfX1oYXMoZSl7cmV0dXJuIHRoaXMuI2kuaGFzKGUpfWdldChlKXtsZXQgdD10aGlzLiNpLmdldChlKTtpZih0IT09dm9pZCAwKXJldHVybiB0aGlzLiNpLmRlbGV0ZShlKSx0aGlzLiNpLnNldChlLHQpLHQudmFsdWV9Z2V0T3JMb2FkKGUsdCl7bGV0IG49dGhpcy5nZXQoZSk7aWYobiE9PXZvaWQgMHx8dGhpcy4jaS5oYXMoZSkpcmV0dXJuIFByb21pc2UucmVzb2x2ZShuKTtsZXQgcj10aGlzLiNhLmdldChlKTtpZihyIT09dm9pZCAwKXJldHVybiByLnByb21pc2U7bGV0IGk9e30sYT1Qcm9taXNlLnJlc29sdmUoKS50aGVuKHQpLnRoZW4odD0+dGhpcy4jYyhlLGksdCksdD0+e3Rocm93IHRoaXMuI3MoZSxpKSx0fSk7cmV0dXJuIHRoaXMuI2Euc2V0KGUse3Rva2VuOmkscHJvbWlzZTphfSksYX1kZWxldGUoZSl7bGV0IHQ9dGhpcy4jYS5kZWxldGUoZSksbj10aGlzLiNpLmdldChlKTtyZXR1cm4gbj09PXZvaWQgMD90Oih0aGlzLiNpLmRlbGV0ZShlKSx0aGlzLiNvLT1uLndlaWdodCx0aGlzLiNsKG4udmFsdWUsZSxgZGVsZXRlZGApLCEwKX1jbGVhcigpe3RoaXMuI2EuY2xlYXIoKTtsZXQgZT1bLi4udGhpcy4jaV07dGhpcy4jaS5jbGVhcigpLHRoaXMuI289MDtmb3IobGV0W3Qsbl1vZiBlKXRoaXMuI2wobi52YWx1ZSx0LGBjbGVhcmVkYCl9I3MoZSx0KXt0aGlzLiNhLmdldChlKT8udG9rZW49PT10JiZ0aGlzLiNhLmRlbGV0ZShlKX0jYyhlLHQsbil7aWYodGhpcy4jYS5nZXQoZSk/LnRva2VuIT09dClyZXR1cm4gbjtsZXQgcjt0cnl7cj10aGlzLiNuKG4pLENnKHIpfWNhdGNoKG4pe3Rocm93IHRoaXMuI3MoZSx0KSxufWlmKHRoaXMuI2EuZ2V0KGUpPy50b2tlbiE9PXR8fCh0aGlzLiNhLmRlbGV0ZShlKSxyPnRoaXMuI3QpKXJldHVybiBuO2xldCBpPVtdO2Zvcig7dGhpcy4jaS5zaXplPj10aGlzLiNlfHxyPnRoaXMuI3QtdGhpcy4jbzspe2xldCBlPXRoaXMuI2kuZW50cmllcygpLm5leHQoKS52YWx1ZTtpZihlPT09dm9pZCAwKWJyZWFrO2xldFt0LG5dPWU7dGhpcy4jaS5kZWxldGUodCksdGhpcy4jby09bi53ZWlnaHQsaS5wdXNoKFt0LG5dKX10aGlzLiNpLnNldChlLHt2YWx1ZTpuLHdlaWdodDpyfSksdGhpcy4jbys9cjtmb3IobGV0W2UsdF1vZiBpKXRoaXMuI2wodC52YWx1ZSxlLGBldmljdGVkYCk7cmV0dXJuIG59I2woZSx0LG4pe3RyeXt0aGlzLiNyPy4oZSx0LG4pfWNhdGNoe319fSxUZz1jbGFzc3sjZTtjb25zdHJ1Y3RvcihlKXt0aGlzLiNlPW5ldyB3Zyh7bWF4RW50cmllczplLm1heEVudHJpZXMsbWF4V2VpZ2h0OmUubWF4Qnl0ZXMsbWVhc3VyZTplPT5lLnNpemV9KX1nZXQgdXNhZ2UoKXtsZXQgZT10aGlzLiNlLnVzYWdlO3JldHVybntlbnRyaWVzOmUuZW50cmllcyxieXRlczplLndlaWdodCxwZW5kaW5nOmUucGVuZGluZ319YXN5bmMgZ2V0KGUsdCxuKXtpZih0eXBlb2YgZSE9YHN0cmluZ2B8fGUubGVuZ3RoPT09MCl0aHJvdyBUeXBlRXJyb3IoYHJhdyBwYWNrYWdlIHBhcnQgcGF0aCBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZ2ApO2lmKHR5cGVvZiB0IT1gc3RyaW5nYCl0aHJvdyBUeXBlRXJyb3IoYHJhdyBwYWNrYWdlIHBhcnQgTUlNRSB0eXBlIG11c3QgYmUgYSBzdHJpbmdgKTtsZXQgcj1hd2FpdCB0aGlzLiNlLmdldE9yTG9hZChlLGFzeW5jKCk9PntsZXQgZT1hd2FpdCBuKCk7aWYoIShlIGluc3RhbmNlb2YgQmxvYikpdGhyb3cgVHlwZUVycm9yKGByYXcgcGFja2FnZSBwYXJ0IGxvYWRlciBtdXN0IHJldHVybiBhIEJsb2JgKTtyZXR1cm4gZX0pO3JldHVybiB0PT09YGB8fHIudHlwZT09PXQ/cjpyLnNsaWNlKDAsci5zaXplLHQpfWNsZWFyKCl7dGhpcy4jZS5jbGVhcigpfX07ZnVuY3Rpb24gRWcoZSx0PWAkYCl7aWYoZT09PW51bGx8fHR5cGVvZiBlPT1gYm9vbGVhbmB8fHR5cGVvZiBlPT1gbnVtYmVyYHx8dHlwZW9mIGU9PWBzdHJpbmdgKXJldHVybiBKU09OLnN0cmluZ2lmeShlKTtpZihBcnJheS5pc0FycmF5KGUpKXJldHVybmBbJHtlLm1hcCgoZSxuKT0+RWcoZSxgJHt0fVske259XWApKS5qb2luKGAsYCl9XWA7aWYodHlwZW9mIGU9PWBvYmplY3RgKXtsZXQgbj1lO3JldHVybmB7JHtPYmplY3Qua2V5cyhuKS5zb3J0KCkubWFwKGU9PmAke0pTT04uc3RyaW5naWZ5KGUpfToke0VnKG5bZV0sYCR7dH0uJHtlfWApfWApLmpvaW4oYCxgKX19YH10aHJvdyBUeXBlRXJyb3IoYENhbm5vdCBmaW5nZXJwcmludCAke3R5cGVvZiBlfSBhdCAke3R9YCl9ZnVuY3Rpb24gRGcoZSx0KXtsZXQgbj1FZyh0KTtyZXR1cm5gJHtlfToke2VuY29kZVVSSUNvbXBvbmVudChuKX1gfWZ1bmN0aW9uIE9nKGUpe3JldHVybmAke2Uuc3Rvcnl9OiR7ZW5jb2RlVVJJQ29tcG9uZW50KGUuc3RvcnlJbnN0YW5jZSl9OiR7ZS5wYXRoLmpvaW4oYC5gKX1gfWZ1bmN0aW9uIGtnKGUsdCxuKXtpZih0Lmxlbmd0aD09PTB8fG4ubGVuZ3RoPT09MCl0aHJvdyBSYW5nZUVycm9yKGBCb2R5IG9jY3VycmVuY2UgaWRlbnRpdHkgcmVxdWlyZXMgYSBmbG93IGRvbWFpbiBhbmQgZnJhZ21lbnQgc3RhcnRgKTtyZXR1cm5bYGJvZHktb2NjdXJyZW5jZWAsZW5jb2RlVVJJQ29tcG9uZW50KE9nKGUpKSxlbmNvZGVVUklDb21wb25lbnQodCksZW5jb2RlVVJJQ29tcG9uZW50KG4pXS5qb2luKGAvYCl9ZnVuY3Rpb24gQWcoZSx0KXtyZXR1cm5gaW1hZ2U6JHtPZyhlKX06JHtlbmNvZGVVUklDb21wb25lbnQodCl9YH1mdW5jdGlvbiBqZyhlLHQpe3JldHVybmBtYXRoOiR7T2coZSl9OiR7ZW5jb2RlVVJJQ29tcG9uZW50KHQpfWB9ZnVuY3Rpb24gTWcoZSl7cmV0dXJuIERnKGBjaGFydC1yZXNvdXJjZWAsZSl9ZnVuY3Rpb24gTmcoZSx0KXtyZXR1cm5gYW5jaG9yOiR7T2coZSl9OiR7ZW5jb2RlVVJJQ29tcG9uZW50KHQpfWB9ZnVuY3Rpb24gUGcoZSx0LG49bmV3IFdlYWtTZXQscj1uZXcgV2Vha1NldCl7aWYoZT09bnVsbHx8dHlwZW9mIGU9PWBzdHJpbmdgfHx0eXBlb2YgZT09YGJvb2xlYW5gKXJldHVybjtpZih0eXBlb2YgZT09YG51bWJlcmApe2lmKCFOdW1iZXIuaXNGaW5pdGUoZSkpdGhyb3cgVHlwZUVycm9yKGAke3R9IG11c3QgY29udGFpbiBmaW5pdGUgbnVtYmVyc2ApO3JldHVybn1pZih0eXBlb2YgZSE9YG9iamVjdGB8fG4uaGFzKGUpKXRocm93IFR5cGVFcnJvcihgJHt0fSBtdXN0IGJlIHN0cnVjdHVyZWQtY2xvbmUtc2FmZSBwbGFpbiBkYXRhYCk7aWYoci5oYXMoZSkpcmV0dXJuO2xldCBpPU9iamVjdC5nZXRQcm90b3R5cGVPZihlKTtpZighQXJyYXkuaXNBcnJheShlKSYmaSE9PU9iamVjdC5wcm90b3R5cGUmJmkhPT1udWxsKXRocm93IFR5cGVFcnJvcihgJHt0fSBtdXN0IGJlIHN0cnVjdHVyZWQtY2xvbmUtc2FmZSBwbGFpbiBkYXRhYCk7aWYoT2JqZWN0LmdldE93blByb3BlcnR5U3ltYm9scyhlKS5sZW5ndGghPT0wKXRocm93IFR5cGVFcnJvcihgJHt0fSBtdXN0IGNvbnRhaW4gb25seSBlbnVtZXJhYmxlIHN0cmluZyBkYXRhIHByb3BlcnRpZXNgKTtuLmFkZChlKTt0cnl7Zm9yKGxldCBpIG9mIE9iamVjdC5nZXRPd25Qcm9wZXJ0eU5hbWVzKGUpKXtpZihBcnJheS5pc0FycmF5KGUpJiZpPT09YGxlbmd0aGApY29udGludWU7bGV0IGE9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcihlLGkpO2lmKCFhfHwhYS5lbnVtZXJhYmxlfHwhKGB2YWx1ZWBpbiBhKSl0aHJvdyBUeXBlRXJyb3IoYCR7dH0uJHtpfSBtdXN0IGJlIGFuIGVudW1lcmFibGUgZGF0YSBwcm9wZXJ0eWApO1BnKGEudmFsdWUsYCR7dH0uJHtpfWAsbixyKX19ZmluYWxseXtuLmRlbGV0ZShlKX1yLmFkZChlKX1mdW5jdGlvbiBGZyhlLHQ9bmV3IFdlYWtTZXQpe2lmKHR5cGVvZiBlIT1gb2JqZWN0YHx8IWV8fHQuaGFzKGUpKXJldHVybiBlO3QuYWRkKGUpO2ZvcihsZXQgbiBvZiBPYmplY3QudmFsdWVzKGUpKUZnKG4sdCk7cmV0dXJuIE9iamVjdC5mcmVlemUoZSl9ZnVuY3Rpb24gSWcoZSx0KXtQZyhlLHQpO3RyeXtyZXR1cm4gRmcoc3RydWN0dXJlZENsb25lKGUpKX1jYXRjaHt0aHJvdyBUeXBlRXJyb3IoYCR7dH0gbXVzdCBiZSBzdHJ1Y3R1cmVkLWNsb25lLXNhZmUgcGxhaW4gZGF0YWApfX1mdW5jdGlvbiBMZyhlLHQpe3JldHVybiBQZyhlLHQpLEZnKGUpfWZ1bmN0aW9uIFJnKGUsdCl7aWYodHlwZW9mIGUhPWBzdHJpbmdgfHxlLnRyaW0oKS5sZW5ndGg9PT0wKXRocm93IFR5cGVFcnJvcihgJHt0fSBtdXN0IGJlIGEgbm9uLWVtcHR5IHN0cmluZ2ApfWZ1bmN0aW9uIHpnKGUsdCl7aWYoIU51bWJlci5pc0Zpbml0ZShlKXx8ZTwwKXRocm93IFR5cGVFcnJvcihgJHt0fSBtdXN0IGJlIGZpbml0ZSBhbmQgbm9uLW5lZ2F0aXZlYCl9ZnVuY3Rpb24gQmcoZSx0KXtpZighTnVtYmVyLmlzRmluaXRlKGUpKXRocm93IFR5cGVFcnJvcihgJHt0fSBtdXN0IGJlIGZpbml0ZWApfWZ1bmN0aW9uIFZnKGUsdCl7aWYoIU51bWJlci5pc0Zpbml0ZShlKXx8ZTwwfHxlPjEpdGhyb3cgVHlwZUVycm9yKGAke3R9IG11c3QgYmUgYmV0d2VlbiAwIGFuZCAxYCl9ZnVuY3Rpb24gSGcoZSx0KXt6ZyhlLndpZHRoUHQsYCR7dH0ud2lkdGhQdGApLHpnKGUuaGVpZ2h0UHQsYCR7dH0uaGVpZ2h0UHRgKX1mdW5jdGlvbiBVZyhlKXtzd2l0Y2goUmcoZS5yZXNvdXJjZUtleSxgcmVzb3VyY2VLZXlgKSxlLmtpbmQpe2Nhc2VgaW1hZ2VgOmNhc2VgcGljdHVyZS1idWxsZXRgOmlmKGUuZG9jdW1lbnRPcmRlciE9PXZvaWQgMCYmKCFOdW1iZXIuaXNTYWZlSW50ZWdlcihlLmRvY3VtZW50T3JkZXIpfHxlLmRvY3VtZW50T3JkZXI8MCkpdGhyb3cgVHlwZUVycm9yKGBkb2N1bWVudE9yZGVyIG11c3QgYmUgYSBub24tbmVnYXRpdmUgc2FmZSBpbnRlZ2VyYCk7aWYoUmcoZS5wYXJ0UGF0aCxgcGFydFBhdGhgKSxSZyhlLm1pbWVUeXBlLGBtaW1lVHlwZWApLGUuc3ZnSW1hZ2VQYXRoIT09dm9pZCAwJiZSZyhlLnN2Z0ltYWdlUGF0aCxgc3ZnSW1hZ2VQYXRoYCksSGcoZS5pbnRyaW5zaWNTaXplLGBpbnRyaW5zaWNTaXplYCksZS5hbHBoYSE9PXZvaWQgMCYmVmcoZS5hbHBoYSxgYWxwaGFgKSxlLnJvdGF0aW9uIT09dm9pZCAwJiYhTnVtYmVyLmlzRmluaXRlKGUucm90YXRpb24pKXRocm93IFR5cGVFcnJvcihgcm90YXRpb24gbXVzdCBiZSBmaW5pdGVgKTtlLnNyY1JlY3QhPT12b2lkIDAmJihCZyhlLnNyY1JlY3QubCxgc3JjUmVjdC5sYCksQmcoZS5zcmNSZWN0LnQsYHNyY1JlY3QudGApLEJnKGUuc3JjUmVjdC5yLGBzcmNSZWN0LnJgKSxCZyhlLnNyY1JlY3QuYixgc3JjUmVjdC5iYCkpO2JyZWFrO2Nhc2VgY2hhcnRgOkhnKGUuaW50cmluc2ljU2l6ZSxgaW50cmluc2ljU2l6ZWApO2JyZWFrO2Nhc2VgbWF0aGA6YnJlYWs7ZGVmYXVsdDp0aHJvdyBUeXBlRXJyb3IoYFVua25vd24gcGFpbnQgcmVzb3VyY2Uga2luZDogJHtTdHJpbmcoZSl9YCl9fWZ1bmN0aW9uIFdnKGUpe3JldHVybiBVZyhlKSxJZyhlLGBwYWludCByZXNvdXJjZSAke2UucmVzb3VyY2VLZXl9YCl9ZnVuY3Rpb24gR2coZSx0LG4pe3JldHVybiBFcnJvcihgUGFpbnQgcmVzb3VyY2Uga2luZCBtaXNtYXRjaCBmb3IgJHtlfTogZXhwZWN0ZWQgJHt0fSwgZ290ICR7bn1gKX1mdW5jdGlvbiBLZyhlKXtsZXQgdD1uZXcgU2V0O2ZvcihsZXQgbiBvZiBlKXtpZih0LmhhcyhuLnJlc291cmNlS2V5KSl0aHJvdyBFcnJvcihgRHVwbGljYXRlIHBhaW50IHJlc291cmNlIGtleTogJHtuLnJlc291cmNlS2V5fWApO3QuYWRkKG4ucmVzb3VyY2VLZXkpfWxldCBuPWUubWFwKFdnKS5zb3J0KChlLHQpPT5lLnJlc291cmNlS2V5LmxvY2FsZUNvbXBhcmUodC5yZXNvdXJjZUtleSkpO3JldHVybiBxZyhPYmplY3QuZnJlZXplKG4pKX1mdW5jdGlvbiBxZyhlKXtpZighT2JqZWN0LmlzRnJvemVuKGUpKXRocm93IFR5cGVFcnJvcihgT3duZWQgcGFpbnQgZGVzY3JpcHRvcnMgbXVzdCBiZSBzZWFsZWRgKTtsZXQgdD1udWxsO2ZvcihsZXQgbiBvZiBlKXtpZihVZyhuKSwhT2JqZWN0LmlzRnJvemVuKG4pKXRocm93IFR5cGVFcnJvcihgT3duZWQgcGFpbnQgZGVzY3JpcHRvciBtdXN0IGJlIHNlYWxlZDogJHtuLnJlc291cmNlS2V5fWApO2lmKHQhPT1udWxsJiZuLnJlc291cmNlS2V5LmxvY2FsZUNvbXBhcmUodCk8PTApdGhyb3cgRXJyb3IoYE93bmVkIHBhaW50IGRlc2NyaXB0b3JzIG11c3QgaGF2ZSB1bmlxdWUgc29ydGVkIGtleXM6ICR7bi5yZXNvdXJjZUtleX1gKTt0PW4ucmVzb3VyY2VLZXl9bGV0IG49ZSxyPW5ldyBNYXAobi5tYXAoZT0+W2UucmVzb3VyY2VLZXksZV0pKSxpPU9iamVjdC5mcmVlemUobi5tYXAoZT0+ZS5yZXNvdXJjZUtleSkpO3JldHVybiBPYmplY3QuZnJlZXplKHtrZXlzOmksZGVzY3JpcHRvcnM6bixyZXNvbHZlKGUsdCl7bGV0IG49ci5nZXQoZSk7aWYoIW4pdGhyb3cgRXJyb3IoYFVua25vd24gcGFpbnQgcmVzb3VyY2U6ICR7ZX1gKTtpZihuLmtpbmQhPT10KXRocm93IEdnKGUsdCxuLmtpbmQpO3JldHVybiBufX0pfWZ1bmN0aW9uIEpnKGUpe3JldHVybiBNZyhlKX1mdW5jdGlvbiBZZyhlLHQsbixyPXt9KXtyZXR1cm57a2luZDplLHJlc291cmNlS2V5OnQscGFydFBhdGg6biwuLi5yLnN2Z0ltYWdlUGF0aD09PXZvaWQgMD97fTp7c3ZnSW1hZ2VQYXRoOnIuc3ZnSW1hZ2VQYXRofSwuLi5yLnNyY1JlY3Q9PW51bGw/e306e3NyY1JlY3Q6ey4uLnIuc3JjUmVjdH19LC4uLnIucm90YXRpb249PT12b2lkIDA/e306e3JvdGF0aW9uOnIucm90YXRpb259LC4uLnIuZmxpcEg9PT12b2lkIDA/e306e2ZsaXBIOnIuZmxpcEh9LC4uLnIuZmxpcFY9PT12b2lkIDA/e306e2ZsaXBWOnIuZmxpcFZ9LC4uLnIuYWxwaGE9PT12b2lkIDA/e306e2FscGhhOnIuYWxwaGF9LC4uLnIuY29sb3JSZXBsYWNlRnJvbT09PXZvaWQgMD97fTp7Y29sb3JSZXBsYWNlRnJvbTpyLmNvbG9yUmVwbGFjZUZyb219LC4uLnIuZHVvdG9uZT09PXZvaWQgMD97fTp7ZHVvdG9uZTp7Li4uci5kdW90b25lfX19fWZ1bmN0aW9uIFhnKGUsdCxuLHIpe2xldCBpPVtdLGE9W10sbz1bXSxzPShlLHQsbixyLG8scyxjPXt9KT0+e2xldCBsPUFnKHQsbik7aS5wdXNoKFlnKGUsbCxuLGMpKSxhLnB1c2goe3Jlc291cmNlS2V5OmwsbWltZVR5cGU6cix3aWR0aFB0Om8saGVpZ2h0UHQ6c30pfSxjPShlLHQpPT57aWYoZS50eXBlPT09YGltYWdlYCl7cyhgaW1hZ2VgLHQsZS5pbWFnZVBhdGgsZS5taW1lVHlwZSxlLndpZHRoUHQsZS5oZWlnaHRQdCxlKTtyZXR1cm59aWYoZS50eXBlPT09YGNoYXJ0YCl7by5wdXNoKHtraW5kOmBjaGFydGAscmVzb3VyY2VLZXk6SmcodCksaW50cmluc2ljU2l6ZTp7d2lkdGhQdDplLndpZHRoUHQsaGVpZ2h0UHQ6ZS5oZWlnaHRQdH0sbW9kZWw6ZS5jaGFydH0pO3JldHVybn1pZihlLnR5cGUhPT1gc2hhcGVgKXJldHVybjtsZXQgbj1lO24uZmlsbD8uZmlsbFR5cGU9PT1gaW1hZ2VgJiZzKGBpbWFnZWAsdCxuLmZpbGwuaW1hZ2VQYXRoLG4uZmlsbC5taW1lVHlwZSxuLndpZHRoUHQsbi5oZWlnaHRQdCx7Li4ubi5maWxsLnN2Z0ltYWdlUGF0aD09PXZvaWQgMD97fTp7c3ZnSW1hZ2VQYXRoOm4uZmlsbC5zdmdJbWFnZVBhdGh9LC4uLm4uZmlsbC5zcmNSZWN0PT09dm9pZCAwP3t9OntzcmNSZWN0OnsuLi5uLmZpbGwuc3JjUmVjdH19LC4uLm4uZmlsbC5hbHBoYT09PXZvaWQgMD97fTp7YWxwaGE6bi5maWxsLmFscGhhfSwuLi5uLmZpbGwuZHVvdG9uZT09PXZvaWQgMD97fTp7ZHVvdG9uZTpuLmZpbGwuZHVvdG9uZX19KTtsZXQgcj1gJHt0LnN0b3J5fToke3Quc3RvcnlJbnN0YW5jZX06JHt0LnBhdGguam9pbihgLmApfWA7aWYobi50ZXh0Qm94Q29udGVudCE9PXZvaWQgMCl7ZihuLnRleHRCb3hDb250ZW50LGB0ZXh0Ym94YCxyKTtyZXR1cm59bi50ZXh0QmxvY2tzPy5mb3JFYWNoKChlLHQpPT57aWYoZS5pbWFnZVBhdGgpe2lmKCFlLm1pbWVUeXBlfHxlLmltYWdlV2lkdGhQdD09bnVsbHx8ZS5pbWFnZUhlaWdodFB0PT1udWxsKXRocm93IEVycm9yKGBUZXh0LWJveCBjb21wYXRpYmlsaXR5IGltYWdlIHJlcXVpcmVzIGNvbXBsZXRlIG1ldGFkYXRhYCk7cyhgaW1hZ2VgLHtzdG9yeTpgdGV4dGJveGAsc3RvcnlJbnN0YW5jZTpyLHBhdGg6W3QsMF19LGUuaW1hZ2VQYXRoLGUubWltZVR5cGUsZS5pbWFnZVdpZHRoUHQsZS5pbWFnZUhlaWdodFB0LHtzdmdJbWFnZVBhdGg6ZS5zdmdJbWFnZVBhdGh9KX19KX0sbD0oZSx0LG4scik9PntlLnJvd3MuZm9yRWFjaCgoZSxpKT0+ZS5jZWxscy5mb3JFYWNoKChlLGEpPT57ZihlLmNvbnRlbnQsdCxuLFsuLi5yLGksYV0pfSkpfSx1PShlLHQsbik9PntpZihlKWZvcihsZXQgciBvZltgZGVmYXVsdGAsYGZpcnN0YCxgZXZlbmBdKXtsZXQgaT1lW3JdO2kmJmYoaS5ib2R5LHQsbj9gJHtufToke3J9YDpyKX19LGQ9KGUsbik9PntsZXQgaT1lLm51bWJlcmluZztpZihpPy5waWNCdWxsZXRJbWFnZVBhdGgpe2xldCB0PXI/LihlKSxhPWkucGljQnVsbGV0V2lkdGhQdD8/dD8ud2lkdGhQdCxvPWkucGljQnVsbGV0SGVpZ2h0UHQ/P3Q/LmhlaWdodFB0O2lmKCFpLnBpY0J1bGxldE1pbWVUeXBlfHxhPT1udWxsfHxvPT1udWxsKXRocm93IEVycm9yKGBQaWN0dXJlIGJ1bGxldCByZXF1aXJlcyBjb21wbGV0ZSBtZXRhZGF0YWApO3MoYHBpY3R1cmUtYnVsbGV0YCxuLGkucGljQnVsbGV0SW1hZ2VQYXRoLGkucGljQnVsbGV0TWltZVR5cGUsYSxvKX1sZXQgYT10Py5wYXJhZ3JhcGhBY3F1aXNpdGlvbklucHV0KGUsbikucnVucz8/ZS5ydW5zLG89MDthLmZvckVhY2goKHQscik9PntpZih0LnR5cGU9PT1gdW5hdmFpbGFibGVEcmF3aW5nYClyZXR1cm47bGV0IGk9ZS5ydW5zW28rK107aSYmKGkudHlwZT09PWBpbWFnZWB8fGkudHlwZT09PWBjaGFydGB8fGkudHlwZT09PWBzaGFwZWApJiZjKGksey4uLm4scGF0aDpbLi4ubi5wYXRoLHJdfSl9KX0sZj0oZSx0LG4scj1bXSk9PntlLmZvckVhY2goKGUsaSk9PntsZXQgYT1bLi4ucixpXTtlLnR5cGU9PT1gcGFyYWdyYXBoYD9kKGUse3N0b3J5OnQsc3RvcnlJbnN0YW5jZTpuLHBhdGg6YX0pOmUudHlwZT09PWB0YWJsZWA/bChlLHQsbixhKTplLnR5cGU9PT1gc2VjdGlvbkJyZWFrYCYmKHUoZS5oZWFkZXJzLGBoZWFkZXJgLGBzZWN0aW9uOiR7aX1gKSx1KGUuZm9vdGVycyxgZm9vdGVyYCxgc2VjdGlvbjoke2l9YCkpfSl9O2YoZS5ib2R5LGBib2R5YCxgYm9keWApLHUoZS5oZWFkZXJzLGBoZWFkZXJgKSx1KGUuZm9vdGVycyxgZm9vdGVyYCk7Zm9yKGxldCB0IG9mIGUuZm9vdG5vdGVzPz9bXSlmKHQuY29udGVudCxgZm9vdG5vdGVgLHQuaWQpO2ZvcihsZXQgdCBvZiBlLmVuZG5vdGVzPz9bXSlmKHQuY29udGVudCxgZW5kbm90ZWAsdC5pZCk7bGV0IHA9bmV3IE1hcChhLm1hcChlPT5bZS5yZXNvdXJjZUtleSxlXSkpO2lmKHAuc2l6ZSE9PWEubGVuZ3RoKXRocm93IEVycm9yKGBEdXBsaWNhdGUgaW1hZ2UgcmVzb3VyY2Uga2V5YCk7Zm9yKGxldFtlLHRdb2YgaS5lbnRyaWVzKCkpe2xldCBuPXAuZ2V0KHQucmVzb3VyY2VLZXkpO2lmKCFuKXRocm93IEVycm9yKGBNaXNzaW5nIGxheW91dCBpbWFnZSBtZXRhZGF0YTogJHt0LnJlc291cmNlS2V5fWApO28ucHVzaCh7Li4udCxkb2N1bWVudE9yZGVyOmUsbWltZVR5cGU6bi5taW1lVHlwZSxpbnRyaW5zaWNTaXplOnt3aWR0aFB0Om4ud2lkdGhQdCxoZWlnaHRQdDpuLmhlaWdodFB0fX0pfWZvcihsZXQgZSBvZiBuKW8ucHVzaCh7a2luZDpgbWF0aGAscmVzb3VyY2VLZXk6ZS5yZXNvdXJjZUtleX0pO3JldHVybntpbWFnZU1ldGFkYXRhOmEsZGVzY3JpcHRvcnM6b319ZnVuY3Rpb24gWmcoZSx0LG4scil7bGV0IGk9WGcoZSx0LG4scik7cmV0dXJuIE9iamVjdC5mcmVlemUoe2ltYWdlTWV0YWRhdGE6T2JqZWN0LmZyZWV6ZShpLmltYWdlTWV0YWRhdGEubWFwKGU9Pk9iamVjdC5mcmVlemUoey4uLmV9KSkpLHBhaW50UmVzb3VyY2VzOktnKGkuZGVzY3JpcHRvcnMpfSl9ZnVuY3Rpb24gUWcoZSx0KXtpZighTnVtYmVyLmlzRmluaXRlKGUpfHxlPDApdGhyb3cgUmFuZ2VFcnJvcihgJHt0fSBtdXN0IGJlIGZpbml0ZSBhbmQgbm9uLW5lZ2F0aXZlYCk7cmV0dXJuIGV9ZnVuY3Rpb24gJGcoZSl7bGV0IHQ9Wy4uLmVdLm1hcChlPT5PYmplY3QuZnJlZXplKHtyZXNvdXJjZUtleTplLnJlc291cmNlS2V5LHdpZHRoUHQ6UWcoZS53aWR0aFB0LGB3aWR0aFB0YCksaGVpZ2h0UHQ6UWcoZS5oZWlnaHRQdCxgaGVpZ2h0UHRgKSxtaW1lVHlwZTplLm1pbWVUeXBlfSkpLnNvcnQoKGUsdCk9PmUucmVzb3VyY2VLZXkubG9jYWxlQ29tcGFyZSh0LnJlc291cmNlS2V5KSksbj1uZXcgTWFwKHQubWFwKCh7cmVzb3VyY2VLZXk6ZSwuLi50fSk9PltlLE9iamVjdC5mcmVlemUodCldKSk7aWYobi5zaXplIT09dC5sZW5ndGgpdGhyb3cgRXJyb3IoYER1cGxpY2F0ZSBpbWFnZSByZXNvdXJjZSBrZXlgKTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7ZmluZ2VycHJpbnQ6RGcoYGltYWdlc2AsdCkscmVzb2x2ZShlKXtsZXQgdD1uLmdldChlKTtpZighdCl0aHJvdyBFcnJvcihgVW5rbm93biBpbWFnZSByZXNvdXJjZTogJHtlfWApO3JldHVybiB0fX0pfWZ1bmN0aW9uIGVfKGUpe2xldCB0PVsuLi5lXS5tYXAoZT0+T2JqZWN0LmZyZWV6ZSh7cmVzb3VyY2VLZXk6ZS5yZXNvdXJjZUtleSx3aWR0aEVtOlFnKGUud2lkdGhFbSxgd2lkdGhFbWApLGFzY2VudEVtOlFnKGUuYXNjZW50RW0sYGFzY2VudEVtYCksZGVzY2VudEVtOlFnKGUuZGVzY2VudEVtLGBkZXNjZW50RW1gKSxkaWFnbm9zdGljczpPYmplY3QuZnJlZXplKGUuZGlhZ25vc3RpY3MubWFwKGU9Pk9iamVjdC5mcmVlemUoey4uLmV9KSkpLC4uLmUuYXZhaWxhYmxlPT09ITE/e2F2YWlsYWJsZTohMX06e319KSkuc29ydCgoZSx0KT0+ZS5yZXNvdXJjZUtleS5sb2NhbGVDb21wYXJlKHQucmVzb3VyY2VLZXkpKSxuPW5ldyBNYXAodC5tYXAoZT0+W2UucmVzb3VyY2VLZXksZV0pKTtpZihuLnNpemUhPT10Lmxlbmd0aCl0aHJvdyBFcnJvcihgRHVwbGljYXRlIG1hdGggcmVzb3VyY2Uga2V5YCk7cmV0dXJuIE9iamVjdC5mcmVlemUoe2ZpbmdlcnByaW50OkRnKGBtYXRoYCx0KSxyZXNvbHZlKGUpe2xldCB0PW4uZ2V0KGUpO2lmKCF0KXRocm93IEVycm9yKGBVbmtub3duIG1hdGggcmVzb3VyY2U6ICR7ZX1gKTtyZXR1cm4gdH19KX1mdW5jdGlvbiB0XyhlKXtsZXQgdD1uZXcgTWFwKGUpLG49T2JqZWN0LmZyZWV6ZShbLi4udC5rZXlzKCldLnNvcnQoKSk7cmV0dXJuIE9iamVjdC5mcmVlemUoe2tleXM6bixyZXNvbHZlKGUpe2xldCBuPXQuZ2V0KGUpO2lmKG49PT12b2lkIDApdGhyb3cgRXJyb3IoYFVua25vd24gcnVudGltZSByZXNvdXJjZTogJHtlfWApO3JldHVybiBufX0pfWNvbnN0IG5fPW5ldyBXZWFrTWFwLHJfPW5ldyBXZWFrTWFwLGlfPW5ldyBXZWFrTWFwLGFfPW5ldyBXZWFrTWFwLG9fPW5ldyBXZWFrTWFwLHNfPW5ldyBXZWFrTWFwLGNfPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIGxfKCl7bGV0IGU9bmV3IFdlYWtNYXAsdD1uZXcgV2Vha01hcCxuPTE7cmV0dXJuIE9iamVjdC5mcmVlemUoe29iamVjdElkZW50aXR5KHQpe2xldCByPWUuZ2V0KHQpO3JldHVybiByPT09dm9pZCAwJiYocj1uLG4rPTEsZS5zZXQodCxyKSkscn0sZ2V0KGUsbil7cmV0dXJuIHQuZ2V0KGUpPy5nZXQobil9LHNldChlLG4scil7bGV0IGk9dC5nZXQoZSk7aXx8KGk9bmV3IE1hcCx0LnNldChlLGkpKSxpLnNldChuLHIpfX0pfWZ1bmN0aW9uIHVfKGUsdCl7bGV0IG49W2UudGV4dCxlLmltYWdlcyxlLm1hdGhdLHI9bmV3IFNldChuLmZsYXRNYXAoZT0+e2xldCB0PXJfLmdldChlKTtyZXR1cm4gdD9bdF06W119KSk7aWYoci5zaXplPjEpdGhyb3cgRXJyb3IoYExheW91dCBzZXJ2aWNlcyBjb21iaW5lIGZvcmVpZ24gcnVudGltZSBvd25lcnNgKTtsZXQgaT1yLnZhbHVlcygpLm5leHQoKS52YWx1ZSxhPW4uZmlsdGVyKGU9PiFyXy5oYXMoZSkpO2lmKGkmJmEubGVuZ3RoPjEpdGhyb3cgRXJyb3IoYExheW91dCBzZXJ2aWNlcyBhcmUgbWlzc2luZyBzZXJ2aWNlIGxpbmVhZ2UgZm9yIG11bHRpcGxlIGNvbXBvbmVudHNgKTtpZighaSYmIXQpcmV0dXJuO2xldCBvPWk/P3t9O2ZvcihsZXQgZSBvZiBuKXtsZXQgdD1yXy5nZXQoZSk7aWYodCYmdCE9PW8pdGhyb3cgRXJyb3IoYExheW91dCBzZXJ2aWNlcyBjb21iaW5lIGZvcmVpZ24gcnVudGltZSBvd25lcnNgKTtyXy5zZXQoZSxvKX1yZXR1cm4gb31mdW5jdGlvbiBkXyhlLHQpe2xldCBuPXVfKGUsITApO2lmKGlfLmhhcyhuKSl0aHJvdyBFcnJvcihgQm9keSBsYXlvdXQga2VybmVsIGlzIGFscmVhZHkgYXR0YWNoZWRgKTtpXy5zZXQobix0KX1mdW5jdGlvbiBmXyhlKXtsZXQgdD11XyhlLCExKTtyZXR1cm4gdD9pXy5nZXQodCk6dm9pZCAwfWZ1bmN0aW9uIHBfKGUsdCl7bGV0IG49dV8oZSwhMCk7aWYoYV8uaGFzKG4pKXRocm93IEVycm9yKGBMYXlvdXQgc291cmNlIHN0b3JlIGlzIGFscmVhZHkgYXR0YWNoZWRgKTthXy5zZXQobix0KX1mdW5jdGlvbiBtXyhlKXtsZXQgdD11XyhlLCExKTtyZXR1cm4gdD9hXy5nZXQodCk6dm9pZCAwfWZ1bmN0aW9uIGhfKGUsdCl7bGV0IG49dV8oZSwhMCk7aWYob18uaGFzKG4pKXRocm93IEVycm9yKGBWZXJ0aWNhbCBnbHlwaCBtZWFzdXJlbWVudCBzZXJ2aWNlIGlzIGFscmVhZHkgYXR0YWNoZWRgKTtvXy5zZXQobix0KX1mdW5jdGlvbiBnXyhlKXtsZXQgdD11XyhlLCExKSxuPXQ/b18uZ2V0KHQpOnZvaWQgMDtpZighbil0aHJvdyBFcnJvcihgVmVydGljYWwgZ2x5cGggbWVhc3VyZW1lbnQgc2VydmljZSBpcyBub3QgYXR0YWNoZWRgKTtyZXR1cm4gbn1mdW5jdGlvbiBfXyhlLHQpe2lmKHNfLmhhcyhlKSl0aHJvdyBFcnJvcihgTGF5b3V0IHZhcmlhbnQgc3RvcmUgaXMgYWxyZWFkeSBhdHRhY2hlZGApO3NfLnNldChlLHQpfWZ1bmN0aW9uIHZfKGUpe3JldHVybiBzXy5nZXQoZSl9ZnVuY3Rpb24geV8oZSx0LG49dC5rZXlzKCkpe2lmKG5fLmhhcyhlKSl0aHJvdyBFcnJvcihgUHJpdmF0ZSByZXNvdXJjZSBsb29rdXAgaXMgYWxyZWFkeSBhdHRhY2hlZGApO2xldCByPW5ldyBTZXQodC5rZXlzKCkpLGk9bmV3IFNldChuKSxhPVsuLi5pXS5maWx0ZXIoZT0+IXIuaGFzKGUpKS5zb3J0KCksbz1bLi4ucl0uZmlsdGVyKGU9PiFpLmhhcyhlKSkuc29ydCgpO2lmKGEubGVuZ3RoPjB8fG8ubGVuZ3RoPjApdGhyb3cgRXJyb3IoYFJ1bnRpbWUgcmVzb3VyY2UgbWVtYmVyc2hpcCBtaXNtYXRjaDogbWlzc2luZyBbJHthLmpvaW4oYCwgYCl9XTsgZXh0cmEgWyR7by5qb2luKGAsIGApfV1gKTtuXy5zZXQoZSx0Xyh0KSl9ZnVuY3Rpb24gYl8oZSl7cmV0dXJuIG5fLmdldChlKX1jb25zdCB4Xz1uZXcgV2Vha01hcCxTXz1uZXcgV2Vha01hcDtmdW5jdGlvbiBDXyhlLHQ9e30pe2xldCBuPU9iamVjdC5mcmVlemUoey4uLmUsLi4udH0pLHI9Zl8oZSk7aWYoIXIpdGhyb3cgRXJyb3IoYEJvZHkgbGF5b3V0IGtlcm5lbCBpcyBub3QgYXR0YWNoZWQgdG8gdGhlIHN1cHBsaWVkIHNlcnZpY2VzYCk7aWYoZl8obikhPT1yKXRocm93IEVycm9yKGBMYXlvdXQgc2VydmljZSB2aWV3IGRpZCBub3QgcmV0YWluIGl0cyBib2R5IGxheW91dCBrZXJuZWwgb3duZXJgKTtsZXQgaT1uXy5nZXQoZSk7aSYmbl8uc2V0KG4saSk7bGV0IGE9eF8uZ2V0KGUpO2EmJnhfLnNldChuLGEpO2xldCBvPWNfLmdldChlKTtyZXR1cm4gbyYmY18uc2V0KG4sbyksbn1mdW5jdGlvbiB3XyhlKXtsZXQgdD1DXyhlKTtyZXR1cm4gY18uc2V0KHQsbF8oKSksdH1mdW5jdGlvbiBUXyhlKXtyZXR1cm4gY18uZ2V0KGUpfWZ1bmN0aW9uIEVfKGUsdCl7aWYoIU51bWJlci5pc0ludGVnZXIodC50b3RhbFBhZ2VzKXx8dC50b3RhbFBhZ2VzPDEpdGhyb3cgUmFuZ2VFcnJvcihgRmllbGQgYWNxdWlzaXRpb24gdG90YWxQYWdlcyBtdXN0IGJlIGEgcG9zaXRpdmUgaW50ZWdlcmApO2xldCBuPUNfKGUpO3JldHVybiBTXy5zZXQobixPYmplY3QuZnJlZXplKHsuLi50fSkpLG59ZnVuY3Rpb24gRF8oZSl7cmV0dXJuIFNfLmdldChlKT8/T2JqZWN0LmZyZWV6ZSh7dG90YWxQYWdlczoxfSl9ZnVuY3Rpb24gT18oZSx0KXtpZih4Xy5oYXMoZSkpdGhyb3cgRXJyb3IoYFBhaW50IHJlc291cmNlIHJlZ2lzdHJ5IGlzIGFscmVhZHkgYXR0YWNoZWRgKTt4Xy5zZXQoZSx0KX1mdW5jdGlvbiBrXyhlKXtsZXQgdD14Xy5nZXQoZSk7aWYoIXQpdGhyb3cgRXJyb3IoYFBhaW50IHJlc291cmNlIHJlZ2lzdHJ5IGlzIG5vdCBhdHRhY2hlZGApO3JldHVybiB0fWNvbnN0IEFfPVtgYmFja2dyb3VuZGAsYGJlaGluZFRleHRgLGBoZWFkZXJgLGBib2R5YCxgbm90ZXNgLGBmcm9udGAsYGZvb3RlcmBdLGpfPU9iamVjdC5mcmVlemUoe2E6MSxiOjAsYzowLGQ6MSxlOjAsZjowfSk7ZnVuY3Rpb24gTV8oZSl7cmV0dXJuIE9iamVjdC5mcmVlemUoe2tpbmQ6YGNsaXBgLGNsaXA6ZX0pfWZ1bmN0aW9uIE5fKGUsdCl7cmV0dXJuIE9iamVjdC5mcmVlemUoe2tpbmQ6YHRyYW5zZm9ybWAsdHJhbnNmb3JtOk9iamVjdC5mcmVlemUoey4uLmpfLGUsZjp0fSl9KX1mdW5jdGlvbiBQXyhlLHQpe2lmKCF0LnRleHRCb3hJZHM/Lmxlbmd0aClyZXR1cm4gT2JqZWN0LmZyZWV6ZShbXSk7bGV0IG49bmV3IE1hcChlLnRleHRCb3hlcy5tYXAoZT0+W2UuaWQsZV0pKTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh0LnRleHRCb3hJZHMuZmxhdE1hcChlPT57bGV0IHQ9bi5nZXQoZSk7cmV0dXJuIHQ/W3RdOltdfSkpfWZ1bmN0aW9uIEZfKGUsdCxuLHIsaSl7aWYoZS5raW5kPT09YGRyYXdpbmdgKXtpZighZS5hbmNob3JMYXllcilyZXR1cm47aS5wdXNoKE9iamVjdC5mcmVlemUoe2RyYXdpbmc6ZSx0ZXh0Qm94ZXM6T2JqZWN0LmZyZWV6ZShbXSksZnJhbWVzOk9iamVjdC5mcmVlemUoWy4uLm5dKSxsYXlvdXRUcmFuc2xhdGlvblB0Ok9iamVjdC5mcmVlemUoey4uLnJ9KSxlbmNvdW50ZXJPcmRlcjppLmxlbmd0aCxyb290OnR9KSk7cmV0dXJufWlmKGUua2luZCE9PWB0ZXh0Ym94YCl7aWYoZS5raW5kPT09YG5vdGVgKXtsZXQgYT1lLnN0b3J5LmNsaXBCb3VuZHM/T2JqZWN0LmZyZWV6ZShbLi4ubixNXyhlLnN0b3J5LmNsaXBCb3VuZHMpXSk6bjtmb3IobGV0IG4gb2YgZS5zdG9yeS5ibG9ja3MpRl8obix0LGEscixpKTtyZXR1cm59aWYoZS5raW5kPT09YHBhcmFncmFwaGApe2xldCBhPWUuY2xpcEJvdW5kcz9PYmplY3QuZnJlZXplKFsuLi5uLE1fKGUuY2xpcEJvdW5kcyldKTpuO2ZvcihsZXQgbiBvZiBlLmRyYXdpbmdzKW4uYW5jaG9yTGF5ZXImJmkucHVzaChPYmplY3QuZnJlZXplKHtkcmF3aW5nOm4sb3duZXI6ZSx0ZXh0Qm94ZXM6UF8oZSxuKSxmcmFtZXM6T2JqZWN0LmZyZWV6ZShbLi4uYV0pLGxheW91dFRyYW5zbGF0aW9uUHQ6T2JqZWN0LmZyZWV6ZSh7Li4ucn0pLGVuY291bnRlck9yZGVyOmkubGVuZ3RoLHJvb3Q6dH0pKTtyZXR1cm59Ul8oZSx0LG4scixpKX19ZnVuY3Rpb24gSV8oZSx0LG4scixpLGEpe2xldCBvPXQueFB0LWUuZmxvd0JvdW5kcy54UHQscz10LnlQdC1lLmZsb3dCb3VuZHMueVB0O0ZfKGUsbixPYmplY3QuZnJlZXplKFsuLi5yLE5fKG8scyldKSxPYmplY3QuZnJlZXplKHt4UHQ6aS54UHQrbyx5UHQ6aS55UHQrc30pLGEpfWZ1bmN0aW9uIExfKGUsdCxuLHIsaSl7SV8oZS5jaGlsZCx7eFB0OmUueFB0LXIueFB0LHlQdDplLnlQdC1yLnlQdH0sdCxuLHIsaSl9ZnVuY3Rpb24gUl8oZSx0LG4scixpKXtsZXQgYT1lLmNsaXBCb3VuZHM/T2JqZWN0LmZyZWV6ZShbLi4ubixNXyhlLmNsaXBCb3VuZHMpXSk6bjtmb3IobGV0IG4gb2YgZS5yb3dzKWZvcihsZXQgZSBvZiBuLmNlbGxzKXtsZXQgbj1gdmlzdWFsTWVyZ2VPd25lcnNoaXBgaW4gZSYmZS52aXN1YWxNZXJnZU93bmVyc2hpcD09PWBjb250aW51YXRpb25gO2lmKGUudmVydGljYWxNZXJnZT09PWBjb250aW51ZWAmJiFuKWNvbnRpbnVlO2xldCBvPWUuY2xpcEJvdW5kcz9PYmplY3QuZnJlZXplKFsuLi5hLE1fKGUuY2xpcEJvdW5kcyldKTphO2ZvcihsZXQgbiBvZiBlLmJsb2NrcylJXyhuLmxheW91dCx7eFB0OmUuY29udGVudEJvdW5kcy54UHQrKG4ubGF5b3V0LmtpbmQ9PT1gdGFibGVgP24ubGF5b3V0LmZsb3dCb3VuZHMueFB0OjApLHlQdDplLmZsb3dCb3VuZHMueVB0K24ub2Zmc2V0UHQrKG4ubGF5b3V0LmtpbmQ9PT1gdGFibGVgP24ubGF5b3V0LmZsb3dCb3VuZHMueVB0OjApfSx0LG8scixpKX1mb3IobGV0IG4gb2YgZS5yZXNvbHZlZEZsb2F0aW5nVGFibGVzPz9bXSlMXyhuLHQsYSxyLGkpfWZ1bmN0aW9uIHpfKGUpe2xldCB0PWUuZHJhd2luZy5hbmNob3JMYXllcjtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7a2luZDpgZHJhd2luZ2AsbGF5ZXI6dC5iZWhpbmREb2M/YGJlaGluZFRleHRgOmBmcm9udGAsc291cmNlTGF5ZXI6ZS5yb290LmxheWVyLHJvb3ROb2RlSWQ6ZS5yb290Lm5vZGUuaWQsY29vcmRpbmF0ZVNwYWNlOmUucm9vdC5jb29yZGluYXRlU3BhY2UsZmxvd0RvbWFpbklkOmUucm9vdC5ub2RlLmZsb3dEb21haW5JZCxub2RlOmUuZHJhd2luZywuLi5lLm93bmVyP3tvd25lck5vZGVJZDplLm93bmVyLmlkfTp7fSx0ZXh0Qm94ZXM6ZS50ZXh0Qm94ZXMsZnJhbWVzOmUuZnJhbWVzLGxheW91dFRyYW5zbGF0aW9uUHQ6ZS5sYXlvdXRUcmFuc2xhdGlvblB0fSl9ZnVuY3Rpb24gQl8oZSx0KXtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7a2luZDpgbm9kZWAsbGF5ZXI6ZS5sYXllcixzb3VyY2VMYXllcjplLmxheWVyLHJvb3ROb2RlSWQ6ZS5ub2RlLmlkLGNvb3JkaW5hdGVTcGFjZTplLmNvb3JkaW5hdGVTcGFjZSxmbG93RG9tYWluSWQ6ZS5ub2RlLmZsb3dEb21haW5JZCxub2RlOmUubm9kZSxvbWl0QW5jaG9yZWREcmF3aW5nczp0fSl9ZnVuY3Rpb24gVl8oZSx0KXtyZXR1cm4gZS5kcmF3aW5nLmFuY2hvckxheWVyLnJlbGF0aXZlSGVpZ2h0LXQuZHJhd2luZy5hbmNob3JMYXllci5yZWxhdGl2ZUhlaWdodHx8ZS5kcmF3aW5nLmFuY2hvckxheWVyLnNvdXJjZU9yZGVyLXQuZHJhd2luZy5hbmNob3JMYXllci5zb3VyY2VPcmRlcnx8ZS5lbmNvdW50ZXJPcmRlci10LmVuY291bnRlck9yZGVyfWZ1bmN0aW9uIEhfKGUpe2xldCB0PVtdO2ZvcihsZXQgbiBvZiBlKUZfKG4ubm9kZSxuLE9iamVjdC5mcmVlemUoW10pLE9iamVjdC5mcmVlemUoe3hQdDowLHlQdDowfSksdCk7bGV0IG49dC5maWx0ZXIoKHtkcmF3aW5nOmV9KT0+ZS5hbmNob3JMYXllci5iZWhpbmREb2MpLnNvcnQoVl8pLm1hcCh6Xykscj10LmZpbHRlcigoe2RyYXdpbmc6ZX0pPT4hZS5hbmNob3JMYXllci5iZWhpbmREb2MpLnNvcnQoVl8pLm1hcCh6XyksaT1uZXcgU2V0KHQubWFwKCh7cm9vdDplfSk9PmUubm9kZSkpLGE9ZS5mbGF0TWFwKGU9PmUubm9kZS5raW5kPT09YGRyYXdpbmdgJiZlLm5vZGUuYW5jaG9yTGF5ZXI/W106W0JfKGUsaS5oYXMoZS5ub2RlKSldKTtyZXR1cm4gT2JqZWN0LmZyZWV6ZShbLi4ubiwuLi5hLC4uLnJdKX1mdW5jdGlvbiBVXyhlLHQpe3JldHVybiB0LmhhcyhlKXx8KHQuYWRkKGUpLGUua2luZD09PWBkcmF3aW5nYCk/ITE6ZS5raW5kPT09YHBhcmFncmFwaGA/ZS5saW5lcy5zb21lKGU9PmUucGxhY2VtZW50cy5zb21lKGU9PmUua2luZD09PWB0ZXh0YCYmZS5wYWludE9wcz8uc29tZShlPT5lLnZlcnRpY2FsRmVhdHVyZT09PSEwKT09PSEwKSl8fGUudGV4dEJveGVzLnNvbWUoZT0+VV8oZSx0KSk6ZS5raW5kPT09YHRleHRib3hgfHxlLmtpbmQ9PT1gbm90ZWA/ZS5zdG9yeS5ibG9ja3Muc29tZShlPT5VXyhlLHQpKTplLnJvd3Muc29tZShlPT5lLmNlbGxzLnNvbWUoZT0+ZS5ibG9ja3Muc29tZShlPT5VXyhlLmxheW91dCx0KSkpKXx8KGUucmVzb2x2ZWRGbG9hdGluZ1RhYmxlcz8/W10pLnNvbWUoZT0+VV8oZS5jaGlsZCx0KSl9ZnVuY3Rpb24gV18oZSl7bGV0IHQ9T2JqZWN0LmZyZWV6ZShlLm1hcCgoe2xheWVyOmUsbm9kZTp0LGNvb3JkaW5hdGVTcGFjZTpufSk9Pk9iamVjdC5mcmVlemUoe2xheWVyOmUsbm9kZTp0LGNvb3JkaW5hdGVTcGFjZTpuPz9gc2VjdGlvbi1sb2dpY2FsYH0pKSksbj1uZXcgTWFwKEFfLm1hcChlPT5bZSxbXV0pKTtmb3IobGV0IGUgb2YgdCluLmdldChlLmxheWVyKS5wdXNoKGUubm9kZSk7bGV0IHI9W107Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDspe2xldCBuPXRbZV0ubGF5ZXIsaT1lKzE7Zm9yKDt0W2ldPy5sYXllcj09PW47KWkrPTE7bGV0IGE9dC5zbGljZShlLGkpO249PT1gaGVhZGVyYHx8bj09PWBib2R5YHx8bj09PWBub3Rlc2B8fG49PT1gZm9vdGVyYD9yLnB1c2goLi4uSF8oYSkpOnIucHVzaCguLi5hLm1hcChlPT5CXyhlLCExKSkpLGU9aX1sZXQgaT1uZXcgU2V0O3JldHVybiBPYmplY3QuZnJlZXplKHtyb290czp0LHBhaW50T3JkZXI6T2JqZWN0LmZyZWV6ZShyKSxjYXBhYmlsaXRpZXM6T2JqZWN0LmZyZWV6ZSh7cmVxdWlyZXNFbGVtZW50QmFja2VkVmVydGljYWxHbHlwaFBhaW50OnQuc29tZSgoe25vZGU6ZX0pPT5VXyhlLGkpKX0pLGJhY2tncm91bmQ6T2JqZWN0LmZyZWV6ZShuLmdldChgYmFja2dyb3VuZGApKSxiZWhpbmRUZXh0Ok9iamVjdC5mcmVlemUobi5nZXQoYGJlaGluZFRleHRgKSksaGVhZGVyOk9iamVjdC5mcmVlemUobi5nZXQoYGhlYWRlcmApKSxib2R5Ok9iamVjdC5mcmVlemUobi5nZXQoYGJvZHlgKSksbm90ZXM6T2JqZWN0LmZyZWV6ZShuLmdldChgbm90ZXNgKSksZnJvbnQ6T2JqZWN0LmZyZWV6ZShuLmdldChgZnJvbnRgKSksZm9vdGVyOk9iamVjdC5mcmVlemUobi5nZXQoYGZvb3RlcmApKX0pfXZhciBHXz1jbGFzcyBleHRlbmRzIEVycm9ye2NvbnN0cnVjdG9yKGUpe3N1cGVyKGUpLHRoaXMubmFtZT1gUGFnZUdyYXBoRXJyb3JgfX07Y29uc3QgS189V187ZnVuY3Rpb24gcV8oZSx0LG4pe2xldCByPW5ldyBNYXAobi5tYXAoZT0+W2UuaWQsZV0pKTtpZihyLnNpemUhPT1uLmxlbmd0aHx8bi5sZW5ndGghPT1lW3RdLmxlbmd0aCl0aHJvdyBuZXcgR18oYFJlcGxhY2VtZW50ICR7dH0gbGF5ZXIgbXVzdCBwcmVzZXJ2ZSB1bmlxdWUgcGFpbnQgbm9kZSBpZGVudGl0aWVzYCk7cmV0dXJuIEtfKGUucm9vdHMubWFwKGU9PntpZihlLmxheWVyIT09dClyZXR1cm4gZTtsZXQgbj1yLmdldChlLm5vZGUuaWQpO2lmKCFuKXRocm93IG5ldyBHXyhgTWlzc2luZyByZXBsYWNlbWVudCBwYWludCBub2RlICR7ZS5ub2RlLmlkfWApO3JldHVybnsuLi5lLG5vZGU6bn19KSl9ZnVuY3Rpb24gSl8oZSl7cmV0dXJuIGUubGF5ZXJzLnJvb3RzfWZ1bmN0aW9uIFlfKGUpe2xldCB0PSExLG49ITE7Zm9yKGxldCByIG9mIGUubGF5ZXJzLnJvb3RzKWlmKHIubGF5ZXI9PT1gYm9keWApe2lmKG4pdGhyb3cgbmV3IEdfKGBQYWludCBzZXF1ZW5jZSBtdXN0IGNvbnRhaW4gb25lIGNvbnRpZ3VvdXMgYm9keSBwYWludCBydW47IHJlLWVudGVyZWQgYXQgJHtyLm5vZGUuaWR9YCk7dD0hMH1lbHNlIHQmJihuPSEwKTtsZXQgcj1uZXcgTWFwO2ZvcihsZXQgdCBvZiBlLmxheWVycy5yb290cyl7aWYoci5oYXModC5ub2RlLmlkKSl0aHJvdyBuZXcgR18oYER1cGxpY2F0ZSBwYWludCBub2RlICR7dC5ub2RlLmlkfWApO3Iuc2V0KHQubm9kZS5pZCx0KX1sZXQgaT1uZXcgTWFwO2ZvcihsZXQgdCBvZiBBXylmb3IobGV0IG4gb2YgZS5sYXllcnNbdF0pe2lmKGkuaGFzKG4uaWQpKXRocm93IG5ldyBHXyhgRHVwbGljYXRlIHNlbWFudGljIHBhZ2Ugbm9kZSAke24uaWR9YCk7aS5zZXQobi5pZCx7bGF5ZXI6dCxub2RlOm59KX1pZihpLnNpemUhPT1yLnNpemUpdGhyb3cgbmV3IEdfKGBTZW1hbnRpYyBwYWdlIGxheWVycyBkbyBub3QgbWF0Y2ggcmV0YWluZWQgcm9vdHNgKTtmb3IobGV0W2UsdF1vZiByKXtsZXQgbj1pLmdldChlKTtpZighbnx8bi5sYXllciE9PXQubGF5ZXJ8fG4ubm9kZSE9PXQubm9kZSl0aHJvdyBuZXcgR18oYFBhaW50IHJvb3QgJHtlfSBpcyBub3QgdGhlIHJldGFpbmVkICR7dC5sYXllcn0gbm9kZWApfWxldCBhPW5ldyBTZXQsbz1uZXcgU2V0O2ZvcihsZXQgdCBvZiBlLmxheWVycy5wYWludE9yZGVyKXtsZXQgZT1yLmdldCh0LnJvb3ROb2RlSWQpO2lmKCFlKXRocm93IG5ldyBHXyhgTWlzc2luZyBwYWludCByb290ICR7dC5yb290Tm9kZUlkfWApO2lmKGUubGF5ZXIhPT10LnNvdXJjZUxheWVyKXRocm93IG5ldyBHXyhgUGFpbnQgcm9vdCAke3Qucm9vdE5vZGVJZH0gYmVsb25ncyB0byAke2UubGF5ZXJ9LCBub3QgJHt0LnNvdXJjZUxheWVyfWApO2lmKGEuYWRkKHQucm9vdE5vZGVJZCksdC5raW5kPT09YG5vZGVgKXtpZih0Lm5vZGUhPT1lLm5vZGV8fHQubm9kZS5pZCE9PXQucm9vdE5vZGVJZCl0aHJvdyBuZXcgR18oYFBhaW50IHJvb3QgJHt0LnJvb3ROb2RlSWR9IGlzIG5vdCB0aGUgcmV0YWluZWQgJHt0LnNvdXJjZUxheWVyfSBub2RlYCk7Y29udGludWV9aWYoIXQubm9kZS5hbmNob3JMYXllcil0aHJvdyBuZXcgR18oYERyYXdpbmcgcGFpbnQgZW50cnkgJHt0Lm5vZGUuaWR9IGlzIG5vdCBhbmNob3JlZGApO2lmKG8uaGFzKHQubm9kZS5pZCkpdGhyb3cgbmV3IEdfKGBEdXBsaWNhdGUgZHJhd2luZyBwYWludCByZWZlcmVuY2UgJHt0Lm5vZGUuaWR9YCk7by5hZGQodC5ub2RlLmlkKX1pZihhLnNpemUhPT1yLnNpemUpdGhyb3cgbmV3IEdfKGBNaXNzaW5nIHBhaW50LW9yZGVyIHJlZmVyZW5jZSBmb3IgJHtbLi4uci5rZXlzKCldLmZpbmQoZT0+IWEuaGFzKGUpKT8/YDx1bmtub3duPmB9YCk7cmV0dXJuIGUubGF5ZXJzLnJvb3RzLm1hcCgoe25vZGU6ZX0pPT5lKX1jb25zdCBYXz1PYmplY3QuZnJlZXplKHtzdG9yeTpgYm9keWAsc3RvcnlJbnN0YW5jZTpgcGFyc2UtZXJyb3JgLHBhdGg6T2JqZWN0LmZyZWV6ZShbXSl9KTtmdW5jdGlvbiBaXyhlLHQsbixyLGkpe2xldCBhPWUudHJpbSgpLnNwbGl0KC9ccysvKS5maWx0ZXIoQm9vbGVhbiksbz1bXSxzPWBgLGM9ZT0+ci5zaGFwZSh7dGV4dDplLGZvbnRTaXplUHQ6bixmb250czp7fSxnZW5lcmljRmFtaWx5OmBzYW5zLXNlcmlmYH0pLmFkdmFuY2VQdCxsPWU9PntsZXQgbj1bMCwuLi5ObShlKSxlLmxlbmd0aF0uZmlsdGVyKChlLHQsbik9PnQ9PT0wfHxlIT09blt0LTFdKSxyPW4ubGVuZ3RoLTE7Zm9yKDtyPjAmJmMoYCR7ZS5zbGljZSgwLG5bcl0pfeKApmApPnQ7KS0tcjtyZXR1cm5gJHtlLnNsaWNlKDAsbltyXT8/MCl94oCmYH0sdT0oKT0+e28ubGVuZ3RoPT09MD9vLnB1c2gobChgYCkpOm9bby5sZW5ndGgtMV09bChvW28ubGVuZ3RoLTFdKX0sZD1lPT57bGV0IG49WzAsLi4uTm0oZSksZS5sZW5ndGhdLmZpbHRlcigoZSx0LG4pPT50PT09MHx8ZSE9PW5bdC0xXSkscj0wO2Zvcig7cjxuLmxlbmd0aC0xOyl7aWYoby5sZW5ndGg+PWkpcmV0dXJuIHUoKSwhMDtsZXQgYT1yKzE7Zm9yKDthPG4ubGVuZ3RoJiZjKGUuc2xpY2UobltyXSxuW2FdKSk8PXQ7KWErPTE7bGV0IHM9TWF0aC5tYXgocisxLGEtMSksZD1lLnNsaWNlKG5bcl0sbltzXSk7aWYoby5sZW5ndGg+PWktMSYmczxuLmxlbmd0aC0xKXJldHVybiBvLnB1c2gobChkKSksITA7by5wdXNoKGQpLHI9c31yZXR1cm4hMX07Zm9yKGxldCBlPTA7ZTxhLmxlbmd0aDtlKz0xKXtsZXQgbj1hW2VdLHI9cz9gJHtzfSAke259YDpuLGw9YyhyKTtpZihzJiZsPnQpe2lmKG8ucHVzaChzKSxzPWBgLG8ubGVuZ3RoPj1pKXt1KCk7YnJlYWt9aWYoYyhuKT50KXtpZihkKG4pKWJyZWFrfWVsc2Ugcz1ufWVsc2UgaWYoIXMmJmw+dCl7aWYoZChuKSlicmVha31lbHNlIHM9cjtpZihlPGEubGVuZ3RoLTEmJm8ubGVuZ3RoPj1pJiYhcyl7dSgpO2JyZWFrfX1yZXR1cm4gcyYmby5sZW5ndGg8aSYmby5wdXNoKHMpLG99ZnVuY3Rpb24gUV8oZSx0LG4pe2lmKCEodC53aWR0aFB0PjAmJnQuaGVpZ2h0UHQ+MCkpdGhyb3cgUmFuZ2VFcnJvcihgRXJyb3IgcGFnZSBzaXplIG11c3QgYmUgcG9zaXRpdmVgKTtsZXQgcj1NYXRoLm1heCgxOCxNYXRoLm1pbih0LndpZHRoUHQsdC5oZWlnaHRQdCkqLjA2KSxpPXt4UHQ6cix5UHQ6cix3aWR0aFB0OnQud2lkdGhQdC1yKjIsaGVpZ2h0UHQ6dC5oZWlnaHRQdC1yKjJ9LGE9TWF0aC5tYXgoOCxNYXRoLm1pbih0LndpZHRoUHQsdC5oZWlnaHRQdCkqLjAyKSxvPW4ucmVzb2x2ZSh7Zm9udHM6e30sc2xvdDpgYXNjaWlgLGdlbmVyaWNGYW1pbHk6YHNhbnMtc2VyaWZgfSkucm91dGUscz1aXyhlLHQud2lkdGhQdC1yKjQsYSxuLDQpLGM9YSoxLjQsbD1be2tpbmQ6YGZpbGwtcmVjdGAscmVjdDp7eFB0OjAseVB0OjAsd2lkdGhQdDp0LndpZHRoUHQsaGVpZ2h0UHQ6dC5oZWlnaHRQdH0sZmlsbDpgI2ZmZmZmZmB9LHtraW5kOmBzdHJva2UtcmVjdGAscmVjdDppLHN0cm9rZTpgI2M4Y2NkMmAsbGluZVdpZHRoUHQ6MSxkYXNoUHQ6WzYsNV19LHtraW5kOmB0ZXh0YCxyZWN0Ont4UHQ6MCx5UHQ6dC5oZWlnaHRQdCouMjcsd2lkdGhQdDp0LndpZHRoUHQsaGVpZ2h0UHQ6MzZ9LHRleHQ6YOKaoGAsZmlsbDpgI2IyM2IzYmAsZm9udFJvdXRlOm8sZm9udFNpemVQdDoyOCxmb250V2VpZ2h0OjQwMCxmb250U3R5bGU6YG5vcm1hbGAsYWxpZ246YGNlbnRlcmAsYmFzZWxpbmU6YG1pZGRsZWB9LHtraW5kOmB0ZXh0YCxyZWN0Ont4UHQ6cioyLHlQdDp0LmhlaWdodFB0Ki40LHdpZHRoUHQ6dC53aWR0aFB0LXIqNCxoZWlnaHRQdDoyNH0sdGV4dDpgVGhpcyBkb2N1bWVudCBjb3VsZCBub3QgYmUgZGlzcGxheWVkYCxmaWxsOmAjMzMzMzMzYCxmb250Um91dGU6byxmb250U2l6ZVB0OjEzLGZvbnRXZWlnaHQ6NjAwLGZvbnRTdHlsZTpgbm9ybWFsYCxhbGlnbjpgY2VudGVyYCxiYXNlbGluZTpgbWlkZGxlYH0sLi4ucy5tYXAoKGUsbik9Pih7a2luZDpgdGV4dGAscmVjdDp7eFB0OnIqMix5UHQ6dC5oZWlnaHRQdCouNStjKm4sd2lkdGhQdDp0LndpZHRoUHQtcio0LGhlaWdodFB0OmN9LHRleHQ6ZSxmaWxsOmAjNjY2NjY2YCxmb250Um91dGU6byxmb250U2l6ZVB0OmEsZm9udFdlaWdodDo0MDAsZm9udFN0eWxlOmBub3JtYWxgLGFsaWduOmBjZW50ZXJgLGJhc2VsaW5lOmBtaWRkbGVgfSkpXSx1PXtraW5kOmBkcmF3aW5nYCxpZDpgcGFyc2UtZXJyb3ItcGFnZWAsc291cmNlOlhfLGZsb3dEb21haW5JZDpgcGFyc2UtZXJyb3JgLGZsb3dCb3VuZHM6aSxpbmtCb3VuZHM6aSxhZHZhbmNlUHQ6aS5oZWlnaHRQdCxvcmRpbmFyeUZsb3c6ITEsY29tbWFuZHM6bH0sZD17Z2VvbWV0cnk6e3BhZ2VXaWR0aDp0LndpZHRoUHQscGFnZUhlaWdodDp0LmhlaWdodFB0LG1hcmdpblRvcDpyLG1hcmdpblJpZ2h0OnIsbWFyZ2luQm90dG9tOnIsbWFyZ2luTGVmdDpyLGhlYWRlckRpc3RhbmNlOjAsZm9vdGVyRGlzdGFuY2U6MH0sY29sdW1uczpbe3hQdDpyLHdQdDppLndpZHRoUHR9XSxjb2x1bW5TZXBhcmF0b3I6ITEsZ3JpZDp7a2luZDpgbm9uZWAsbGluZVBpdGNoUHQ6bnVsbCxjaGFyU3BhY2VQdDpudWxsfSx0ZXh0RGlyZWN0aW9uOmBsclRiYCx2ZXJ0aWNhbEFsaWdubWVudDpgdG9wYH07cmV0dXJue3BhZ2VzOlt7cGFnZUluZGV4OjAsZ2VvbWV0cnk6e3hQdDowLHlQdDowLHdpZHRoUHQ6dC53aWR0aFB0LGhlaWdodFB0OnQuaGVpZ2h0UHQsY29udGVudFRvcFB0OnIsY29udGVudEJvdHRvbVB0OnQuaGVpZ2h0UHQtcn0sZmxvd0RvbWFpbnM6W3tpZDpgcGFyc2UtZXJyb3JgLGtpbmQ6YGJvZHlgLGxvZ2ljYWxCb3VuZHM6aSxwaHlzaWNhbEJvdW5kczppfV0sc2VjdGlvbjpkLHNlY3Rpb25PY2N1cnJlbmNlSWQ6YHBhcnNlLWVycm9yLXNlY3Rpb25gLHBhZ2VCb3JkZXI6bnVsbCxwYXJpdHlCbGFuazohMSxib29rbWFya1N0YXJ0czpbXSxwYWdlTnVtYmVyOntkaXNwbGF5TnVtYmVyOjEsZm9ybWF0OmBkZWNpbWFsYCxzZWN0aW9uT2NjdXJyZW5jZUlkOmBwYXJzZS1lcnJvci1zZWN0aW9uYH0sY29sdW1uU2VwYXJhdG9yczpbXSxzZWN0aW9uUmVnaW9uczpbe2lkOmBwYXJzZS1lcnJvci1yZWdpb25gLHNlY3Rpb25PY2N1cnJlbmNlSWQ6YHBhcnNlLWVycm9yLXNlY3Rpb25gLGNvb3JkaW5hdGVTcGFjZTp7d3JpdGluZ01vZGU6YGhvcml6b250YWwtdGJgLGxvZ2ljYWxUb1BoeXNpY2FsOnthOjEsYjowLGM6MCxkOjEsZTowLGY6MH0scGh5c2ljYWxUb0xvZ2ljYWw6e2E6MSxiOjAsYzowLGQ6MSxlOjAsZjowfX0sYmxvY2tTdGFydFB0OnIsYmxvY2tFbmRQdDp0LmhlaWdodFB0LXIsY29sdW1uRmxvd0RpcmVjdGlvbjpgbHRyYCxjb2x1bW5JbmRleGVzOlswXSxmbG93RG9tYWluSWRzOltgcGFyc2UtZXJyb3JgXSxzZWN0aW9uOmR9XSxsYXllcnM6S18oW3tsYXllcjpgYm9keWAsbm9kZTp1fV0pLHJlYWRpbmdPcmRlcjpbdS5pZF19XSxkaWFnbm9zdGljczpbe2NvZGU6YFVOU1VQUE9SVEVEX0ZFQVRVUkVgLHNldmVyaXR5OmBlcnJvcmAsc291cmNlOlhfLG1lc3NhZ2U6ZX1dfX1mdW5jdGlvbiAkXyhlLHQpe2xldCBuPWU9PW51bGw/dDp0eXBlb2YgZT09YG51bWJlcmA/ZTplLmdldFRpbWUoKTtpZighTnVtYmVyLmlzRmluaXRlKG4pKXRocm93IFJhbmdlRXJyb3IoYGN1cnJlbnREYXRlIG11c3QgcmVzb2x2ZSB0byBmaW5pdGUgZXBvY2ggbWlsbGlzZWNvbmRzYCk7cmV0dXJuIE9iamVjdC5mcmVlemUoe2N1cnJlbnREYXRlTXM6bn0pfWZ1bmN0aW9uIGV2KGUpe3JldHVybiAkXyhlLmN1cnJlbnREYXRlLGUuZGVmYXVsdEN1cnJlbnREYXRlTXMpfWZ1bmN0aW9uIHR2KGUsdCl7cmV0dXJuIERnKGBsYXlvdXRgLHtjdXJyZW50RGF0ZU1zOmUuY3VycmVudERhdGVNcyx0ZXh0OnQudGV4dC5maW5nZXJwcmludCxpbWFnZXM6dC5pbWFnZXMuZmluZ2VycHJpbnQsbWF0aDp0Lm1hdGguZmluZ2VycHJpbnQsdmVydGljYWxHbHlwaHM6dC52ZXJ0aWNhbEdseXBoRmluZ2VycHJpbnQ/P251bGx9KX1jb25zdCBudj1PYmplY3QuZnJlZXplKHtVTlNVUFBPUlRFRF9URVhUX0VGRkVDVDpPYmplY3QuZnJlZXplKHtzZXZlcml0eTpgd2FybmluZ2AsbGF5b3V0Q29kZTpgVU5TVVBQT1JURURfRkVBVFVSRWAsbWVzc2FnZTpgV29yZHByb2Nlc3NpbmdNTCB0ZXh0IGVmZmVjdHMgYXJlIG5vdCByZW5kZXJlZGB9KSxJTlZBTElEX1RFWFRfRUZGRUNUX1ZBTFVFOk9iamVjdC5mcmVlemUoe3NldmVyaXR5OmB3YXJuaW5nYCxsYXlvdXRDb2RlOmBJTlZBTElEX1ZBTFVFYCxtZXNzYWdlOmBBbiBpbnZhbGlkIFdvcmRwcm9jZXNzaW5nTUwgdGV4dC1lZmZlY3QgdmFsdWUgd2FzIGlnbm9yZWRgfSksTUlTU0lOR19EUkFXSU5HX0VYVEVOVDpPYmplY3QuZnJlZXplKHtzZXZlcml0eTpgZXJyb3JgLGxheW91dENvZGU6YElOVkFMSURfR0VPTUVUUllgLG1lc3NhZ2U6YEEgZHJhd2luZyB3aXRoIGEgbWlzc2luZyByZXF1aXJlZCBleHRlbnQgd2FzIG9taXR0ZWRgfSksSU5WQUxJRF9EUkFXSU5HX0VYVEVOVDpPYmplY3QuZnJlZXplKHtzZXZlcml0eTpgZXJyb3JgLGxheW91dENvZGU6YElOVkFMSURfR0VPTUVUUllgLG1lc3NhZ2U6YEEgZHJhd2luZyB3aXRoIGFuIGludmFsaWQgZXh0ZW50IHdhcyBvbWl0dGVkYH0pLERFR0VORVJBVEVfRFJBV0lOR19FWFRFTlQ6T2JqZWN0LmZyZWV6ZSh7c2V2ZXJpdHk6YHdhcm5pbmdgLGxheW91dENvZGU6YElOVkFMSURfR0VPTUVUUllgLG1lc3NhZ2U6YEEgZHJhd2luZyBoYXMgYSBzY2hlbWEtdmFsaWQgemVyby1hcmVhIGV4dGVudGB9KX0pLHJ2PU9iamVjdC5mcmVlemUoe2NvZGU6YElOVkFMSURfVkFMVUVgLHNldmVyaXR5OmB3YXJuaW5nYCxtZXNzYWdlOmBUaGUgcGFyc2VyIGRpYWdub3N0aWMgY29udHJhY3QgZGlkIG5vdCBtYXRjaCB0aGlzIHJlbmRlcmVyIGJ1aWxkYH0pO2Z1bmN0aW9uIGl2KGUpe3JldHVybiB0eXBlb2YgZT09YG9iamVjdGAmJiEhZSYmIUFycmF5LmlzQXJyYXkoZSl9ZnVuY3Rpb24gYXYoZSx0KXtpZighQXJyYXkuaXNBcnJheShlKXx8IWUuZXZlcnkoZT0+TnVtYmVyLmlzU2FmZUludGVnZXIoZSkmJmU+PTApKXJldHVybiExO2xldFtuXT1lO3JldHVybiBuPT09dm9pZCAwfHxuPHR9ZnVuY3Rpb24gb3YoZSl7cmV0dXJuIE9iamVjdC5mcmVlemUoe3N0b3J5OmBib2R5YCxzdG9yeUluc3RhbmNlOmBib2R5YCxwYXRoOk9iamVjdC5mcmVlemUoWy4uLmVdKX0pfWZ1bmN0aW9uIHN2KGUsdCl7aWYoZT09PXZvaWQgMClyZXR1cm4gT2JqZWN0LmZyZWV6ZShbXSk7aWYoIUFycmF5LmlzQXJyYXkoZSkpcmV0dXJuIE9iamVjdC5mcmVlemUoW3J2XSk7bGV0IG49W10scj0hMTtmb3IobGV0IGkgb2YgZSl7aWYoIWl2KGkpfHx0eXBlb2YgaS5jb2RlIT1gc3RyaW5nYHx8IU9iamVjdC5oYXNPd24obnYsaS5jb2RlKXx8aS5wYXJ0IT09YHdvcmQvZG9jdW1lbnQueG1sYHx8IWF2KGkucGF0aCx0KSl7cj0hMDtjb250aW51ZX1sZXQgZT1udltpLmNvZGVdO2lmKGkuc2V2ZXJpdHkhPT1lLnNldmVyaXR5KXtyPSEwO2NvbnRpbnVlfW4ucHVzaChPYmplY3QuZnJlZXplKHtjb2RlOmUubGF5b3V0Q29kZSxzZXZlcml0eTplLnNldmVyaXR5LHNvdXJjZTpvdihpLnBhdGgpLG1lc3NhZ2U6ZS5tZXNzYWdlfSkpfXJldHVybiByJiZuLnB1c2gocnYpLE9iamVjdC5mcmVlemUobil9dmFyIFo9Y2xhc3MgZXh0ZW5kcyBFcnJvcntjb2RlO2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoYCR7ZX06ICR7dH1gKSx0aGlzLm5hbWU9YExheW91dEludmFyaWFudEVycm9yYCx0aGlzLmNvZGU9ZX19O2Z1bmN0aW9uIGN2KGUpe3N3aXRjaChlKXtjYXNlYHRiYDpjYXNlYHRiVmA6Y2FzZWBsclRiYDpjYXNlYGxyVGJWYDpyZXR1cm5gaG9yaXpvbnRhbC10YmA7Y2FzZWBybGA6Y2FzZWBybFZgOmNhc2VgdGJSbGA6Y2FzZWB0YlJsVmA6cmV0dXJuYHZlcnRpY2FsLXJsYDtjYXNlYGJ0THJgOnJldHVybmB2ZXJ0aWNhbC1ybGA7Y2FzZWBscmA6Y2FzZWBsclZgOmNhc2VgdGJMclZgOnJldHVybmB2ZXJ0aWNhbC1scmA7ZGVmYXVsdDp0aHJvdyBSYW5nZUVycm9yKGBVbnN1cHBvcnRlZCBUcmFuc2l0aW9uYWwgdGV4dCBkaXJlY3Rpb24gJHtKU09OLnN0cmluZ2lmeShlKX1gKX19ZnVuY3Rpb24gbHYoZSl7aWYoIU51bWJlci5pc0Zpbml0ZShlLndpZHRoUHQpfHwhTnVtYmVyLmlzRmluaXRlKGUuaGVpZ2h0UHQpfHxlLndpZHRoUHQ8PTB8fGUuaGVpZ2h0UHQ8PTApdGhyb3cgUmFuZ2VFcnJvcihgUGh5c2ljYWwgcGFnZSBleHRlbnRzIG11c3QgYmUgcG9zaXRpdmUgYW5kIGZpbml0ZWApfWZ1bmN0aW9uIHV2KGUpe2lmKCFOdW1iZXIuaXNGaW5pdGUoZS54UHQpfHwhTnVtYmVyLmlzRmluaXRlKGUueVB0KSl0aHJvdyBSYW5nZUVycm9yKGBQb2ludCBjb29yZGluYXRlcyBtdXN0IGJlIGZpbml0ZWApfWZ1bmN0aW9uIGR2KGUpe2lmKCFbZS5hLGUuYixlLmMsZS5kLGUuZSxlLmZdLmV2ZXJ5KE51bWJlci5pc0Zpbml0ZSkpdGhyb3cgUmFuZ2VFcnJvcihgTWF0cml4IGNvZWZmaWNpZW50cyBtdXN0IGJlIGZpbml0ZWApfWZ1bmN0aW9uIGZ2KGUpe2lmKHV2KGUpLCFOdW1iZXIuaXNGaW5pdGUoZS53aWR0aFB0KXx8IU51bWJlci5pc0Zpbml0ZShlLmhlaWdodFB0KXx8ZS53aWR0aFB0PDB8fGUuaGVpZ2h0UHQ8MCl0aHJvdyBSYW5nZUVycm9yKGBSZWN0YW5nbGUgZXh0ZW50cyBtdXN0IGJlIGZpbml0ZSBhbmQgbm9uLW5lZ2F0aXZlYCl9ZnVuY3Rpb24gcHYoZSx0KXtzd2l0Y2gobHYoZSksdCl7Y2FzZWBob3Jpem9udGFsLXRiYDpyZXR1cm57d2lkdGhQdDplLndpZHRoUHQsaGVpZ2h0UHQ6ZS5oZWlnaHRQdH07Y2FzZWB2ZXJ0aWNhbC1ybGA6Y2FzZWB2ZXJ0aWNhbC1scmA6cmV0dXJue3dpZHRoUHQ6ZS5oZWlnaHRQdCxoZWlnaHRQdDplLndpZHRoUHR9O2RlZmF1bHQ6dGhyb3cgUmFuZ2VFcnJvcihgVW5zdXBwb3J0ZWQgd3JpdGluZyBtb2RlICR7U3RyaW5nKHQpfWApfX1mdW5jdGlvbiBtdihlLHQpe3N3aXRjaChsdihlKSx0KXtjYXNlYGhvcml6b250YWwtdGJgOnJldHVybnt3aWR0aFB0OmUud2lkdGhQdCxoZWlnaHRQdDplLmhlaWdodFB0fTtjYXNlYHZlcnRpY2FsLXJsYDpjYXNlYHZlcnRpY2FsLWxyYDpyZXR1cm57d2lkdGhQdDplLmhlaWdodFB0LGhlaWdodFB0OmUud2lkdGhQdH07ZGVmYXVsdDp0aHJvdyBSYW5nZUVycm9yKGBVbnN1cHBvcnRlZCB3cml0aW5nIG1vZGUgJHtTdHJpbmcodCl9YCl9fWZ1bmN0aW9uIGh2KGUsdCl7c3dpdGNoKGx2KHQpLGUpe2Nhc2VgaG9yaXpvbnRhbC10YmA6cmV0dXJue2E6MSxiOjAsYzowLGQ6MSxlOjAsZjowfTtjYXNlYHZlcnRpY2FsLXJsYDpyZXR1cm57YTowLGI6MSxjOi0xLGQ6MCxlOnQud2lkdGhQdCxmOjB9O2Nhc2VgdmVydGljYWwtbHJgOnJldHVybnthOjAsYjoxLGM6MSxkOjAsZTowLGY6MH07ZGVmYXVsdDp0aHJvdyBSYW5nZUVycm9yKGBVbnN1cHBvcnRlZCB3cml0aW5nIG1vZGUgJHtTdHJpbmcoZSl9YCl9fWZ1bmN0aW9uIGd2KGUsdCl7c3dpdGNoKGx2KHQpLGUpe2Nhc2VgaG9yaXpvbnRhbC10YmA6cmV0dXJue2E6MSxiOjAsYzowLGQ6MSxlOjAsZjowfTtjYXNlYHZlcnRpY2FsLXJsYDpyZXR1cm57YTowLGI6LTEsYzoxLGQ6MCxlOjAsZjp0LndpZHRoUHR9O2Nhc2VgdmVydGljYWwtbHJgOnJldHVybnthOjAsYjoxLGM6MSxkOjAsZTowLGY6MH07ZGVmYXVsdDp0aHJvdyBSYW5nZUVycm9yKGBVbnN1cHBvcnRlZCB3cml0aW5nIG1vZGUgJHtTdHJpbmcoZSl9YCl9fWZ1bmN0aW9uIF92KGUsdCl7cmV0dXJuIGR2KGUpLHV2KHQpLHt4UHQ6ZS5hKnQueFB0K2UuYyp0LnlQdCtlLmUseVB0OmUuYip0LnhQdCtlLmQqdC55UHQrZS5mfX1mdW5jdGlvbiB2dihlLHQpe2Z2KHQpO2xldCBuPVtfdihlLHQpLF92KGUse3hQdDp0LnhQdCt0LndpZHRoUHQseVB0OnQueVB0fSksX3YoZSx7eFB0OnQueFB0LHlQdDp0LnlQdCt0LmhlaWdodFB0fSksX3YoZSx7eFB0OnQueFB0K3Qud2lkdGhQdCx5UHQ6dC55UHQrdC5oZWlnaHRQdH0pXSxyPW4ubWFwKCh7eFB0OmV9KT0+ZSksaT1uLm1hcCgoe3lQdDplfSk9PmUpLGE9TWF0aC5taW4oLi4uciksbz1NYXRoLm1pbiguLi5pKTtyZXR1cm57eFB0OmEseVB0Om8sd2lkdGhQdDpNYXRoLm1heCguLi5yKS1hLGhlaWdodFB0Ok1hdGgubWF4KC4uLmkpLW99fWZ1bmN0aW9uIHl2KGUsdCl7ZHYoZSk7bGV0IG49X3YoZSx7eFB0OjAseVB0OjB9KSxyPXt0b3A6e3hQdDowLHlQdDotMX0scmlnaHQ6e3hQdDoxLHlQdDowfSxib3R0b206e3hQdDowLHlQdDoxfSxsZWZ0Ont4UHQ6LTEseVB0OjB9fSxpPXt9LGE9bmV3IFNldDtmb3IobGV0IG8gb2ZbYHRvcGAsYHJpZ2h0YCxgYm90dG9tYCxgbGVmdGBdKXtsZXQgcz1fdihlLHJbb10pLGM9cy54UHQtbi54UHQsbD1zLnlQdC1uLnlQdCx1PWw9PT0wJiZjIT09MD9jPjA/YHJpZ2h0YDpgbGVmdGA6Yz09PTAmJmwhPT0wP2w+MD9gYm90dG9tYDpgdG9wYDpudWxsO2lmKHU9PT1udWxsfHxhLmhhcyh1KSl0aHJvdyBSYW5nZUVycm9yKGBFZGdlIHRyYW5zZm9ybXMgcmVxdWlyZSBhIG5vbi1kZWdlbmVyYXRlIGF4aXMtYWxpZ25lZCBtYXRyaXhgKTtpW3VdPXRbb10sYS5hZGQodSl9aWYoYS5zaXplIT09NCl0aHJvdyBSYW5nZUVycm9yKGBFZGdlIHRyYW5zZm9ybSBtdXN0IG1hcCBldmVyeSBwaHlzaWNhbCBlZGdlIGV4YWN0bHkgb25jZWApO3JldHVybiBpfWZ1bmN0aW9uIGJ2KGUsdCl7cmV0dXJue3dyaXRpbmdNb2RlOmUsbG9naWNhbFRvUGh5c2ljYWw6aHYoZSx0KSxwaHlzaWNhbFRvTG9naWNhbDpndihlLHQpfX1mdW5jdGlvbiB4dihlKXtyZXR1cm4gT2JqZWN0LmZyZWV6ZShlKX1mdW5jdGlvbiBTdihlKXtsZXQgdD1bXTtmb3IobGV0IG4gb2YgZSl7bGV0e2NvbHVtbnM6ZSxjb2x1bW5TZXBhcmF0b3I6cn09bi5zZWN0aW9uO2lmKCFyfHxlLmxlbmd0aDwyfHxuLmJsb2NrRW5kUHQ8PW4uYmxvY2tTdGFydFB0KWNvbnRpbnVlO2xldCBpPW5ldyBTZXQobi5jb2x1bW5JbmRleGVzKSxhPW4uY29sdW1uRmxvd0RpcmVjdGlvbj09PWBydGxgP2UubWFwKChlLHQpPT50KS5yZXZlcnNlKCk6ZS5tYXAoKGUsdCk9PnQpO2ZvcihsZXQgcj0wO3I8YS5sZW5ndGgtMTtyKz0xKXtsZXQgbz1hW3JdO2lmKCFpLmhhcyhvKSljb250aW51ZTtsZXQgcz1hW3IrMV0sYz1NYXRoLm1pbihvLHMpLGw9TWF0aC5tYXgobyxzKSx1PWVbY10sZD1lW2xdLGY9KHUueFB0K3Uud1B0K2QueFB0KS8yO3QucHVzaChPYmplY3QuZnJlZXplKHtzdGFydDp4dihfdihuLmNvb3JkaW5hdGVTcGFjZS5sb2dpY2FsVG9QaHlzaWNhbCx7eFB0OmYseVB0Om4uYmxvY2tTdGFydFB0fSkpLGVuZDp4dihfdihuLmNvb3JkaW5hdGVTcGFjZS5sb2dpY2FsVG9QaHlzaWNhbCx7eFB0OmYseVB0Om4uYmxvY2tFbmRQdH0pKX0pKX19cmV0dXJuIE9iamVjdC5mcmVlemUodCl9ZnVuY3Rpb24gQ3YoZSx0KXtsZXQgbj1EbihlLHQpLHI9ZT09PWB0cmlwbGVgfHwvXig/OnRoaW5UaGlja3x0aGlja1RoaW58dGhpblRoaWNrVGhpbikoPzpTbWFsbHxNZWRpdW18TGFyZ2UpR2FwJC8udGVzdChlKTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7YXV0aG9yZWRTdHlsZTplLHN0eWxlOmU9PT1gZG91YmxlYD9gZG91YmxlYDpyP2Bjb21wb3VuZGA6bi5sZW5ndGg+MD9gZGFzaGVkYDplLmluY2x1ZGVzKGB3YXZlYCk/YHdhdnlgOmBzb2xpZGAsZGFzaFBhdHRlcm5QdDpPYmplY3QuZnJlZXplKG4pfSl9ZnVuY3Rpb24gd3YoZSx0KXtsZXQgbj0oZS5zbWFsbENhcHM/TWF0aC5tYXgoZS5mb250U2l6ZS0yLDEpOmUuZm9udFNpemUpKnQ7cmV0dXJuIGUudmVydEFsaWduJiYobio9LjY1KSxufWNvbnN0IFR2PS9b4YSALeGHv+K6gC3iv5/jgIAt44C/44GALeODv+OEsC3jho/jkIAt5La/5LiALem/v+qloC3qpb/qsIAt7Z+/76SALe+rv++8gC3vv69dL3U7ZnVuY3Rpb24gRXYoZSx0LG4pe2xldCByPW51bGwsaT0wO2ZvcihsZXQgbiBvZiB0KW4uYWxpZ25tZW50IT09YGJhcmAmJihuLnBvcz5pJiYoaT1uLnBvcyksbi5wb3M+ZSYmKHI9PT1udWxsfHxuLnBvczxyLnBvcykmJihyPW4pKTtsZXQgYT1udWxsO2lmKG4+MCl7bGV0IHQ9TWF0aC5jZWlsKChNYXRoLm1heChlLGkpKzFlLTYpL24pKm47dDw9ZSYmKHQrPW4pLGE9e3Bvczp0LGFsaWdubWVudDpgbGVmdGB9fXJldHVybiByJiZhP3IucG9zPD1hLnBvcz9yOmE6cj8/YX1mdW5jdGlvbiBEdihlLHQsbil7cmV0dXJuIEV2KGUsdCxuKX1mdW5jdGlvbiBPdihlLHQpe2xldCBuPXQ9PT1gdmVydGB8fHQ9PT1gdmVydDI3MGB8fHQ9PT1gZWFWZXJ0YHx8dD09PWBtb25nb2xpYW5WZXJ0YDtyZXR1cm57dHlwZTpgdGV4dGAsdGV4dDplLnRleHQsYm9sZDplLmJvbGQ/PyExLGl0YWxpYzplLml0YWxpYz8/ITEsdW5kZXJsaW5lOiExLHN0cmlrZXRocm91Z2g6ITEsZm9udFNpemU6ZS5mb250U2l6ZVB0LGNvbG9yOmUuY29sb3I/P251bGwsZm9udEZhbWlseTplLmZvbnRGYW1pbHk/P251bGwsZm9udEZhbWlseUVhc3RBc2lhOmUuZm9udEZhbWlseUVhc3RBc2lhPz9udWxsLGlzTGluazohMSxiYWNrZ3JvdW5kOm51bGwsdmVydEFsaWduOm51bGwsaHlwZXJsaW5rOm51bGwscnVieTplLnJ1Ynk/P3ZvaWQgMCx0ZXh0Qm94TGluZUZsb29yOiEwLHRleHRCb3hWZXJ0aWNhbDpufX1mdW5jdGlvbiBrdihlLHQ9e30sbj17fSl7aWYoIWUpcmV0dXJuYHNhbnMtc2VyaWZgO2xldCByPXRbZV07cmV0dXJuIHI9PT1gcm9tYW5gP2BzZXJpZmA6cj09PWBzd2lzc2A/YHNhbnMtc2VyaWZgOnI9PT1gbW9kZXJuYCYmbltlXT09PWBmaXhlZGA/YG1vbm9zcGFjZWA6YHNhbnMtc2VyaWZgfWNvbnN0IEF2PVN5bWJvbChgZG9jeC5sb2NhbE1ldHJpY1NuYXBzaG90YCk7ZnVuY3Rpb24ganYoZT17fSl7aWYoZVtBdl0pcmV0dXJuIGU7bGV0IHQ9T2JqZWN0LmVudHJpZXMoZSkubWFwKChbZSx0XSk9PntpZighdC5mYW1pbHk/LnRyaW0oKSl0aHJvdyBUeXBlRXJyb3IoYExvY2FsIG1ldHJpYyAke2V9IHJlcXVpcmVzIGEgZmFtaWx5YCk7aWYodC5saW5lSGVpZ2h0UmF0aW8hPT12b2lkIDAmJighTnVtYmVyLmlzRmluaXRlKHQubGluZUhlaWdodFJhdGlvKXx8dC5saW5lSGVpZ2h0UmF0aW88MCkpdGhyb3cgUmFuZ2VFcnJvcihgTG9jYWwgbWV0cmljICR7ZX0gbGluZUhlaWdodFJhdGlvIG11c3QgYmUgZmluaXRlIGFuZCBub24tbmVnYXRpdmVgKTtpZih0LndlaWdodCE9PXZvaWQgMCYmKCFOdW1iZXIuaXNGaW5pdGUodC53ZWlnaHQpfHx0LndlaWdodDwxfHx0LndlaWdodD4xZTMpKXRocm93IFJhbmdlRXJyb3IoYExvY2FsIG1ldHJpYyAke2V9IHdlaWdodCBtdXN0IGJlIGZpbml0ZSBhbmQgYmV0d2VlbiAxIGFuZCAxMDAwYCk7bGV0IG49e2ZhbWlseTp0LmZhbWlseSwuLi50LmxpbmVIZWlnaHRSYXRpbz09PXZvaWQgMD97fTp7bGluZUhlaWdodFJhdGlvOnQubGluZUhlaWdodFJhdGlvfSwuLi50LnJlcXVlc3RlZEZhbWlseT09PXZvaWQgMD97fTp7cmVxdWVzdGVkRmFtaWx5OnQucmVxdWVzdGVkRmFtaWx5fSwuLi50LndlaWdodD09PXZvaWQgMD97fTp7d2VpZ2h0OnQud2VpZ2h0fSwuLi50LnN0eWxlPT09dm9pZCAwP3t9OntzdHlsZTp0LnN0eWxlfSwuLi50LnNvdXJjZUlkZW50aXR5PT09dm9pZCAwP3t9Ontzb3VyY2VJZGVudGl0eTp0LnNvdXJjZUlkZW50aXR5fSwuLi50LnN5bnRoZXNpemVkPT09dm9pZCAwP3t9OntzeW50aGVzaXplZDp0LnN5bnRoZXNpemVkfX07cmV0dXJuW3BnKGUpLE9iamVjdC5mcmVlemUobildfSkuc29ydCgoW2VdLFt0XSk9PmUubG9jYWxlQ29tcGFyZSh0KSksbj1PYmplY3QuZnJvbUVudHJpZXModCk7cmV0dXJuIE9iamVjdC5kZWZpbmVQcm9wZXJ0eShuLEF2LHt2YWx1ZTohMH0pLE9iamVjdC5mcmVlemUobil9Y29uc3QgTXY9bmV3IFNldChbMTYxLDE2NCwxNjcsMTY4LDE3MCwxNzMsMTc1LDE3NiwxNzcsMTc4LDE3OSwxODAsMTgyLDE4MywxODQsMTg1LDE4NiwxODgsMTg5LDE5MCwxOTEsMjE1LDI0N10pLE52PW5ldyBTZXQoWzIyNCwyMjUsMjMyLDIzMywyMzQsMjM2LDIzNywyNDIsMjQzLDI0OSwyNTAsMjUyXSk7ZnVuY3Rpb24gUHYoZSx0LG4scixpKXtsZXQgYT1uPT09YGVhc3RBc2lhYCxvPXI/LnNwbGl0KC9bLV9dLywxKVswXT8udG9Mb3dlckNhc2UoKT09PWB6aGAscz0vXig/Ojg2fDg4KSQvaS50ZXN0KGk/LnRyaW0oKT8/YGApLGM9YGhpZ2hBbnNpYDtyZXR1cm4gZTw9MTI3P2M9YGFzY2lpYDplPD0yNTU/Yz1hJiYoTXYuaGFzKGUpfHxvJiZOdi5oYXMoZSkpP2BlYXN0QXNpYWA6YGhpZ2hBbnNpYDplPj0yNTYmJmU8PTY4Nz9jPWEmJihvfHxzKT9gZWFzdEFzaWFgOmBoaWdoQW5zaWA6ZT49Njg4JiZlPD03Njd8fGU+PTc2OCYmZTw9ODc5fHxlPj04ODAmJmU8PTk3NXx8ZT49MTAyNCYmZTw9MTI3OT9jPWE/YGVhc3RBc2lhYDpgaGlnaEFuc2lgOmU+PTE0MjQmJmU8PTE5ODN8fGU+PTY0Mjg1JiZlPD02NTAyM3x8ZT49NjUxMzYmJmU8PTY1Mjc4P2M9YGFzY2lpYDplPj00MzUyJiZlPD00NjA3fHxlPj0xMTkwNCYmZTw9MTIwMzF8fGU+PTEyMDMyJiZlPD0xMjI1NXx8ZT49MTIyNzImJmU8PTEyNjg3fHxlPj0xMjY4OCYmZTw9MTI3MDN8fGU+PTEyODAwJiZlPD0xOTkwM3x8ZT49MTk5NjgmJmU8PTQwODc5fHxlPj00MDk2MCYmZTw9NDIxMjd8fGU+PTQyMTI4JiZlPD00MjE5MXx8ZT49NDQwMzImJmU8PTU1MjE1fHxlPj02Mzc0NCYmZTw9NjQyNTV8fGU+PTY1MDcyJiZlPD02NTEwM3x8ZT49NjUxMDQmJmU8PTY1MTM1fHxlPj02NTI4MCYmZTw9NjU1MTl8fGU+PTY1NTM2JiZlPD0xMTE0MTExP2M9YGVhc3RBc2lhYDplPj03NjgwJiZlPD03OTM1P2M9YSYmbz9gZWFzdEFzaWFgOmBoaWdoQW5zaWA6KGU+PTgxOTImJmU8PTEwMTc1fHxlPj01NzM0NCYmZTw9NjM3NDN8fGU+PTY0MjU2JiZlPD02NDI4NCkmJihjPWE/YGVhc3RBc2lhYDpgaGlnaEFuc2lgKSxjPT09YGVhc3RBc2lhYCYmYT9jOnQ/YGNvbXBsZXhTY3JpcHRgOmN9ZnVuY3Rpb24gRnYoZSx0KXtyZXR1cm4gZS50aGVtZUZvbnRQcmVzZW5jZT8uW3RdPz9lLnRoZW1lRm9udHM/Llt0XSE9bnVsbD9lLnRoZW1lRm9udHM/Llt0XTplLmZvbnRzW3RdPz8oZS50aGVtZUZvbnRQcmVzZW5jZT8uYXNjaWk/P2UudGhlbWVGb250cz8uYXNjaWkhPW51bGw/ZS50aGVtZUZvbnRzPy5hc2NpaTplLmZvbnRzLmFzY2lpKX1mdW5jdGlvbiBJdihlKXtsZXQgdD1qdihlLmxvY2FsTWV0cmljcyksbj1PYmplY3QuZnJlZXplKE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhlLmdlbmVyaWNGYW1pbGllcz8/e30pLm1hcCgoW2UsdF0pPT5bZS50cmltKCkudG9Mb2NhbGVMb3dlckNhc2UoYGVuLVVTYCksdF0pLnNvcnQoKFtlXSxbdF0pPT5lLmxvY2FsZUNvbXBhcmUodCkpKSkscj1PYmplY3QuZnJlZXplKE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhlLmVhc3RBc2lhRm9udENoYXJzZXRzPz97fSkubWFwKChbZSx0XSk9PltlLnRyaW0oKS50b0xvY2FsZUxvd2VyQ2FzZShgZW4tVVNgKSx0LnRyaW0oKV0pLnNvcnQoKFtlXSxbdF0pPT5lLmxvY2FsZUNvbXBhcmUodCkpKSksaT1EZyhgdGV4dGAse2ZvbnRzOmUuZm9udHMuZmluZ2VycHJpbnQsbWVhc3VyZXI6ZS5tZWFzdXJlci5maW5nZXJwcmludCxsb2NhbE1ldHJpY3M6dCxlYXN0QXNpYUZvbnRDaGFyc2V0czpyLGdlbmVyaWNGYW1pbGllczpufSksYT10PT57bGV0IHI9RnYodCx0LnNsb3QpLGk9cj9uW3IudHJpbSgpLnRvTG9jYWxlTG93ZXJDYXNlKGBlbi1VU2ApXT8/dC5nZW5lcmljRmFtaWx5Pz9gc2Fucy1zZXJpZmA6dC5nZW5lcmljRmFtaWx5O3JldHVybiBlLmZvbnRzLnJlc29sdmUoe3JlcXVlc3RlZEZhbWlseTpyLGdlbmVyaWNGYW1pbHk6aSx3ZWlnaHQ6dC53ZWlnaHQsc3R5bGU6dC5zdHlsZX0pfSxvPW5ldyBNYXAscz10PT57bGV0IG49SlNPTi5zdHJpbmdpZnkoW3QudGV4dCx0LmZvbnRSb3V0ZS5mYW1pbHlMaXN0LHQuZm9udFJvdXRlLnNjb3BlLHQuZm9udFJvdXRlLmZpbmdlcnByaW50LHQuZm9udFNpemVQdCx0LndlaWdodCx0LnN0eWxlLHQubGV0dGVyU3BhY2luZ1B0LHQua2VybmluZz8/bnVsbF0pLHI9by5nZXQobik7aWYocilyZXR1cm4gcjtsZXQgaT1lLm1lYXN1cmVyLm1lYXN1cmUodCksYT1PYmplY3QuZnJlZXplKHsuLi5pLC4uLmkuaW5rQm91bmRzP3tpbmtCb3VuZHM6T2JqZWN0LmZyZWV6ZSh7Li4uaS5pbmtCb3VuZHN9KX06e319KTtyZXR1cm4gby5zZXQobixhKSxhfSxjPXQ9PmUubWVhc3VyZXIubWVhc3VyZSh0KS5hZHZhbmNlUHQsbD1uZXcgTWFwO3JldHVybiBPYmplY3QuZnJlZXplKHtmaW5nZXJwcmludDppLGxvY2FsTWV0cmljczp0LHJlc29sdmU6YSxzaGFwZShlKXtpZighTnVtYmVyLmlzRmluaXRlKGUuZm9udFNpemVQdCl8fGUuZm9udFNpemVQdDwwKXRocm93IFJhbmdlRXJyb3IoYGZvbnRTaXplUHQgbXVzdCBiZSBhIGZpbml0ZSBub24tbmVnYXRpdmUgbnVtYmVyYCk7bGV0IHQ9SlNPTi5zdHJpbmdpZnkoW2UudGV4dCxlLmZvbnRTaXplUHQsW2UuZm9udHMuYXNjaWk/P251bGwsZS5mb250cy5oaWdoQW5zaT8/bnVsbCxlLmZvbnRzLmVhc3RBc2lhPz9udWxsLGUuZm9udHMuY29tcGxleFNjcmlwdD8/bnVsbF0sW2UudGhlbWVGb250cz8uYXNjaWk/P251bGwsZS50aGVtZUZvbnRzPy5oaWdoQW5zaT8/bnVsbCxlLnRoZW1lRm9udHM/LmVhc3RBc2lhPz9udWxsLGUudGhlbWVGb250cz8uY29tcGxleFNjcmlwdD8/bnVsbF0sW2UudGhlbWVGb250UHJlc2VuY2U/LmFzY2lpPz9udWxsLGUudGhlbWVGb250UHJlc2VuY2U/LmhpZ2hBbnNpPz9udWxsLGUudGhlbWVGb250UHJlc2VuY2U/LmVhc3RBc2lhPz9udWxsLGUudGhlbWVGb250UHJlc2VuY2U/LmNvbXBsZXhTY3JpcHQ/P251bGxdLGUud2VpZ2h0Pz9udWxsLGUuc3R5bGU/P251bGwsZS5jb21wbGV4U2NyaXB0Pz9udWxsLGUuZm9udEhpbnQ/P251bGwsZS5lYXN0QXNpYUxhbmd1YWdlPz9udWxsLGUuZWFzdEFzaWFGb250Q2hhcnNldD8/bnVsbCxlLmdlbmVyaWNGYW1pbHk/P251bGwsZS5sZXR0ZXJTcGFjaW5nUHQ/P251bGwsZS5rZXJuaW5nPz9udWxsLGUubWVhc3VyZT8/bnVsbCxlLmNsdXN0ZXJHZW9tZXRyeT8/bnVsbF0pLG49bC5nZXQodCk7aWYobilyZXR1cm4gbjtsZXQgaT1bXSxvPU9iamVjdC5mcmVlemUoWy4uLm5ldyBTZXQoWzAsLi4uTm0oZS50ZXh0KSxlLnRleHQubGVuZ3RoXSldLnNvcnQoKGUsdCk9PmUtdCkpLHU9bmV3IFNldChvKSxkPTA7Zm9yKGxldCB0IG9mIGUudGV4dCl7bGV0IG49ZCt0Lmxlbmd0aCxhPUZ2KGUsYGVhc3RBc2lhYCksbz1lLmVhc3RBc2lhRm9udENoYXJzZXQ/PyhhP3JbYS50cmltKCkudG9Mb2NhbGVMb3dlckNhc2UoYGVuLVVTYCldOnZvaWQgMCkscz1Qdih0LmNvZGVQb2ludEF0KDApPz8wLGUuY29tcGxleFNjcmlwdD8/ITEsZS5mb250SGludCxlLmVhc3RBc2lhTGFuZ3VhZ2UsbyksYz1pLmF0KC0xKTtjPy5zY3JpcHQ9PT1zPyhjLnRleHQrPXQsYy5lbmQ9bik6aS5wdXNoKHt0ZXh0OnQsc3RhcnQ6ZCxlbmQ6bixzY3JpcHQ6cyxicmVha0JlZm9yZTp1LmhhcyhkKX0pLGQ9bn1sZXQgZj1pLm1hcCh0PT57bGV0IG49YSh7Zm9udHM6ZS5mb250cyx0aGVtZUZvbnRzOmUudGhlbWVGb250cyx0aGVtZUZvbnRQcmVzZW5jZTplLnRoZW1lRm9udFByZXNlbmNlLHNsb3Q6dC5zY3JpcHQsd2VpZ2h0OmUud2VpZ2h0LHN0eWxlOmUuc3R5bGUsZ2VuZXJpY0ZhbWlseTplLmdlbmVyaWNGYW1pbHl9KSxyPWUubWVhc3VyZT09PSExP3thZHZhbmNlUHQ6MCxhc2NlbnRQdDowLGRlc2NlbnRQdDowfTpzKHt0ZXh0OnQudGV4dCxmb250Um91dGU6bi5yb3V0ZSxmb250U2l6ZVB0OmUuZm9udFNpemVQdCx3ZWlnaHQ6bi53ZWlnaHQsc3R5bGU6bi5zdHlsZSxsZXR0ZXJTcGFjaW5nUHQ6ZS5sZXR0ZXJTcGFjaW5nUHQ/PzAsa2VybmluZzplLmtlcm5pbmd9KTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Li4udCwuLi5yLGZvbnQ6bixmb250Um91dGU6bi5yb3V0ZX0pfSkscD1mLmZsYXRNYXAoZT0+ZS5mb250LmRpYWdub3N0aWNzKSxtPWYubGVuZ3RoPjAmJmYuZXZlcnkoZT0+ZS5pbmtCb3VuZHMhPT12b2lkIDApPygoKT0+e2xldCBlPTAsdD0xLzAsbj0tMS8wLHI9MCxpPTA7Zm9yKGxldCBhIG9mIGYpe2xldCBvPWEuaW5rQm91bmRzO3Q9TWF0aC5taW4odCxlK28ueE1pblB0KSxuPU1hdGgubWF4KG4sZStvLnhNYXhQdCkscj1NYXRoLm1heChyLG8uYXNjZW50UHQpLGk9TWF0aC5tYXgoaSxvLmRlc2NlbnRQdCksZSs9YS5hZHZhbmNlUHR9cmV0dXJuIE9iamVjdC5mcmVlemUoe3hNaW5QdDp0LHhNYXhQdDpuLGFzY2VudFB0OnIsZGVzY2VudFB0Oml9KX0pKCk6dm9pZCAwLGg9Zi5yZWR1Y2UoKGUsdCk9PmUrdC5hZHZhbmNlUHQsMCksZz1lLmNsdXN0ZXJHZW9tZXRyeT09PSExP3ZvaWQgMDooKCk9PntsZXQgdD1uZXcgTWFwKFtbMCwwXSxbZS50ZXh0Lmxlbmd0aCxoXV0pLG49bj0+e2lmKGUubWVhc3VyZT09PSExfHxuPD0wKXJldHVybiAwO2xldCByPXQuZ2V0KG4pO2lmKHIhPT12b2lkIDApcmV0dXJuIHI7bGV0IGk9MDtmb3IobGV0IHQgb2YgZil7aWYobj49dC5lbmQpe2krPXQuYWR2YW5jZVB0O2NvbnRpbnVlfWlmKG48PXQuc3RhcnQpYnJlYWs7aSs9Yyh7dGV4dDp0LnRleHQuc2xpY2UoMCxuLXQuc3RhcnQpLGZvbnRSb3V0ZTp0LmZvbnRSb3V0ZSxmb250U2l6ZVB0OmUuZm9udFNpemVQdCx3ZWlnaHQ6dC5mb250LndlaWdodCxzdHlsZTp0LmZvbnQuc3R5bGUsbGV0dGVyU3BhY2luZ1B0OmUubGV0dGVyU3BhY2luZ1B0Pz8wLGtlcm5pbmc6ZS5rZXJuaW5nfSk7YnJlYWt9cmV0dXJuIHQuc2V0KG4saSksaX07cmV0dXJuIE9iamVjdC5mcmVlemUoby5zbGljZSgwLC0xKS5tYXAoKGUsdCk9PntsZXQgcj1vW3QrMV0/P2UsaT1uKGUpO3JldHVybiBPYmplY3QuZnJlZXplKHtyYW5nZTpPYmplY3QuZnJlZXplKHtzdGFydDplLGVuZDpyfSksb2Zmc2V0UHQ6aSxhZHZhbmNlUHQ6bihyKS1pfSl9KSl9KSgpLF89T2JqZWN0LmZyZWV6ZSh7YWR2YW5jZVB0OmgsYXNjZW50UHQ6TWF0aC5tYXgoMCwuLi5mLm1hcChlPT5lLmFzY2VudFB0KSksZGVzY2VudFB0Ok1hdGgubWF4KDAsLi4uZi5tYXAoZT0+ZS5kZXNjZW50UHQpKSwuLi5tP3tpbmtCb3VuZHM6bX06e30sLi4ubSYmZi5ldmVyeShlPT5lLmhvcml6b250YWxJbmtCb3VuZHNBcmVUaWdodD09PSEwKT97aG9yaXpvbnRhbElua0JvdW5kc0FyZVRpZ2h0OiEwfTp7fSxzcGFuczpPYmplY3QuZnJlZXplKGYpLGdyYXBoZW1lQm91bmRhcmllczpvLC4uLmc/e2NsdXN0ZXJzOmd9Ont9LGRpYWdub3N0aWNzOk9iamVjdC5mcmVlemUocCl9KTtyZXR1cm4gbC5zZXQodCxfKSxffX0pfWZ1bmN0aW9uIEx2KGUsdCl7bGV0IG49W107Zm9yKGxldCByPTA7cjxlLmxlbmd0aDspe2xldCBpPWVbcl07aWYoaS5maXRUZXh0VmFsVHdpcHM9PT12b2lkIDApe3IrPTE7Y29udGludWV9bGV0IGE9cisxO2lmKGkuZml0VGV4dElkIT09dm9pZCAwKWZvcig7YTxlLmxlbmd0aCYmZVthXS5maXRUZXh0VmFsVHdpcHMhPT12b2lkIDAmJmVbYV0uZml0VGV4dElkPT09aS5maXRUZXh0SWQ7KWErPTE7bGV0IG89MCxzPTA7Zm9yKGxldCB0PXI7dDxhO3QrPTEpe2xldCBuPWVbdF07bys9bi5uYXR1cmFsV2lkdGhQeCoobi5jaGFyU2NhbGU/PzEpLHMrPW4uY2hhckNvdW50fWxldCBjPWkuZml0VGV4dFZhbFR3aXBzLzIwKnQsbD1zPjE/KGMtbykvKHMtMSk6MCx1PWMtby1NYXRoLm1heCgwLHMtMSkqbDtuLnB1c2goe3N0YXJ0OnIsZW5kOmEsdGFyZ2V0UHg6YyxuYXR1cmFsUHg6byxjaGFyQ291bnQ6cyxwZXJHYXBQeDpsLHRyYWlsaW5nUGFkUHg6dX0pLHI9YX1yZXR1cm4gbn1mdW5jdGlvbiBSdihlKXtyZXR1cm4gZTwwbj8tZTplfWZ1bmN0aW9uIHp2KGUsdCl7bGV0IG49UnYoZSkscj1Sdih0KTtmb3IoO3IhPT0wbjspe2xldCBlPW4lcjtuPXIscj1lfXJldHVybiBufWZ1bmN0aW9uIEJ2KGUsdCl7aWYodD09PTBuKXRocm93IEVycm9yKGBFeGFjdCByYXRpb25hbCBkZW5vbWluYXRvciBtdXN0IGJlIG5vbnplcm9gKTtpZihlPT09MG4pcmV0dXJuIE9iamVjdC5mcmVlemUoe251bWVyYXRvcjowbixkZW5vbWluYXRvcjoxbn0pO2xldCBuPXQ8MG4/LTFuOjFuLHI9enYoZSx0KTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7bnVtZXJhdG9yOm4qZS9yLGRlbm9taW5hdG9yOm4qdC9yfSl9ZnVuY3Rpb24gUShlLHQpe2xldCBuPWUubnVtZXJhdG9yKnQuZGVub21pbmF0b3ItdC5udW1lcmF0b3IqZS5kZW5vbWluYXRvcjtyZXR1cm4gbjwwbj8tMTorKG4+MG4pfWZ1bmN0aW9uIFZ2KGUsdCl7cmV0dXJuIEJ2KGUubnVtZXJhdG9yKnQuZGVub21pbmF0b3ItdC5udW1lcmF0b3IqZS5kZW5vbWluYXRvcixlLmRlbm9taW5hdG9yKnQuZGVub21pbmF0b3IpfWZ1bmN0aW9uIEh2KGUsdCl7cmV0dXJuIEJ2KGUubnVtZXJhdG9yKnQuZGVub21pbmF0b3IrdC5udW1lcmF0b3IqZS5kZW5vbWluYXRvciwybiplLmRlbm9taW5hdG9yKnQuZGVub21pbmF0b3IpfWZ1bmN0aW9uIFV2KGUpe3JldHVybmAke2UubnVtZXJhdG9yfS8ke2UuZGVub21pbmF0b3J9YH1jb25zdCBXdj1uZXcgRGF0YVZpZXcobmV3IEFycmF5QnVmZmVyKDgpKTtmdW5jdGlvbiBHdihlKXtpZighTnVtYmVyLmlzRmluaXRlKGUpKXRocm93IEVycm9yKGBFeGFjdCBnZW9tZXRyeSByZXF1aXJlcyBhIGZpbml0ZSBiaW5hcnk2NCB2YWx1ZWApO2lmKGU9PT0wKXJldHVybiBPYmplY3QuZnJlZXplKHtjb2VmZmljaWVudDowbixleHBvbmVudDowfSk7V3Yuc2V0RmxvYXQ2NCgwLGUsITEpO2xldCB0PVd2LmdldEJpZ1VpbnQ2NCgwLCExKSxuPXQ+PjYzbiE9MG4scj1OdW1iZXIodD4+NTJuJjIwNDduKSxpPXQmKDFuPDw1Mm4pLTFuLGE9cj09PTA/aToxbjw8NTJufGksbz1yPT09MD8tMTA3NDpyLTEwMjMtNTI7Zm9yKDsoYSYxbik9PTBuOylhPj49MW4sbys9MTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Y29lZmZpY2llbnQ6bj8tYTphLGV4cG9uZW50Om99KX1mdW5jdGlvbiBLdihlKXtyZXR1cm4gZT09PTBuPzA6ZS50b1N0cmluZygyKS5sZW5ndGh9ZnVuY3Rpb24gcXYoZSx0LG4pe2xldCByPW4+PTA/ZTplPDxCaWdJbnQoLW4pLGk9bj49MD90PDxCaWdJbnQobik6dDtyZXR1cm4gcjxpPy0xOisocj5pKX1mdW5jdGlvbiBKdihlLHQsbil7bGV0IHI9bj49MD9lPDxCaWdJbnQobik6ZSxpPW4+PTA/dDp0PDxCaWdJbnQoLW4pLGE9ci9pLG89ciVpKjJuO3JldHVybihvPml8fG89PT1pJiYoYSYxbikhPTBuKSYmKGErPTFuKSxhfWZ1bmN0aW9uIFl2KGUpe3JldHVybiBXdi5zZXRCaWdVaW50NjQoMCxlLCExKSxXdi5nZXRGbG9hdDY0KDAsITEpfWZ1bmN0aW9uIFh2KGUpe2lmKGUubnVtZXJhdG9yPT09MG4pcmV0dXJuIDA7bGV0IHQ9ZS5udW1lcmF0b3I8MG4sbj1SdihlLm51bWVyYXRvcikscj1lLmRlbm9taW5hdG9yLGk9S3YobiktS3Yocik7cXYobixyLGkpPDAmJi0taTtsZXQgYT10PzFuPDw2M246MG47aWYoaTwtMTAyMil7bGV0IGU9SnYobixyLDEwNzQpO3JldHVybiBZdihlPT09MG4/YTplPj0xbjw8NTJuP2F8MW48PDUybjphfGUpfWxldCBvPUp2KG4sciw1Mi1pKTtpZihvPT09MW48PDUzbiYmKG8+Pj0xbixpKz0xKSxpPjEwMjMpcmV0dXJuIHQ/LTEvMDoxLzA7bGV0IHM9QmlnSW50KGkrMTAyMyk8PDUybixjPW8tKDFuPDw1Mm4pO3JldHVybiBZdihhfHN8Yyl9ZnVuY3Rpb24gWnYoZSl7aWYoZT09PTEvMClyZXR1cm4gZTtpZihPYmplY3QuaXMoZSwtMCl8fGU9PT0wKXJldHVybiBOdW1iZXIuTUlOX1ZBTFVFO1d2LnNldEZsb2F0NjQoMCxlLCExKTtsZXQgdD1Xdi5nZXRCaWdVaW50NjQoMCwhMSk7cmV0dXJuIFl2KGU+MD90KzFuOnQtMW4pfWZ1bmN0aW9uIFF2KGUpe2xldCB0PVh2KGUpO2lmKHQ9PT0xLzApcmV0dXJuIHQ7aWYodD09PS0xLzApcmV0dXJuLU51bWJlci5NQVhfVkFMVUU7bGV0IG49R3YodCk7cmV0dXJuIFEobi5leHBvbmVudD49MD97bnVtZXJhdG9yOm4uY29lZmZpY2llbnQ8PEJpZ0ludChuLmV4cG9uZW50KSxkZW5vbWluYXRvcjoxbn06e251bWVyYXRvcjpuLmNvZWZmaWNpZW50LGRlbm9taW5hdG9yOjFuPDxCaWdJbnQoLW4uZXhwb25lbnQpfSxlKT49MD90Olp2KHQpfWZ1bmN0aW9uICR2KGUpe3JldHVybi1Rdih7bnVtZXJhdG9yOi1lLm51bWVyYXRvcixkZW5vbWluYXRvcjplLmRlbm9taW5hdG9yfSl9ZnVuY3Rpb24gZXkoZSl7aWYoIWUucG9pbnRzfHxlLnBvaW50cy5sZW5ndGg8M3x8ZS5wb2ludHMuc29tZShlPT4hTnVtYmVyLmlzRmluaXRlKGUueFB0KXx8IU51bWJlci5pc0Zpbml0ZShlLnlQdCkpKXRocm93IEVycm9yKGBJbnZhbGlkICR7ZS5raW5kfSB3cmFwUG9seWdvbiBmb3IgJHtlLmltYWdlS2V5fWApO2lmKCFbZS54TGVmdFB0LGUueFJpZ2h0UHQsZS55VG9wUHQsZS55Qm90dG9tUHRdLmV2ZXJ5KE51bWJlci5pc0Zpbml0ZSl8fGUueFJpZ2h0UHQ8ZS54TGVmdFB0fHxlLnlCb3R0b21QdDxlLnlUb3BQdCl0aHJvdyBFcnJvcihgSW52YWxpZCBmaW5pdGUgd3JhcCBib3VuZHMgZm9yICR7ZS5pbWFnZUtleX1gKX1jb25zdCB0eT1uZXcgV2Vha01hcDtmdW5jdGlvbiBueShlLHQpe3JldHVybiBlLng9PT10LngmJmUueT09PXQueX1mdW5jdGlvbiByeShlLHQsbixyKXtyZXR1cm4gZSpyLXQqbn1mdW5jdGlvbiBpeShlLHQpe3JldHVybiB0PjBuP2U+PTBuJiZlPD10OmU8PTBuJiZlPj10fWZ1bmN0aW9uIGF5KGUsdCl7bGV0IG49bnkoZS5mcm9tLHQuZnJvbSl8fG55KGUuZnJvbSx0LnRvKT9lLmZyb206bnkoZS50byx0LmZyb20pfHxueShlLnRvLHQudG8pP2UudG86bnVsbDtpZihuKXJldHVybiBPYmplY3QuZnJlZXplKHt5OkJ2KG4ueSwxbiksY29udGFjdDpgc2hhcmVkLWVuZHBvaW50YH0pO2xldCByPWUudG8ueC1lLmZyb20ueCxpPWUudG8ueS1lLmZyb20ueSxhPXQudG8ueC10LmZyb20ueCxvPXQudG8ueS10LmZyb20ueSxzPXJ5KHIsaSxhLG8pO2lmKHM9PT0wbilyZXR1cm4gbnVsbDtsZXQgYz10LmZyb20ueC1lLmZyb20ueCxsPXQuZnJvbS55LWUuZnJvbS55LHU9cnkoYyxsLGEsbyksZD1yeShjLGwscixpKTtyZXR1cm4haXkodSxzKXx8IWl5KGQscyk/bnVsbDpPYmplY3QuZnJlZXplKHt5OkJ2KGUuZnJvbS55KnMraSp1LHMpLGNvbnRhY3Q6aT09PTBufHxvPT09MG4/YGhvcml6b250YWxgOmBhY3RpdmUtY3Jvc3NpbmdgfSl9ZnVuY3Rpb24gb3koZSx0KXtyZXR1cm5gJHtlfToke3R9YH1mdW5jdGlvbiBzeShlLHQsbil7bGV0IHI9bmV3IFNldDtmb3IobGV0IGkgb2YgdCl7aWYoaTwwfHxpPj1NYXRoLmZsb29yKGUubGVuZ3RoLzIpKWNvbnRpbnVlO24oKTtsZXQgdD1lW2kqMl0sYT1lW2kqMisxXTtyLmFkZChveSh0LGEpKX1yZXR1cm4gcn1mdW5jdGlvbiBjeShlKXtsZXQgdD1lPT57aWYoZS5sZW5ndGg9PT0wKXJldHVybiBudWxsO2xldCBuPWVbTWF0aC5mbG9vcihlLmxlbmd0aC8yKV0ueVRvcFB0LHI9W10saT1bXSxhPVtdO2ZvcihsZXQgdCBvZiBlKXQueUJvdHRvbVB0PD1uP3IucHVzaCh0KTp0LnlUb3BQdD5uP2kucHVzaCh0KTphLnB1c2godCk7cmV0dXJuIE9iamVjdC5mcmVlemUoe2NlbnRlcllQdDpuLGNyb3NzaW5nQnlUb3A6T2JqZWN0LmZyZWV6ZShhKSxjcm9zc2luZ0J5Qm90dG9tOk9iamVjdC5mcmVlemUoYS5zbGljZSgpLnNvcnQoKGUsdCk9PnQueUJvdHRvbVB0LWUueUJvdHRvbVB0KSksYmVsb3c6dChyKSxhYm92ZTp0KGkpfSl9O3JldHVybiB0KGUuc2xpY2UoKS5zb3J0KChlLHQpPT5lLnlUb3BQdC10LnlUb3BQdHx8ZS55Qm90dG9tUHQtdC55Qm90dG9tUHQpKX1mdW5jdGlvbiBseShlLHQpe3JldHVybiBYdih0Pj0wP3tudW1lcmF0b3I6ZS5udW1lcmF0b3I8PEJpZ0ludCh0KSxkZW5vbWluYXRvcjplLmRlbm9taW5hdG9yfTp7bnVtZXJhdG9yOmUubnVtZXJhdG9yLGRlbm9taW5hdG9yOmUuZGVub21pbmF0b3I8PEJpZ0ludCgtdCl9KX1mdW5jdGlvbiB1eShlLHQpe3JldHVybiBRdih0Pj0wP3tudW1lcmF0b3I6ZS5udW1lcmF0b3I8PEJpZ0ludCh0KSxkZW5vbWluYXRvcjplLmRlbm9taW5hdG9yfTp7bnVtZXJhdG9yOmUubnVtZXJhdG9yLGRlbm9taW5hdG9yOmUuZGVub21pbmF0b3I8PEJpZ0ludCgtdCl9KX1mdW5jdGlvbiBkeShlLHQpe2xldCBuPUd2KGUpLHI9bi5leHBvbmVudC10O3JldHVybiByPj0wP3tudW1lcmF0b3I6bi5jb2VmZmljaWVudDw8QmlnSW50KHIpLGRlbm9taW5hdG9yOjFufTp7bnVtZXJhdG9yOm4uY29lZmZpY2llbnQsZGVub21pbmF0b3I6MW48PEJpZ0ludCgtcil9fWZ1bmN0aW9uIGZ5KGUsdCxuKXtsZXQgcj1lLmR4Km4ubnVtZXJhdG9yLWUuYypuLmRlbm9taW5hdG9yLGk9dC5keCpuLm51bWVyYXRvci10LmMqbi5kZW5vbWluYXRvcixhPXIqdC5keS1pKmUuZHk7cmV0dXJuIGE8MG4/LTE6KyhhPjBuKX1mdW5jdGlvbiBweShlKXtsZXQgdD1lPT57aWYoZS5sZW5ndGg9PT0wKXJldHVybiBudWxsO2xldCBuPWVbTWF0aC5mbG9vcihlLmxlbmd0aC8yKV0ueVRvcCxyPVtdLGk9W10sYT1bXTtmb3IobGV0IHQgb2YgZSlRKHQueUJvdHRvbSxuKTw9MD9yLnB1c2godCk6USh0LnlUb3Asbik+MD9pLnB1c2godCk6YS5wdXNoKHQpO3JldHVybiBPYmplY3QuZnJlZXplKHtjZW50ZXJZOm4sY3Jvc3NpbmdCeVRvcDpPYmplY3QuZnJlZXplKGEpLGNyb3NzaW5nQnlCb3R0b206T2JqZWN0LmZyZWV6ZShhLnNsaWNlKCkuc29ydCgoZSx0KT0+USh0LnlCb3R0b20sZS55Qm90dG9tKSkpLGJlbG93OnQociksYWJvdmU6dChpKX0pfTtyZXR1cm4gdChlLnNsaWNlKCkuc29ydCgoZSx0KT0+UShlLnlUb3AsdC55VG9wKXx8UShlLnlCb3R0b20sdC55Qm90dG9tKSkpfWZ1bmN0aW9uIG15KGUsdCxuLHIpe2lmKCEoIWV8fFEobix0KTw9MCkpe2lmKFEobixlLmNlbnRlclkpPD0wKXtmb3IobGV0IHQgb2YgZS5jcm9zc2luZ0J5VG9wKXtpZihRKHQueVRvcCxuKT49MClicmVhaztyLnB1c2godCl9bXkoZS5iZWxvdyx0LG4scik7cmV0dXJufWlmKFEodCxlLmNlbnRlclkpPj0wKXtmb3IobGV0IG4gb2YgZS5jcm9zc2luZ0J5Qm90dG9tKXtpZihRKG4ueUJvdHRvbSx0KTw9MClicmVhaztyLnB1c2gobil9bXkoZS5hYm92ZSx0LG4scik7cmV0dXJufXIucHVzaCguLi5lLmNyb3NzaW5nQnlUb3ApLG15KGUuYmVsb3csdCxuLHIpLG15KGUuYWJvdmUsdCxuLHIpfX1mdW5jdGlvbiBoeShlLHQsbixyLGkpe2xldCBhPW5ldyBNYXAsbz1uZXcgTWFwO3QuZm9yRWFjaCgoZSx0KT0+e2lmKGUubWluWT09PWUubWF4WSlyZXR1cm47bGV0IG49VXYoQnYoZS5taW5ZLDFuKSkscj1VdihCdihlLm1heFksMW4pKSxpPWEuZ2V0KG4pO2k/aS5wdXNoKHQpOmEuc2V0KG4sW3RdKTtsZXQgcz1vLmdldChyKTtzP3MucHVzaCh0KTpvLnNldChyLFt0XSl9KTtsZXQgcz1uZXcgTWFwO2ZvcihsZXQgZSBvZiBpKXtpZihlLmNvbnRhY3QhPT1gYWN0aXZlLWNyb3NzaW5nYCljb250aW51ZTtsZXQgdD1VdihlLnkpLG49cy5nZXQodCk7bnx8cy5zZXQodCxuPW5ldyBTZXQpLG4uYWRkKGUubGVmdEVkZ2UpLG4uYWRkKGUucmlnaHRFZGdlKX1sZXQgYz1bXSxsPW5ldyBTZXQsdT1uZXcgTWFwLGQ9W10sZj1bXSxwPTAsbT0wLGg9KHQsbixpKT0+e2ZvcihsZXQgYSBvZiB0KXtpZihuLmhhcyhhKSljb250aW51ZTtsZXQgdD11LmdldChhKTtpZih0JiZRKGksdC55VG9wKT4wKXtsZXQgbj1PYmplY3QuZnJlZXplKHt5VG9wOnQueVRvcCx5Qm90dG9tOmksbGVmdEVkZ2U6dC5sZWZ0RWRnZSxyaWdodEVkZ2U6dC5yaWdodEVkZ2V9KTtkLnB1c2gobik7bGV0IGE9bHkodC55VG9wLHIpLG89bHkoaSxyKTtvPmEmJmYucHVzaChPYmplY3QuZnJlZXplKHt5VG9wUHQ6YSx5Qm90dG9tUHQ6byxsZWZ0OmVbdC5sZWZ0RWRnZV0scmlnaHQ6ZVt0LnJpZ2h0RWRnZV19KSl9dS5kZWxldGUoYSl9Zm9yKGxldCBlIG9mIG4pe2lmKHQuaGFzKGUpKWNvbnRpbnVlO2xldCBuPWUuaW5kZXhPZihgOmApO3Uuc2V0KGUse2xlZnRFZGdlOk51bWJlcihlLnNsaWNlKDAsbikpLHJpZ2h0RWRnZTpOdW1iZXIoZS5zbGljZShuKzEpKSx5VG9wOml9KX19LGc9bmV3IE1hcCxfPShlLHQpPT57ZS5hZGQoTWF0aC5mbG9vcigodC0xKS8yKSksZS5hZGQoTWF0aC5mbG9vcih0LzIpKSxlLmFkZChNYXRoLmZsb29yKCh0KzEpLzIpKX0sdj1lPT5zeShjLGUsKCk9PnttKz0yfSkseT0oKT0+e2xldCBlPW5ldyBTZXQ7Zm9yKGxldCB0PTA7dCsxPGMubGVuZ3RoO3QrPTIpbSs9MixlLmFkZChveShjW3RdLGNbdCsxXSkpO3JldHVybiBlfTtmb3IobGV0IGU9MDtlPG4ubGVuZ3RoO2UrPTEpe2xldCByPW5bZV0saT1uW2UrMV0sdT1pP0h2KHIsaSk6cixkPShlLG4pPT4ocCs9MSxmeSh0W2VdLHRbbl0sdSl8fGUtbiksZj1lPT57bGV0IHQ9MCxuPWMubGVuZ3RoO2Zvcig7dDxuOyl7bGV0IHI9dCtuPj4+MTtkKGNbcl0sZSk8PTA/dD1yKzE6bj1yfWMuc3BsaWNlKHQsMCxlKTtmb3IobGV0IGU9dDtlPGMubGVuZ3RoO2UrPTEpZy5zZXQoY1tlXSxlKX0sbT1lPT57bGV0IHQ9Zy5nZXQoZSk7aWYodCE9PXZvaWQgMCl7Yy5zcGxpY2UodCwxKSxnLmRlbGV0ZShlKTtmb3IobGV0IGU9dDtlPGMubGVuZ3RoO2UrPTEpZy5zZXQoY1tlXSxlKX19LGI9ZT0+e2xldCBuPVsuLi5lXS5maWx0ZXIoZT0+Zy5oYXMoZSkmJlEoQnYodFtlXS5taW5ZLDFuKSxyKTw9MCYmUShyLEJ2KHRbZV0ubWF4WSwxbikpPDApLGk9bi5tYXAoZT0+Zy5nZXQoZSkpLnNvcnQoKGUsdCk9PmUtdCk7bi5zb3J0KGQpO2ZvcihsZXQgZT0wO2U8aS5sZW5ndGg7ZSs9MSl7bGV0IHQ9aVtlXSxyPW5bZV07Y1t0XT1yLGcuc2V0KHIsdCl9fSx4PVV2KHIpLFM9by5nZXQoeCk/P1tdLEM9YS5nZXQoeCk/P1tdLHc9cy5nZXQoeCk/P2w7aWYoUy5sZW5ndGg9PT0wJiZDLmxlbmd0aD09PTAmJih3LnNpemU9PT0wfHxpPT09dm9pZCAwKSljb250aW51ZTtsZXQgVD1TLmxlbmd0aD4wfHxDLmxlbmd0aD4wLEU9bmV3IFNldDtpZighVClmb3IobGV0IGUgb2Ygdyl7bGV0IHQ9Zy5nZXQoZSk7dCE9PXZvaWQgMCYmXyhFLHQpfWxldCBEPVQ/eSgpOnYoRSk7Zm9yKGxldCBlIG9mIFMpbShlKTtmb3IobGV0IGUgb2YgQylmKGUpO2lmKHcuc2l6ZT4wJiZpIT09dm9pZCAwJiZiKHcpLGMubGVuZ3RoJTIhPTApdGhyb3cgRXJyb3IoYENvbXBpbGVkIHdyYXBQb2x5Z29uIHByb2R1Y2VkIGFuIG9kZCBvcGVuLXNsYWIgY3Jvc3NpbmcgY291bnRgKTtpZihUKWgoRCx5KCkscik7ZWxzZXtsZXQgZT1uZXcgU2V0O2ZvcihsZXQgdCBvZiB3KXtsZXQgbj1nLmdldCh0KTtuIT09dm9pZCAwJiZfKGUsbil9aChELHYoZSkscil9fXJldHVybiBPYmplY3QuZnJlZXplKHtzcGFuczpPYmplY3QuZnJlZXplKGYpLGV4YWN0U3BhbnM6T2JqZWN0LmZyZWV6ZShkKSxvcmRlckNvbXBhcmlzb25Db3VudDpwLHBhaXJNZW1iZXJzaGlwVmlzaXRDb3VudDptfSl9ZnVuY3Rpb24gZ3koZSl7ZXkoZSk7bGV0IHQ9ZS5wb2ludHMsbj1PYmplY3QuZnJlZXplKHQubWFwKGU9Pk9iamVjdC5mcmVlemUoey4uLmV9KSkpLHI9Wy4uLm4uZmxhdE1hcChlPT5bZS54UHQsZS55UHRdKSxlLnhMZWZ0UHQsZS54UmlnaHRQdCxlLnlUb3BQdCxlLnlCb3R0b21QdF0ubWFwKEd2KS5maWx0ZXIoKHtjb2VmZmljaWVudDplfSk9PmUhPT0wbiksaT1yLmxlbmd0aD09PTA/MDpNYXRoLm1pbiguLi5yLm1hcCgoe2V4cG9uZW50OmV9KT0+ZSkpLGE9ZT0+e2xldCB0PUd2KGUpO3JldHVybiB0LmNvZWZmaWNpZW50PT09MG4/MG46dC5jb2VmZmljaWVudDw8QmlnSW50KHQuZXhwb25lbnQtaSl9LG89bi5tYXAoZT0+T2JqZWN0LmZyZWV6ZSh7eDphKGUueFB0KSx5OmEoZS55UHQpfSkpLHM9bi5tYXAoKGUsdCk9PntsZXQgcj1uWyh0KzEpJW4ubGVuZ3RoXSxpPXIueVB0LWUueVB0LGE9aT09PTA/MDooci54UHQtZS54UHQpL2k7cmV0dXJuIE9iamVjdC5mcmVlemUoe2Zyb206ZSx0bzpyLG1pbllQdDpNYXRoLm1pbihlLnlQdCxyLnlQdCksbWF4WVB0Ok1hdGgubWF4KGUueVB0LHIueVB0KSxzbG9wZVhQZXJZOmEsaW50ZXJjZXB0WDppPT09MD9lLnhQdDplLnhQdC1hKmUueVB0fSl9KSxjPW8ubWFwKChlLHQpPT57bGV0IG49b1sodCsxKSVvLmxlbmd0aF0scj1lLnk8PW4ueT9lOm4saT1lLnk8PW4ueT9uOmUsYT1pLngtci54LHM9aS55LXIueTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7aW5kZXg6dCxmcm9tOmUsdG86bixtaW5ZOnIueSxtYXhZOmkueSxkeDphLGR5OnMsYzphKnIueS1zKnIueH0pfSksbD1bXTtmb3IobGV0IGU9MDtlPGMubGVuZ3RoO2UrPTEpZm9yKGxldCB0PWUrMTt0PGMubGVuZ3RoO3QrPTEpe2xldCBuPWF5KGNbZV0sY1t0XSk7biYmbC5wdXNoKE9iamVjdC5mcmVlemUoe3k6bi55LGNvbnRhY3Q6bi5jb250YWN0LGxlZnRFZGdlOmUscmlnaHRFZGdlOnR9KSl9bGV0IHU9MS8wLGQ9LTEvMCxmPTEvMCxwPS0xLzA7Zm9yKGxldCBlIG9mIG4pdT1NYXRoLm1pbih1LGUueFB0KSxkPU1hdGgubWF4KGQsZS54UHQpLGY9TWF0aC5taW4oZixlLnlQdCkscD1NYXRoLm1heChwLGUueVB0KTtsZXQgbT1uZXcgTWFwO2ZvcihsZXQgZSBvZiBvKXtsZXQgdD1CdihlLnksMW4pO20uc2V0KFV2KHQpLHQpfWZvcihsZXQgZSBvZiBsKW0uc2V0KFV2KGUueSksZS55KTtsZXQgaD1PYmplY3QuZnJlZXplKFsuLi5tLnZhbHVlcygpXS5zb3J0KFEpKSxnPU9iamVjdC5mcmVlemUoWy4uLm5ldyBTZXQoaC5tYXAoZT0+bHkoZSxpKSkpXS5zb3J0KChlLHQpPT5lLXQpKSxfPWh5KHMsYyxoLGksbCksdj1CdihvLnJlZHVjZSgoZSx0KT0+dC54PGU/dC54OmUsb1swXS54KSwxbikseT1CdihvLnJlZHVjZSgoZSx0KT0+dC54PmU/dC54OmUsb1swXS54KSwxbiksYj1CdihvLnJlZHVjZSgoZSx0KT0+dC55PGU/dC55OmUsb1swXS55KSwxbikseD1CdihvLnJlZHVjZSgoZSx0KT0+dC55PmU/dC55OmUsb1swXS55KSwxbiksUz1CdigwbiwxbiksQz0oZSx0KT0+e2xldCBuPVZ2KGUsdCk7cmV0dXJuIFEobixTKT4wP246U30sdz1PYmplY3QuZnJlZXplKHtzY2FsZUV4cG9uZW50OmksZWRnZXM6T2JqZWN0LmZyZWV6ZShjKSxldmVudFlzOmgsc3BhbnM6Xy5leGFjdFNwYW5zLHNwYW5JbmRleDpweShfLmV4YWN0U3BhbnMpLHBvbHlnb25MZWZ0OnYscG9seWdvblJpZ2h0OnkscG9seWdvblRvcDpiLHBvbHlnb25Cb3R0b206eCxwYWRMZWZ0OkModixCdihhKGUueExlZnRQdCksMW4pKSxwYWRSaWdodDpDKEJ2KGEoZS54UmlnaHRQdCksMW4pLHkpLHBhZFRvcDpDKGIsQnYoYShlLnlUb3BQdCksMW4pKSxwYWRCb3R0b206QyhCdihhKGUueUJvdHRvbVB0KSwxbikseCl9KSxUPU9iamVjdC5mcmVlemUoe2tpbmQ6ZS5raW5kLGVkZ2VzOk9iamVjdC5mcmVlemUocyksZXZlbnRZUHRzOmcsY29udG91clNwYW5zOl8uc3BhbnMsY29udG91clNwYW5JbmRleDpjeShfLnNwYW5zKSxpbnRlcnNlY3Rpb25Db3VudDpsLmxlbmd0aCxjb21waWxlT3JkZXJDb21wYXJpc29uQ291bnQ6Xy5vcmRlckNvbXBhcmlzb25Db3VudCxjb21waWxlUGFpck1lbWJlcnNoaXBWaXNpdENvdW50Ol8ucGFpck1lbWJlcnNoaXBWaXNpdENvdW50LHBvbHlnb25MZWZ0UHQ6dSxwb2x5Z29uUmlnaHRQdDpkLHBvbHlnb25Ub3BQdDpmLHBvbHlnb25Cb3R0b21QdDpwLHBhZExlZnRQdDpNYXRoLm1heCgwLHUtZS54TGVmdFB0KSxwYWRSaWdodFB0Ok1hdGgubWF4KDAsZS54UmlnaHRQdC1kKSxwYWRUb3BQdDpNYXRoLm1heCgwLGYtZS55VG9wUHQpLHBhZEJvdHRvbVB0Ok1hdGgubWF4KDAsZS55Qm90dG9tUHQtcCl9KTtyZXR1cm4gdHkuc2V0KFQsdyksVH1mdW5jdGlvbiBfeShlLHQpe3JldHVybntudW1lcmF0b3I6ZS5keCp0Lm51bWVyYXRvci1lLmMqdC5kZW5vbWluYXRvcixkZW5vbWluYXRvcjplLmR5KnQuZGVub21pbmF0b3J9fWZ1bmN0aW9uIHZ5KGUsdCl7cmV0dXJuIGUuZHgqdC5keT09PXQuZHgqZS5keSYmZS5jKnQuZHk9PT10LmMqZS5keX1mdW5jdGlvbiB5eShlKXtsZXQgdD1lLmZpbHRlcihlPT5RKGUucixlLmwpPjApLnNsaWNlKCkuc29ydCgoZSx0KT0+UShlLmwsdC5sKXx8UShlLnIsdC5yKSksbj1bXTtmb3IobGV0IGUgb2YgdCl7bGV0IHQ9bi5hdCgtMSk7IXR8fFEoZS5sLHQucik+MD9uLnB1c2goey4uLmV9KTpRKGUucix0LnIpPjAmJihuW24ubGVuZ3RoLTFdPXtsOnQubCxyOmUucn0pfXJldHVybiBufWZ1bmN0aW9uIGJ5KGUsdCl7cmV0dXJue251bWVyYXRvcjplLm51bWVyYXRvcip0LmRlbm9taW5hdG9yK3QubnVtZXJhdG9yKmUuZGVub21pbmF0b3IsZGVub21pbmF0b3I6ZS5kZW5vbWluYXRvcip0LmRlbm9taW5hdG9yfX1mdW5jdGlvbiB4eShlLHQpe3JldHVybntudW1lcmF0b3I6ZS5udW1lcmF0b3IqdC5kZW5vbWluYXRvci10Lm51bWVyYXRvciplLmRlbm9taW5hdG9yLGRlbm9taW5hdG9yOmUuZGVub21pbmF0b3IqdC5kZW5vbWluYXRvcn19ZnVuY3Rpb24gU3koZSx0LG4pe2xldCByPXR5LmdldChlKTtpZighcil0aHJvdyBFcnJvcihgQ29tcGlsZWQgcG9seWdvbiBvbWl0dGVkIGl0cyBleGFjdCBnZW9tZXRyeSBhdXRob3JpdHlgKTtsZXQgaT14eSh0LHIucGFkQm90dG9tKSxhPWJ5KG4sci5wYWRUb3ApLG89UShyLnBvbHlnb25Ub3AsaSk+PTA/ci5wb2x5Z29uVG9wOmkscz1RKHIucG9seWdvbkJvdHRvbSxhKTw9MD9yLnBvbHlnb25Cb3R0b206YTtpZihRKHMsbyk8PTApcmV0dXJuW107bGV0IGM9W10sbD1bXTtteShyLnNwYW5JbmRleCxvLHMsbCk7Zm9yKGxldCBlIG9mIGwpe2xldCB0PVEobyxlLnlUb3ApPj0wP286ZS55VG9wLG49UShzLGUueUJvdHRvbSk8PTA/czplLnlCb3R0b207aWYoUShuLHQpPD0wKWNvbnRpbnVlO2xldCBpPXIuZWRnZXNbZS5sZWZ0RWRnZV0sYT1yLmVkZ2VzW2UucmlnaHRFZGdlXTtpZih2eShpLGEpKWNvbnRpbnVlO2xldCBsPV95KGksdCksdT1feShpLG4pLGQ9X3koYSx0KSxmPV95KGEsbik7Yy5wdXNoKHtsOnh5KFEobCx1KTw9MD9sOnUsci5wYWRMZWZ0KSxyOmJ5KFEoZCxmKT49MD9kOmYsci5wYWRSaWdodCl9KX1sZXQgdT15eShjKTtyZXR1cm4gZS5raW5kPT09YHRocm91Z2hgfHx1Lmxlbmd0aD09PTA/dTpbe2w6dVswXS5sLHI6dS5hdCgtMSkucn1dfWZ1bmN0aW9uIEN5KGUsdCxuKXtsZXQgcj10eS5nZXQoZSk7aWYoIXIpdGhyb3cgRXJyb3IoYENvbXBpbGVkIHBvbHlnb24gb21pdHRlZCBpdHMgZXhhY3QgZ2VvbWV0cnkgYXV0aG9yaXR5YCk7bGV0IGk9ZHkodCxyLnNjYWxlRXhwb25lbnQpLGE9YnkoaSxkeShuLHIuc2NhbGVFeHBvbmVudCkpLG89ZT0+ci5zY2FsZUV4cG9uZW50Pj0wP3tudW1lcmF0b3I6ZS5udW1lcmF0b3I8PEJpZ0ludChyLnNjYWxlRXhwb25lbnQpLGRlbm9taW5hdG9yOmUuZGVub21pbmF0b3J9OntudW1lcmF0b3I6ZS5udW1lcmF0b3IsZGVub21pbmF0b3I6ZS5kZW5vbWluYXRvcjw8QmlnSW50KC1yLnNjYWxlRXhwb25lbnQpfTtyZXR1cm4gT2JqZWN0LmZyZWV6ZShTeShlLGksYSkubWFwKGU9Pk9iamVjdC5mcmVlemUoe2w6byhlLmwpLHI6byhlLnIpfSkpKX1mdW5jdGlvbiB3eShlLHQpe2xldCBuPXR5LmdldChlKTtpZighbil0aHJvdyBFcnJvcihgQ29tcGlsZWQgcG9seWdvbiBvbWl0dGVkIGl0cyBleGFjdCBnZW9tZXRyeSBhdXRob3JpdHlgKTtsZXQgcj1keSh0LG4uc2NhbGVFeHBvbmVudCksaT1uZXcgU2V0O2ZvcihsZXQgZSBvZiBuLmV2ZW50WXMpaS5hZGQodXkoYnkoZSxuLnBhZEJvdHRvbSksbi5zY2FsZUV4cG9uZW50KSksaS5hZGQodXkoeHkoeHkoZSxyKSxuLnBhZFRvcCksbi5zY2FsZUV4cG9uZW50KSk7cmV0dXJuIE9iamVjdC5mcmVlemUoWy4uLmldLmZpbHRlcihOdW1iZXIuaXNGaW5pdGUpLnNvcnQoKGUsdCk9PmUtdCkpfWZ1bmN0aW9uIFR5KGUsdCxuLHIpe2xldCBpPXR5LmdldChlKTtpZighaSl0aHJvdyBFcnJvcihgQ29tcGlsZWQgcG9seWdvbiBvbWl0dGVkIGl0cyBleGFjdCBnZW9tZXRyeSBhdXRob3JpdHlgKTtsZXQgYT1IdihkeShuLGkuc2NhbGVFeHBvbmVudCksZHkocixpLnNjYWxlRXhwb25lbnQpKSxvPWR5KHQsaS5zY2FsZUV4cG9uZW50KSxzPXh5KGEsaS5wYWRCb3R0b20pLGM9YnkobyxpLnBhZFRvcCksbD1ieShhLGMpLHU9UShpLnBvbHlnb25Ub3Ascyk+PTA/aS5wb2x5Z29uVG9wOnMsZD1RKGkucG9seWdvbkJvdHRvbSxsKTw9MD9pLnBvbHlnb25Cb3R0b206bCxmPVtdLHA9W107bXkoaS5zcGFuSW5kZXgsdSxkLHApO2ZvcihsZXQgZSBvZiBwKXtsZXQgdD1RKHUsZS55VG9wKT49MD91OmUueVRvcDtpZihRKFEoZCxlLnlCb3R0b20pPD0wP2Q6ZS55Qm90dG9tLHQpPD0wKWNvbnRpbnVlO2xldCBuPWkuZWRnZXNbZS5sZWZ0RWRnZV0scj1pLmVkZ2VzW2UucmlnaHRFZGdlXTtpZih2eShuLHIpKWNvbnRpbnVlO2xldCBhPVEocyxlLnlUb3ApPjAsbz1RKGwsZS55Qm90dG9tKTwwLHA9KGUsdCxuLHIpPT57bGV0IGE9dD9uOnIsbz17bnVtZXJhdG9yOmUuZHgqYS5udW1lcmF0b3ItZS5jKmEuZGVub21pbmF0b3IsZGVub21pbmF0b3I6ZS5keSphLmRlbm9taW5hdG9yfTtyZXR1cm57c2xvcGU6dD97bnVtZXJhdG9yOmUuZHgsZGVub21pbmF0b3I6ZS5keX06e251bWVyYXRvcjowbixkZW5vbWluYXRvcjoxbn0saW50ZXJjZXB0Omkuc2NhbGVFeHBvbmVudD49MD97bnVtZXJhdG9yOm8ubnVtZXJhdG9yPDxCaWdJbnQoaS5zY2FsZUV4cG9uZW50KSxkZW5vbWluYXRvcjpvLmRlbm9taW5hdG9yfTp7bnVtZXJhdG9yOm8ubnVtZXJhdG9yLGRlbm9taW5hdG9yOm8uZGVub21pbmF0b3I8PEJpZ0ludCgtaS5zY2FsZUV4cG9uZW50KX19fSxtPXAobixhLHtudW1lcmF0b3I6LWkucGFkQm90dG9tLm51bWVyYXRvcixkZW5vbWluYXRvcjppLnBhZEJvdHRvbS5kZW5vbWluYXRvcn0sZS55VG9wKSxoPXAobixvLGMsZS55Qm90dG9tKSxnPXAocixhLHtudW1lcmF0b3I6LWkucGFkQm90dG9tLm51bWVyYXRvcixkZW5vbWluYXRvcjppLnBhZEJvdHRvbS5kZW5vbWluYXRvcn0sZS55VG9wKSxfPXAocixvLGMsZS55Qm90dG9tKSx2PW4uZHg+PTBuP206aCx5PXIuZHg+PTBuP186ZyxiPU9iamVjdC5mcmVlemUoe2xlZnQ6T2JqZWN0LmZyZWV6ZSh7c2xvcGU6di5zbG9wZSxpbnRlcmNlcHQ6eHkodi5pbnRlcmNlcHQsaS5zY2FsZUV4cG9uZW50Pj0wP3tudW1lcmF0b3I6aS5wYWRMZWZ0Lm51bWVyYXRvcjw8QmlnSW50KGkuc2NhbGVFeHBvbmVudCksZGVub21pbmF0b3I6aS5wYWRMZWZ0LmRlbm9taW5hdG9yfTp7bnVtZXJhdG9yOmkucGFkTGVmdC5udW1lcmF0b3IsZGVub21pbmF0b3I6aS5wYWRMZWZ0LmRlbm9taW5hdG9yPDxCaWdJbnQoLWkuc2NhbGVFeHBvbmVudCl9KX0pLHJpZ2h0Ok9iamVjdC5mcmVlemUoe3Nsb3BlOnkuc2xvcGUsaW50ZXJjZXB0OmJ5KHkuaW50ZXJjZXB0LGkuc2NhbGVFeHBvbmVudD49MD97bnVtZXJhdG9yOmkucGFkUmlnaHQubnVtZXJhdG9yPDxCaWdJbnQoaS5zY2FsZUV4cG9uZW50KSxkZW5vbWluYXRvcjppLnBhZFJpZ2h0LmRlbm9taW5hdG9yfTp7bnVtZXJhdG9yOmkucGFkUmlnaHQubnVtZXJhdG9yLGRlbm9taW5hdG9yOmkucGFkUmlnaHQuZGVub21pbmF0b3I8PEJpZ0ludCgtaS5zY2FsZUV4cG9uZW50KX0pfSl9KTtmLnB1c2goYil9cmV0dXJuIE9iamVjdC5mcmVlemUoZil9ZnVuY3Rpb24gRXkoZSx0LG4pe3JldHVybiBlLmxlZnQ8dC5yaWdodC1uJiZlLnJpZ2h0PnQubGVmdCtuJiZlLnRvcDx0LmJvdHRvbS1uJiZlLmJvdHRvbT50LnRvcCtufWZ1bmN0aW9uIER5KGUsdCxuKXtsZXQgcj1lLnJpZ2h0LWUubGVmdCxpPWUuYm90dG9tLWUudG9wO2lmKHI8MHx8aTwwKXRocm93IFJhbmdlRXJyb3IoYE92ZXJsYXAgcmVjdGFuZ2xlIGhhcyBuZWdhdGl2ZSBleHRlbnRgKTtsZXQgYT1lLmxlZnQsbz1lLnRvcDtmb3IobGV0IGU9MDtlPD10Lmxlbmd0aDtlKz0xKXtsZXQgcz17bGVmdDphLHJpZ2h0OmErcix0b3A6byxib3R0b206bytpfSxjPXQubWFwKGU9Pih7bGVmdDplLmxlZnQscmlnaHQ6ZS5yaWdodCx0b3A6ZS50b3AsYm90dG9tOmUuYm90dG9tfSkpLmZpbHRlcihlPT5FeShzLGUsbi5vdmVybGFwRXBzaWxvbikpO2lmKGMubGVuZ3RoPT09MClyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7bGVmdDphLHRvcDpvfSk7aWYoZT09PXQubGVuZ3RoKXRocm93IEVycm9yKGBBeGlzLWFsaWduZWQgb3ZlcmxhcCByZXNvbHV0aW9uIGRpZCBub3QgY29udmVyZ2VgKTtsZXQgbD1NYXRoLm1heCguLi5jLm1hcChlPT5lLnJpZ2h0KSk7aWYobCtyPD1uLnJpZ2h0Qm91bmRhcnkrbi5yaWdodEJvdW5kYXJ5U2xhY2spe2E9bDtjb250aW51ZX1vPU1hdGgubWF4KC4uLmMubWFwKGU9PmUuYm90dG9tKSl9dGhyb3cgRXJyb3IoYEF4aXMtYWxpZ25lZCBvdmVybGFwIHJlc29sdXRpb24gZGlkIG5vdCBjb252ZXJnZWApfWZ1bmN0aW9uIE95KGUsdCl7aWYoZS50cmltKCk9PT1gYCl0aHJvdyBFcnJvcihgQ29tcGF0aWJpbGl0eVJ1bGUuJHt0fSBtdXN0IG5vdCBiZSBlbXB0eWApfWZ1bmN0aW9uICQoZSl7aWYoT3koZS5pZCxgaWRgKSxPeShlLmRlc2NyaXB0aW9uLGBkZXNjcmlwdGlvbmApLCEvXlthLXowLTldKyg/Oi1bYS16MC05XSspKiQvLnRlc3QoZS5pZCkpdGhyb3cgRXJyb3IoYENvbXBhdGliaWxpdHlSdWxlLmlkIG11c3QgYmUgYSBzdGFibGUga2ViYWItY2FzZSBpZGVudGlmaWVyYCk7aWYoZS5ldmlkZW5jZS5raW5kPT09YG1pY3Jvc29mdC1ub3RlYCl7aWYoT3koZS5ldmlkZW5jZS5yZWZlcmVuY2UsYGV2aWRlbmNlLnJlZmVyZW5jZWApLCEvXlxbTVMtW0EtWjAtOV0rXF0gwqfCpz9cZC8udGVzdChlLmV2aWRlbmNlLnJlZmVyZW5jZSkpdGhyb3cgRXJyb3IoYENvbXBhdGliaWxpdHlSdWxlLmV2aWRlbmNlLnJlZmVyZW5jZSBtdXN0IGlkZW50aWZ5IGEgTWljcm9zb2Z0IHNwZWNpZmljYXRpb24gc2VjdGlvbmApfWVsc2UgaWYoZS5ldmlkZW5jZS5raW5kPT09YHJlZ3Jlc3Npb24tdGVzdGApe2lmKE95KGUuZXZpZGVuY2UucmVmZXJlbmNlLGBldmlkZW5jZS5yZWZlcmVuY2VgKSwhL15wYWNrYWdlc1wvZG9jeFwvc3JjXC8uK1wuKD86dGVzdHxzcGVjKVwudHN4PyNbXiNdKyQvLnRlc3QoZS5ldmlkZW5jZS5yZWZlcmVuY2UpKXRocm93IEVycm9yKGBDb21wYXRpYmlsaXR5UnVsZS5ldmlkZW5jZS5yZWZlcmVuY2UgbXVzdCB1c2UgRE9DWCBwYXRoI3Rlc3QtdGl0bGVgKX1lbHNlIGlmKE95KGUuZXZpZGVuY2Uuc3ludGhldGljRml4dHVyZUlkLGBldmlkZW5jZS5zeW50aGV0aWNGaXh0dXJlSWRgKSxPeShlLmV2aWRlbmNlLmFwcGxpY2F0aW9uLGBldmlkZW5jZS5hcHBsaWNhdGlvbmApLE95KGUuZXZpZGVuY2UudmVyc2lvbixgZXZpZGVuY2UudmVyc2lvbmApLE95KGUuZXZpZGVuY2UucGxhdGZvcm0sYGV2aWRlbmNlLnBsYXRmb3JtYCksIS9eW2EtejAtOV0rKD86LVthLXowLTldKykqJC8udGVzdChlLmV2aWRlbmNlLnN5bnRoZXRpY0ZpeHR1cmVJZCkpdGhyb3cgRXJyb3IoYENvbXBhdGliaWxpdHlSdWxlLmV2aWRlbmNlLnN5bnRoZXRpY0ZpeHR1cmVJZCBtdXN0IGJlIGtlYmFiLWNhc2VgKTtyZXR1cm4gT2JqZWN0LmZyZWV6ZShlLmV2aWRlbmNlKSxPYmplY3QuZnJlZXplKGUpfSQoe2lkOmB3b3JkLXNlY3Rpb24tYnRsci10YnJsLXBhZ2UtZnJhbWVgLGV2aWRlbmNlOntraW5kOmByZWdyZXNzaW9uLXRlc3RgLHJlZmVyZW5jZTpgcGFja2FnZXMvZG9jeC9zcmMvbGF5b3V0L2Nvb3JkaW5hdGUtc3BhY2UudGVzdC50cyNtYXBzIFRyYW5zaXRpb25hbCB0ZXh0IGRpcmVjdGlvbiAlcyB0byAlc2B9LGRlc2NyaXB0aW9uOmBJc3N1ZSAjOTg4IGNvbW1lbnQgNDk1MDI5NjAwNyByZWNvcmRzIHRoYXQsIHVubGlrZSB0aGUgbm9ybWF0aXZlIEVDTUEtMzc2IFBhcnQgNCDCpzE0LjExLjcgZXF1aXZhbGVuY2UgdG8gbHIsIFdvcmQgdXNlcyB0aGUgdGJSbCBwYWdlIGZyYW1lIGZvciBzZWN0aW9uLWxldmVsIGJ0THI7IHRoaXMgcnVsZSBjb3ZlcnMgb25seSB0aGUgcGFnZSBmcmFtZSwgd2hpbGUgZ2x5cGggb3JpZW50YXRpb24gaXMgcGFpbnQtb3duZWQuYH0pLCQoe2lkOmB3b3JkLXNxdWFyZS1saW5lLXN0YXJ0LW9uZS1pbmNoYCxldmlkZW5jZTp7a2luZDpgcmVncmVzc2lvbi10ZXN0YCxyZWZlcmVuY2U6YHBhY2thZ2VzL2RvY3gvc3JjL2Zsb2F0LWxpbmUtc3RhcnQtb25lLWluY2gudGVzdC50cyMoZSkgdGhlIGJvdW5kYXJ5IGlzIGlkZW50aWNhbCBhY3Jvc3Mgc2NhbGVzIChhYnNvbHV0ZSBwdCB3aWR0aClgfSxkZXNjcmlwdGlvbjpgSXNzdWUgIzY3NiByZWNvcmRzIHRoYXQgV29yZCBzdGFydHMgYSBjb250ZW50IGxpbmUgYmVzaWRlIGEgc3F1YXJlLXdyYXBwZWQgb2JqZWN0IG9ubHkgd2hlbiB0aGUgZnJlZSBzaWRlIGdhcCBpcyBhdCBsZWFzdCBvbmUgaW5jaDsgdGlnaHQgYW5kIHRocm91Z2ggcG9seWdvbiBvcGVuaW5ncyBhbmQgZW1wdHkgcGFyYWdyYXBoIG1hcmtzIGFyZSBvdXRzaWRlIHRoaXMgcnVsZS5gfSk7Y29uc3Qga3k9JCh7aWQ6YHdvcmQtZmxvYXQtZGlmZmVyZW50LXBhcmFncmFwaC1kaXNwbGFjZW1lbnRgLGV2aWRlbmNlOntraW5kOmByZWdyZXNzaW9uLXRlc3RgLHJlZmVyZW5jZTpgcGFja2FnZXMvZG9jeC9zcmMvbGF5b3V0L2Zsb2F0cy50ZXN0LnRzI2tlZXBzIG9ic2VydmVkIGRpZmZlcmVudC1wYXJhZ3JhcGggZGlzcGxhY2VtZW50IG9uIGV4Y2x1c2lvbiBib3VuZHNgfSxkZXNjcmlwdGlvbjpgUHJlc2VydmUgdGhlIGVzdGFibGlzaGVkIFdvcmQtY29tcGF0aWJsZSBwb2xpY3kgdGhhdCBhbiBvdmVybGFwLXBlcm1pdHRlZCBmbG9hdCBpcyBkaXNwbGFjZWQgYnkgZXhjbHVzaW9uIGdlb21ldHJ5IGZyb20gZmxvYXRzIGFuY2hvcmVkIGluIG90aGVyIHBhcmFncmFwaHMsIHdoaWxlIHNhbWUtcGFyYWdyYXBoIGZsb2F0cyBtYXkgb3ZlcmxhcC5gfSksQXk9JCh7aWQ6YHdvcmQtcGFnZS1hbmNob3JlZC10YWJsZS1jb2xsaXNpb24tZGVmZXJyYWxgLGV2aWRlbmNlOntraW5kOmByZWdyZXNzaW9uLXRlc3RgLHJlZmVyZW5jZTpgcGFja2FnZXMvZG9jeC9zcmMvZmxvYXQtdGFibGUtcGFnZS1maXQudGVzdC50cyMoZykgREVGRVJTIGEgcGFnZS1hbmNob3JlZCBmbG9hdGluZyB0YWJsZSB3aGVuIGl0cyByYXcgYmFuZCBpbnRlcnNlY3RzIGFuIGV4aXN0aW5nIHRhYmxlIGZsb2F0YH0sZGVzY3JpcHRpb246YFByZXNlcnZlIHRoZSBlc3RhYmxpc2hlZCBXb3JkLWNvbXBhdGlibGUgcGFnaW5hdGlvbiBiZWhhdmlvciB0aGF0IGRlZmVycyBhbiBhYnNvbHV0ZSBwYWdlLSBvciBtYXJnaW4tYW5jaG9yZWQgZmxvYXRpbmcgdGFibGUgd2hlbiBpdHMgYXV0aG9yZWQgb2JqZWN0IGJhbmQgaW50ZXJzZWN0cyBhbiBleGlzdGluZyBmbG9hdGluZy10YWJsZSB0ZXh0LWV4Y2x1c2lvbiBiYW5kIG9uIHRoZSBwYWdlLmB9KTskKHtpZDpgd29yZC1lbXB0eS1tYXJrLWZsb2F0LXNpZGUtZ2FwYCxldmlkZW5jZTp7a2luZDpgcmVncmVzc2lvbi10ZXN0YCxyZWZlcmVuY2U6YHBhY2thZ2VzL2RvY3gvc3JjL2Zsb2F0LWxpbmUtc3RhcnQtb25lLWluY2gudGVzdC50cyNrZWVwcyBhbiBhbmNob3ItaG9zdCBtZXRyaWMtb25seSBsaW5lIG9uIHRoZSBwYXJhZ3JhcGgtbWFyayB0aHJlc2hvbGRgfSxkZXNjcmlwdGlvbjpgQW4gZW1wdHkgb3IgYW5jaG9yLW9ubHkgcGFyYWdyYXBoLW1hcmsgbGluZSBtYXkgc3RhcnQgYmVzaWRlIGEgc3F1YXJlLXdyYXBwZWQgb2JqZWN0IHdoZW4gdGhlIGF2YWlsYWJsZSBzaWRlIGdhcCBjYW4gaG9sZCB0aGUgcGFyYWdyYXBoIG1hcmsgZW07IHRoZSBvbmUtaW5jaCBjb250ZW50LWxpbmUgdGhyZXNob2xkIGRvZXMgbm90IGFwcGx5LmB9KTtmdW5jdGlvbiBqeShlKXtyZXR1cm4gNzEuOTUqZX1mdW5jdGlvbiBNeShlLHQpe3JldHVybiBlKnR9Y29uc3QgTnk9LjAxLFB5PS41O2Z1bmN0aW9uIEZ5KGUsdCl7cmV0dXJuIE9iamVjdC5mcmVlemUoZT09PWBvdmVybGFwYD97a2luZDpgd29yZC1kaWZmZXJlbnQtcGFyYWdyYXBoYCxwYXJhZ3JhcGhJZDp0fTp7a2luZDpgbm9uZWB9KX1mdW5jdGlvbiBJeShlLHQpe3JldHVybiBPYmplY3QuZnJlZXplKGU/e2tpbmQ6YHdvcmQtZGlmZmVyZW50LXBhcmFncmFwaGAscGFyYWdyYXBoSWQ6dH06e2tpbmQ6YGRyYXdpbmdtbC1ub3JtYXRpdmVgfSl9ZnVuY3Rpb24gTHkoZSl7bGV0IHQ9e29jY3VycmVuY2VJZDplLm9jY3VycmVuY2VJZCxwYXJhZ3JhcGhJZDplLnBhcmFncmFwaElkLGJvdW5kczplLmJvdW5kcyxleGNsdXNpb25Cb3VuZHM6ZS5leGNsdXNpb25Cb3VuZHN9O3JldHVybiBlLmtpbmQ9PT1gdGFibGVgP3suLi50LGtpbmQ6YHRhYmxlYCx0YWJsZU92ZXJsYXA6ZS5vdmVybGFwfTp7Li4udCxraW5kOmUua2luZD09PWBzaGFwZWA/YGRyYXdpbmdtbGA6YGZyYW1lYH19ZnVuY3Rpb24gUnkoZSx0KXtsZXQgbj1lLmltYWdlWCxyPWUuaW1hZ2VZLGk9ZS5pbWFnZVcsYT1lLmltYWdlSCxvPWUueExlZnQscz1lLnhSaWdodCxjPWUueVRvcCxsPWUueUJvdHRvbSx1PXtvY2N1cnJlbmNlSWQ6ZS5hbmNob3JPY2N1cnJlbmNlSWQ/P2UuYWNxdWlzaXRpb25PY2N1cnJlbmNlSWQ/P2BkaXNwbGF5LWZsb2F0OiR7dH1gLHBhcmFncmFwaElkOmUucGFyYUlkLGJvdW5kczp7eFB0Om4seVB0OnIsd2lkdGhQdDppLGhlaWdodFB0OmF9LGV4Y2x1c2lvbkJvdW5kczp7eFB0Om8seVB0OmMsd2lkdGhQdDpzLW8saGVpZ2h0UHQ6bC1jfX07cmV0dXJuIGUua2luZD09PWB0YWJsZWA/ey4uLnUsa2luZDpgdGFibGVgLHRhYmxlT3ZlcmxhcDplLnRhYmxlT3ZlcmxhcH06ey4uLnUsa2luZDplLmtpbmQ9PT1gc2hhcGVgP2BkcmF3aW5nbWxgOmBmcmFtZWB9fWZ1bmN0aW9uIHp5KGUpe2xldCB0PWUueFB0LG49ZS55UHQscj1lLndpZHRoUHQsaT1lLmhlaWdodFB0O3JldHVybntsZWZ0OnQscmlnaHQ6dCtyLHRvcDpuLGJvdHRvbTpuK2l9fWZ1bmN0aW9uIEJ5KGUsdCxuKXtyZXR1cm4gdD09PTAmJm49PT0wP2U6T2JqZWN0LmZyZWV6ZSh7eFB0OmUueFB0K3QseVB0OmUueVB0K24sd2lkdGhQdDplLndpZHRoUHQsaGVpZ2h0UHQ6ZS5oZWlnaHRQdH0pfWZ1bmN0aW9uIFZ5KGUsdCxuLHIpe3JldHVybiBPYmplY3QuZnJlZXplKHtib3VuZHM6QnkoZS5ib3VuZHMsdCxuKSxleGNsdXNpb25Cb3VuZHM6QnkoZS5leGNsdXNpb25Cb3VuZHMsdCxuKSxkaXNwbGFjZW1lbnQ6T2JqZWN0LmZyZWV6ZSh7eFB0OnQseVB0Om59KSxhcHBsaWVkQ29tcGF0aWJpbGl0eVJ1bGVJZHM6T2JqZWN0LmZyZWV6ZShbLi4ucl0pfSl9ZnVuY3Rpb24gSHkoZSx0KXtsZXQgbj1lLmJvdW5kcy54UHQtZS5leGNsdXNpb25Cb3VuZHMueFB0LHI9ZS5ib3VuZHMueVB0LWUuZXhjbHVzaW9uQm91bmRzLnlQdCxpPWUuZXhjbHVzaW9uQm91bmRzLnhQdCtlLmV4Y2x1c2lvbkJvdW5kcy53aWR0aFB0LWUuYm91bmRzLnhQdC1lLmJvdW5kcy53aWR0aFB0LGE9ZS5leGNsdXNpb25Cb3VuZHMueVB0K2UuZXhjbHVzaW9uQm91bmRzLmhlaWdodFB0LWUuYm91bmRzLnlQdC1lLmJvdW5kcy5oZWlnaHRQdCxvPXp5KHQuZXhjbHVzaW9uQm91bmRzKTtyZXR1cm57bGVmdDpvLmxlZnQtaSxyaWdodDpvLnJpZ2h0K24sdG9wOm8udG9wLWEsYm90dG9tOm8uYm90dG9tK3J9fWZ1bmN0aW9uIFV5KGUsdCxuPWUucmlnaHRCb3VuZGFyeVB0KXtsZXQgcj16eShlLm1vdmluZy5ib3VuZHMpO3JldHVybiB0Lmxlbmd0aD09PTA/T2JqZWN0LmZyZWV6ZSh7bGVmdDpyLmxlZnQsdG9wOnIudG9wfSk6RHkocix0LHtvdmVybGFwRXBzaWxvbjplLm92ZXJsYXBFcHNpbG9uUHQ/PzAscmlnaHRCb3VuZGFyeTpuLHJpZ2h0Qm91bmRhcnlTbGFjazplLnJpZ2h0Qm91bmRhcnlTbGFja1B0Pz8wfSl9ZnVuY3Rpb24gV3koZSl7bGV0e21vdmluZzp0LGF2b2lkYW5jZTpufT1lLHI9ZS5ibG9ja2Vycy5mbGF0TWFwKGU9PnQua2luZD09PWB0YWJsZWAmJmUua2luZD09PWB0YWJsZWAmJih0LnRhYmxlT3ZlcmxhcD09PWBuZXZlcmB8fGUudGFibGVPdmVybGFwPT09YG5ldmVyYCl8fG4ua2luZD09PWBkcmF3aW5nbWwtbm9ybWF0aXZlYCYmZS5raW5kPT09YGRyYXdpbmdtbGA/W3p5KGUuYm91bmRzKV06W10pLGk9bi5raW5kPT09YHdvcmQtZGlmZmVyZW50LXBhcmFncmFwaGA/ZS5ibG9ja2Vycy5mbGF0TWFwKGU9PmUucGFyYWdyYXBoSWQ9PT1uLnBhcmFncmFwaElkP1tdOltIeSh0LGUpXSk6W10sYT10LmV4Y2x1c2lvbkJvdW5kcy54UHQrdC5leGNsdXNpb25Cb3VuZHMud2lkdGhQdC10LmJvdW5kcy54UHQtdC5ib3VuZHMud2lkdGhQdCxvPW4ua2luZD09PWB3b3JkLWRpZmZlcmVudC1wYXJhZ3JhcGhgP2UucmlnaHRCb3VuZGFyeVB0LWE6ZS5yaWdodEJvdW5kYXJ5UHQscz1VeShlLHIsbyksYz1pLmxlbmd0aD09PTA/czpVeShlLFsuLi5yLC4uLmldLG8pO3JldHVybiBWeSh0LGMubGVmdC10LmJvdW5kcy54UHQsYy50b3AtdC5ib3VuZHMueVB0LGMubGVmdCE9PXMubGVmdHx8Yy50b3AhPT1zLnRvcD9ba3kuaWRdOltdKX1mdW5jdGlvbiBHeShlKXtpZihlLmlubGluZUVuZFB0PGUuaW5saW5lU3RhcnRQdHx8ZS5ibG9ja0V4dGVudFB0PDApdGhyb3cgUmFuZ2VFcnJvcihgQmxvY2stZmxvdyBhZG1pc3Npb24gcmVjZWl2ZWQgYSBuZWdhdGl2ZSBleHRlbnRgKTtsZXQgdD1lLmJsb2NrZXJzLmZpbHRlcih0PT57bGV0IG49dC5leGNsdXNpb25Cb3VuZHM7cmV0dXJuIHQua2luZD09PWB0YWJsZWAmJmUuaW5saW5lRW5kUHQtbi54UHQ+ZS5vdmVybGFwRXBzaWxvblB0JiZuLnhQdCtuLndpZHRoUHQtZS5pbmxpbmVTdGFydFB0PmUub3ZlcmxhcEVwc2lsb25QdH0pLG49ZS5ibG9ja1N0YXJ0UHQ7Zm9yKGxldCByPTA7cjw9dC5sZW5ndGg7cis9MSl7bGV0IGk9dC5maWx0ZXIodD0+e2xldCByPXQuZXhjbHVzaW9uQm91bmRzO3JldHVybiBuK2UuYmxvY2tFeHRlbnRQdC1yLnlQdD5lLm92ZXJsYXBFcHNpbG9uUHQmJnIueVB0K3IuaGVpZ2h0UHQtbj5lLm92ZXJsYXBFcHNpbG9uUHR9KTtpZihpLmxlbmd0aD09PTApcmV0dXJuIE9iamVjdC5mcmVlemUoe2Jsb2NrU3RhcnRQdDpufSk7aWYocj09PXQubGVuZ3RoKXRocm93IEVycm9yKGBCbG9jay1mbG93IGZsb2F0IGFkbWlzc2lvbiBkaWQgbm90IGNvbnZlcmdlYCk7bj1NYXRoLm1heCguLi5pLm1hcChlPT5lLmV4Y2x1c2lvbkJvdW5kcy55UHQrZS5leGNsdXNpb25Cb3VuZHMuaGVpZ2h0UHQpKX10aHJvdyBFcnJvcihgQmxvY2stZmxvdyBmbG9hdCBhZG1pc3Npb24gZGlkIG5vdCBjb252ZXJnZWApfWZ1bmN0aW9uIEt5KGUpe2xldCB0PXp5KGUuYm91bmRzKSxuPWUuYmxvY2tlcnMuc29tZShuPT5uLmtpbmQ9PT1gdGFibGVgJiZFeSh0LHp5KG4uZXhjbHVzaW9uQm91bmRzKSxlLm92ZXJsYXBFcHNpbG9uUHQpKTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7ZGVmZXI6bixhcHBsaWVkQ29tcGF0aWJpbGl0eVJ1bGVJZHM6T2JqZWN0LmZyZWV6ZShuP1tBeS5pZF06W10pfSl9ZnVuY3Rpb24gcXkoZSl7bGV0IHQ9R3YoZSk7cmV0dXJuIHQuZXhwb25lbnQ+PTA/e251bWVyYXRvcjp0LmNvZWZmaWNpZW50PDxCaWdJbnQodC5leHBvbmVudCksZGVub21pbmF0b3I6MW59OntudW1lcmF0b3I6dC5jb2VmZmljaWVudCxkZW5vbWluYXRvcjoxbjw8QmlnSW50KC10LmV4cG9uZW50KX19ZnVuY3Rpb24gSnkoZSx0KXtyZXR1cm57bnVtZXJhdG9yOmUubnVtZXJhdG9yKnQuZGVub21pbmF0b3IrdC5udW1lcmF0b3IqZS5kZW5vbWluYXRvcixkZW5vbWluYXRvcjplLmRlbm9taW5hdG9yKnQuZGVub21pbmF0b3J9fWZ1bmN0aW9uIFl5KGUsdCl7cmV0dXJue251bWVyYXRvcjplLm51bWVyYXRvcip0LmRlbm9taW5hdG9yLXQubnVtZXJhdG9yKmUuZGVub21pbmF0b3IsZGVub21pbmF0b3I6ZS5kZW5vbWluYXRvcip0LmRlbm9taW5hdG9yfX1mdW5jdGlvbiBYeShlLHQpe3JldHVybntudW1lcmF0b3I6ZS5udW1lcmF0b3IqdC5udW1lcmF0b3IsZGVub21pbmF0b3I6ZS5kZW5vbWluYXRvcip0LmRlbm9taW5hdG9yfX1mdW5jdGlvbiBaeShlLHQpe2xldCBuPXQubnVtZXJhdG9yPDBuO3JldHVybntudW1lcmF0b3I6KG4/LWUubnVtZXJhdG9yOmUubnVtZXJhdG9yKSp0LmRlbm9taW5hdG9yLGRlbm9taW5hdG9yOmUuZGVub21pbmF0b3IqKG4/LXQubnVtZXJhdG9yOnQubnVtZXJhdG9yKX19ZnVuY3Rpb24gUXkoZSx0KXtsZXQgbj1xeShlKSxyPXF5KHQpO3JldHVybiBYdih7bnVtZXJhdG9yOm4ubnVtZXJhdG9yKnIuZGVub21pbmF0b3Irci5udW1lcmF0b3Iqbi5kZW5vbWluYXRvcixkZW5vbWluYXRvcjoybipuLmRlbm9taW5hdG9yKnIuZGVub21pbmF0b3J9KX1mdW5jdGlvbiAkeShlKXtzd2l0Y2goZSl7Y2FzZWBsZWZ0YDpjYXNlYHJpZ2h0YDpjYXNlYGxhcmdlc3RgOmNhc2VgYm90aFNpZGVzYDpyZXR1cm4gZTtkZWZhdWx0OnJldHVybmBib3RoU2lkZXNgfX1mdW5jdGlvbiBlYihlKXtyZXR1cm4gZT09PWBzcXVhcmVgfHxlPT09YHRvcEFuZEJvdHRvbWB8fGU9PT1gdGlnaHRgfHxlPT09YHRocm91Z2hgfWZ1bmN0aW9uIHRiKGUsdCxuKXtyZXR1cm4gZS54UmlnaHQ+dCsuMDEmJmUueExlZnQ8bi0uMDF9Y29uc3QgbmI9bmV3IFdlYWtNYXAscmI9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gaWIoZSl7cmV0dXJuIE9iamVjdC5pc0Zyb3plbihlKSYmZS5ldmVyeShlPT5PYmplY3QuaXNGcm96ZW4oZSkpfWZ1bmN0aW9uIGFiKGUsdCxuLHIsaSxhKXtyZXR1cm4gZS5raW5kPT09dCYmT2JqZWN0LmlzKGUueExlZnRQdCxuKSYmT2JqZWN0LmlzKGUueFJpZ2h0UHQscikmJk9iamVjdC5pcyhlLnlUb3BQdCxpKSYmT2JqZWN0LmlzKGUueUJvdHRvbVB0LGEpfWZ1bmN0aW9uIG9iKGUsdCxuKXtsZXQgcj1lLmF1dGhvcmVkV3JhcDtpZihyIT09YHRpZ2h0YCYmciE9PWB0aHJvdWdoYCl0aHJvdyBFcnJvcihgUG9seWdvbiBjb21waWxhdGlvbiByZXF1aXJlcyB0aWdodCBvciB0aHJvdWdoIHdyYXBgKTtsZXQgaT17a2luZDpyLGltYWdlS2V5OmUuaW1hZ2VLZXkscG9pbnRzOmUud3JhcFBvbHlnb24seExlZnRQdDplLnhMZWZ0LHhSaWdodFB0OmUueFJpZ2h0LHlUb3BQdDplLnlUb3AseUJvdHRvbVB0OmUueUJvdHRvbX07ZXkoaSk7bGV0IGE9aWIodCk7aWYoYSl7bGV0IGk9cmIuZ2V0KHQpPy5maW5kKHQ9PmFiKHQscixlLnhMZWZ0LGUueFJpZ2h0LGUueVRvcCxlLnlCb3R0b20pKTtpZihpKXJldHVybiBuJiYobi5wb2x5Z29uQ2FjaGVIaXRDb3VudCs9MSksaS5jb21waWxlZH1uJiYobi5wb2x5Z29uQ29tcGlsZUNvdW50Kz0xKTtsZXQgbz1neShpKTtpZihhKXtsZXQgbj1PYmplY3QuZnJlZXplKHtraW5kOnIseExlZnRQdDplLnhMZWZ0LHhSaWdodFB0OmUueFJpZ2h0LHlUb3BQdDplLnlUb3AseUJvdHRvbVB0OmUueUJvdHRvbSxjb21waWxlZDpvfSk7cmIuc2V0KHQsT2JqZWN0LmZyZWV6ZShbbiwuLi4ocmIuZ2V0KHQpPz9bXSkuc2xpY2UoMCwzKV0pKX1yZXR1cm4gb31mdW5jdGlvbiBzYihlLHQpe2xldCBuPWUubWFwKGU9PntsZXQgbj1lLndyYXBQb2x5Z29uO3QmJm4mJih0LnBvbHlnb25TbmFwc2hvdFBvaW50Q291bnQrPW4ubGVuZ3RoKTtsZXQgcj1PYmplY3QuZnJlZXplKHsuLi5lLC4uLm4/e3dyYXBQb2x5Z29uOk9iamVjdC5mcmVlemUobi5tYXAoZT0+T2JqZWN0LmZyZWV6ZSh7Li4uZX0pKSl9Ont9fSksaT1yLmF1dGhvcmVkV3JhcD09PWB0aWdodGB8fHIuYXV0aG9yZWRXcmFwPT09YHRocm91Z2hgP29iKHIsbj8/W10sdCk6bnVsbDtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7cmVjdDpyLHBvbHlnb246aSx3cmFwTWF4aW11bUxlZnRQdDppP01hdGgubWluKHIueExlZnQsaS5wb2x5Z29uTGVmdFB0KTpyLnhMZWZ0LHdyYXBNYXhpbXVtUmlnaHRQdDppP01hdGgubWF4KHIueFJpZ2h0LGkucG9seWdvblJpZ2h0UHQpOnIueFJpZ2h0fSl9KSxyPU9iamVjdC5mcmVlemUoe2Zsb2F0czpPYmplY3QuZnJlZXplKG4pfSk7cmV0dXJuIG5iLnNldChyLG5ldyBNYXApLHJ9ZnVuY3Rpb24gY2IoZSx0KXtsZXQgbj0keShlLnJlY3Quc2lkZSk7aWYobiE9PWBsYXJnZXN0YClyZXR1cm4gbjtsZXQgcj1RKFl5KHF5KGUud3JhcE1heGltdW1MZWZ0UHQpLHF5KHQueExlZnRQdCkpLFl5KHF5KHQueFJpZ2h0UHQpLHF5KGUud3JhcE1heGltdW1SaWdodFB0KSkpO3JldHVybiByPT09MD90LnJlYWRpbmdEaXJlY3Rpb249PT1gbHRyYD9gbGVmdGA6YHJpZ2h0YDpyPjA/YGxlZnRgOmByaWdodGB9ZnVuY3Rpb24gbGIoZSx0LG4scixpLGEpe2xldHtyZWN0Om8scG9seWdvbjpzfT1lLGM9cz9DeShzLHQsbik6W3tsOnF5KG8ueExlZnQpLHI6cXkoby54UmlnaHQpfV07aWYoYy5sZW5ndGg9PT0wKXJldHVybltdO2xldCBsPXM9PT1udWxsLHU9Yy5yZWR1Y2UoKGUsdCk9PlEodC5sLGUpPDA/dC5sOmUsY1swXS5sKSxkPWMucmVkdWNlKChlLHQpPT5RKHQucixlKT4wP3QucjplLGNbMF0ucik7c3dpdGNoKGNiKGUsYSkpe2Nhc2VgbGVmdGA6cmV0dXJuW3tsOnUscjpxeShpKSxsZWZ0U3F1YXJlQm91bmRhcnk6bCxyaWdodFNxdWFyZUJvdW5kYXJ5OiExfV07Y2FzZWByaWdodGA6cmV0dXJuW3tsOnF5KHIpLHI6ZCxsZWZ0U3F1YXJlQm91bmRhcnk6ITEscmlnaHRTcXVhcmVCb3VuZGFyeTpsfV07Y2FzZWBib3RoU2lkZXNgOnJldHVybiBjLm1hcChlPT4oey4uLmUsbGVmdFNxdWFyZUJvdW5kYXJ5OmwscmlnaHRTcXVhcmVCb3VuZGFyeTpsfSkpfX1mdW5jdGlvbiB1YihlLHQpe2xldCBuPW5iLmdldCh0KTtpZighbil0aHJvdyBFcnJvcihgUHJlcGFyZWQgZmxvYXQgZ2VvbWV0cnkgb21pdHRlZCBpdHMgc3dlZXAgY2FjaGVgKTtsZXQgcj1uLmdldChlKTtpZihyKXJldHVybiByO2xldCBpPW5ldyBTZXQsYT1lPT57TnVtYmVyLmlzRmluaXRlKGUpJiZpLmFkZChlKX07Zm9yKGxldHtyZWN0Om4scG9seWdvbjpyfW9mIHQuZmxvYXRzKWlmKGEoUXYoWXkocXkobi55VG9wKSxxeShlKSkpKSxhKG4ueUJvdHRvbSkscilmb3IobGV0IHQgb2Ygd3kocixlKSlhKHQpO2xldCBvPU9iamVjdC5mcmVlemUoWy4uLmldLnNvcnQoKGUsdCk9PmUtdCkpO3JldHVybiBuLnNldChlLG8pLG99ZnVuY3Rpb24gZGIoZSl7bGV0IHQ9ZS5maWx0ZXIoZT0+UShlLnIsZS5sKT4wKS5zbGljZSgpLnNvcnQoKGUsdCk9PlEoZS5sLHQubCl8fFEoZS5yLHQucikpLG49W107Zm9yKGxldCBlIG9mIHQpe2xldCB0PW4uYXQoLTEpO2lmKCF0fHxRKGUubCx0LnIpPjApe24ucHVzaCh7Li4uZX0pO2NvbnRpbnVlfVEoZS5sLHQubCk9PT0wJiYodC5sZWZ0U3F1YXJlQm91bmRhcnk9dC5sZWZ0U3F1YXJlQm91bmRhcnkmJmUubGVmdFNxdWFyZUJvdW5kYXJ5KTtsZXQgcj1RKGUucix0LnIpO3I+MD8odC5yPWUucix0LnJpZ2h0U3F1YXJlQm91bmRhcnk9ZS5yaWdodFNxdWFyZUJvdW5kYXJ5KTpyPT09MCYmKHQucmlnaHRTcXVhcmVCb3VuZGFyeT10LnJpZ2h0U3F1YXJlQm91bmRhcnkmJmUucmlnaHRTcXVhcmVCb3VuZGFyeSl9cmV0dXJuIG59ZnVuY3Rpb24gZmIoZSx0LG4scixpKXtsZXQgYT1kYihlKSxvPXF5KHQpLHM9cXkobiksYz1bXSxsPShlLHQsbik9PntsZXQgcj1RKG8sZSk+PTA/bzplLGk9UShzLHQpPD0wP3M6dDtRKGkscik+MCYmYy5wdXNoKHtsOnIscjppLHNxdWFyZUNvbnN0cmFpbmVkOm59KX0sdT1vLGQ9ITE7Zm9yKGxldCBlIG9mIGEpe2lmKFEoZS5yLG8pPD0wKXtkPWUucmlnaHRTcXVhcmVCb3VuZGFyeTtjb250aW51ZX1pZihRKGUubCxzKT49MCl7bCh1LHMsZCksdT1zO2JyZWFrfVEoZS5sLHUpPjAmJmwodSxlLmwsZHx8ZS5sZWZ0U3F1YXJlQm91bmRhcnkpO2xldCB0PVEoZS5yLHUpO2lmKHQ+MD8odT1lLnIsZD1lLnJpZ2h0U3F1YXJlQm91bmRhcnkpOnQ9PT0wJiYoZCYmPWUucmlnaHRTcXVhcmVCb3VuZGFyeSksUSh1LHMpPj0wKWJyZWFrfVEodSxzKTwwJiZsKHUscyxkKTtsZXQgZj17bnVtZXJhdG9yOjBuLGRlbm9taW5hdG9yOjFufTtmb3IobGV0IGUgb2YgYyl7bGV0IHQ9WXkoZS5yLGUubCk7USh0LGYpPjAmJihmPXQpfWZvcihsZXQgZSBvZiBjKXtsZXQgdD1ZeShlLnIsZS5sKTtpZihRKHQsZik9PT0wJiZRKHQscXkoTWF0aC5tYXgoMSxlLnNxdWFyZUNvbnN0cmFpbmVkP2k6cikpKT49MClyZXR1cm57bDplLmwscjplLnIsc3F1YXJlQ29uc3RyYWluZWQ6ZS5zcXVhcmVDb25zdHJhaW5lZH19cmV0dXJuIG51bGx9ZnVuY3Rpb24gcGIoZSx0LG4scixpLGEsbyxzLGMsbCx1KXtsZXQgZD1xeShlKSxmPUp5KGQscXkodCkpLHA9ZT0+cXkoZSk7aWYoYS5mbG9hdHMuc29tZSgoe3JlY3Q6ZX0pPT5lLm1vZGU9PT1gdG9wQW5kQm90dG9tYCYmdGIoZSxvLHMpJiZRKGYscChlLnlUb3ApKT4wJiZRKGQscChlLnlCb3R0b20pKTwwKSlyZXR1cm4gbnVsbDtsZXQgbT1bXTtmb3IobGV0IGkgb2YgYS5mbG9hdHMpe2xldHtyZWN0OmF9PWk7aWYoYS5tb2RlIT09YHNxdWFyZWB8fFEoZixwKGEueVRvcCkpPD0wfHxRKGQscChhLnlCb3R0b20pKT49MHx8IXRiKGEsbixyKSljb250aW51ZTtsZXQgbz1sYihpLGUsdCxuLHIsYyk7by5sZW5ndGghPT0wJiZtLnB1c2goLi4ubyl9aWYobS5sZW5ndGg9PT0wKXJldHVybnt0b3BZOmUseE9mZnNldDowLG1heFdpZHRoOml9O2xldCBoPWZiKG0sbixyLGwsdSk7aWYoIWgpcmV0dXJuIG51bGw7bGV0IGc9e251bWVyYXRvcjowbixkZW5vbWluYXRvcjoxbn0sXz1ZeShoLmwscXkobikpLHY9UShfLGcpPjA/XzpnLHk9cXkobiksYj1Rdih2KSx4PW4rYixTPXF5KHgpO2lmKFEoUyxoLmwpPDAmJihiPVF2KFl5KHF5KFF2KGgubCkpLHkpKSx4PW4rYixTPXF5KHgpKSxRKFMsaC5sKTwwKXRocm93IEVycm9yKGBFeGFjdCBmbG9hdCB3aW5kb3cgY291bGQgbm90IHJlcHJlc2VudCBhIGNvbnRhaW5lZCBzdGFydGApO2xldCBDPXF5KHIpLHc9UShoLnIsQyk8PTA/aC5yOkMsVD1ZeShxeSgkdih3KSksUyksRT0kdihRKFQsZyk+MD9UOmcpO2lmKFEocXkoeCtFKSx3KT4wKXRocm93IEVycm9yKGBFeGFjdCBmbG9hdCB3aW5kb3cgY291bGQgbm90IHJlcHJlc2VudCBhIGNvbnRhaW5lZCBlbmRgKTtyZXR1cm57dG9wWTplLHhPZmZzZXQ6YixtYXhXaWR0aDpFfX1mdW5jdGlvbiBtYihlLHQpe3JldHVybiBKeShYeShlLmV4YWN0LnNsb3BlLHF5KHQpKSxlLmV4YWN0LmludGVyY2VwdCl9ZnVuY3Rpb24gaGIoZSx0KXtyZXR1cm4gUShlLmV4YWN0LnNsb3BlLHQuZXhhY3Quc2xvcGUpPT09MCYmUShlLmV4YWN0LmludGVyY2VwdCx0LmV4YWN0LmludGVyY2VwdCk9PT0wfWZ1bmN0aW9uIGdiKGUsdCxuKXtyZXR1cm4gUShtYihlLG4pLG1iKHQsbikpfHxRKGUuZXhhY3Quc2xvcGUsdC5leGFjdC5zbG9wZSl9ZnVuY3Rpb24gX2IoZSx0LG4pe2xldCByPVl5KGUuc2xvcGUsdC5zbG9wZSk7aWYoci5udW1lcmF0b3I9PT0wbilyZXR1cm4gbnVsbDtsZXQgaT1ZeShlLmludGVyY2VwdCx0LmludGVyY2VwdCk7cmV0dXJuIFp5KFl5KHF5KG4pLGkpLHIpfWZ1bmN0aW9uIHZiKGUsdCxuLHIsaSl7dD09PW51bGx8fFEodCxxeShuKSk8PTB8fFEodCxxeShyKSk+PTB8fChlLnB1c2goUXYodCkpLGkmJihpLmxvY2FsUm9vdENhbmRpZGF0ZUNvdW50Kz0xKSl9ZnVuY3Rpb24geWIoZSx0LG4scixpLGEpe2xldCBvPWVbMF07Zm9yKGxldCByIG9mIGUuc2xpY2UoMSkpe2xldCBlPWdiKHIsbyxuKTsodD09PWBtaW5gJiZlPDB8fHQ9PT1gbWF4YCYmZT4wKSYmKG89cil9bGV0IHM9by5zcXVhcmU7Zm9yKGxldCBjIG9mIGUpaWYoYyE9PW8pe2lmKGhiKGMsbykpe3MmJj1jLnNxdWFyZTtjb250aW51ZX0odD09PWBtaW5gP1EoYy5leGFjdC5zbG9wZSxvLmV4YWN0LnNsb3BlKTwwOlEoYy5leGFjdC5zbG9wZSxvLmV4YWN0LnNsb3BlKT4wKSYmdmIoaSxfYihjLmV4YWN0LG8uZXhhY3QsMCksbixyLGEpfXJldHVybntleGFjdDpvLmV4YWN0LHNxdWFyZTpzfX1mdW5jdGlvbiBiYihlLHQ9ITEpe3JldHVybntleGFjdDp7c2xvcGU6e251bWVyYXRvcjowbixkZW5vbWluYXRvcjoxbn0saW50ZXJjZXB0OnF5KGUpfSxzcXVhcmU6dH19ZnVuY3Rpb24geGIoZSx0LG4scixpLGEsbyxzLGMpe2xldHtyZWN0OmwscG9seWdvbjp1fT1lLGQ9cXkoUXkobixyKSk7aWYoUShKeShkLHF5KHQpKSxxeShsLnlUb3ApKTw9MHx8UShkLHF5KGwueUJvdHRvbSkpPj0wKXJldHVybltdO2xldCBmPXU/VHkodSx0LG4scikubWFwKGU9Pih7bGVmdDp7ZXhhY3Q6ZS5sZWZ0LHNxdWFyZTohMX0scmlnaHQ6e2V4YWN0OmUucmlnaHQsc3F1YXJlOiExfX0pKTpbe2xlZnQ6YmIobC54TGVmdCwhMCkscmlnaHQ6YmIobC54UmlnaHQsITApfV07aWYoZi5sZW5ndGg9PT0wKXJldHVybltdO2xldCBwPXliKGYubWFwKGU9PmUubGVmdCksYG1pbmAsbixyLHMsYyksbT15YihmLm1hcChlPT5lLnJpZ2h0KSxgbWF4YCxuLHIscyxjKTtzd2l0Y2godT8ua2luZD09PWB0aWdodGAmJihmPVt7bGVmdDpwLHJpZ2h0Om19XSksY2IoZSxvKSl7Y2FzZWBsZWZ0YDpyZXR1cm5be2xlZnQ6cCxyaWdodDpiYihhKX1dO2Nhc2VgcmlnaHRgOnJldHVyblt7bGVmdDpiYihpKSxyaWdodDptfV07Y2FzZWBib3RoU2lkZXNgOnJldHVybiBmfX1mdW5jdGlvbiBTYihlLHQsbixyLGkpe2xldCBhPWUuc2xpY2UoKS5zb3J0KChlLG4pPT5nYihlLmxlZnQsbi5sZWZ0LHQpfHxnYihlLnJpZ2h0LG4ucmlnaHQsdCkpO2ZvcihsZXQgZT0wO2UrMTxhLmxlbmd0aDtlKz0xKXZiKHIsX2IoYVtlXS5sZWZ0LmV4YWN0LGFbZSsxXS5sZWZ0LmV4YWN0LDApLHQsbixpKTtsZXQgbz1bXTtmb3IobGV0IGUgb2YgYSl7bGV0IGE9by5hdCgtMSk7aWYoIWEpe28ucHVzaChlKTtjb250aW51ZX1pZih2YihyLF9iKGUubGVmdC5leGFjdCxhLnJpZ2h0LmV4YWN0LDApLHQsbixpKSxnYihlLmxlZnQsYS5yaWdodCx0KT4wKXtvLnB1c2goZSk7Y29udGludWV9bGV0IHM9eWIoW2EucmlnaHQsZS5yaWdodF0sYG1heGAsdCxuLHIsaSksYz1oYihhLmxlZnQsZS5sZWZ0KT97ZXhhY3Q6YS5sZWZ0LmV4YWN0LHNxdWFyZTphLmxlZnQuc3F1YXJlJiZlLmxlZnQuc3F1YXJlfTphLmxlZnQ7b1tvLmxlbmd0aC0xXT17bGVmdDpjLHJpZ2h0OnN9fXJldHVybiBvfWZ1bmN0aW9uIENiKGUsdCxuLHIsaSxhLG8scyxjLGwsdSxkKXtsZXQgZj1xeShReShlLHQpKSxwPUp5KGYscXkobikpO2lmKGEuZmxvYXRzLnNvbWUoKHtyZWN0OmV9KT0+ZS5tb2RlPT09YHRvcEFuZEJvdHRvbWAmJnRiKGUsbyxzKSYmUShwLHF5KGUueVRvcCkpPjAmJlEoZixxeShlLnlCb3R0b20pKTwwKSlyZXR1cm4gbnVsbDtsZXQgbT1bXSxoPVtdO2ZvcihsZXQgbyBvZiBhLmZsb2F0cyl7bGV0e3JlY3Q6YX09bzthLm1vZGU9PT1gc3F1YXJlYCYmdGIoYSxyLGkpJiZoLnB1c2goLi4ueGIobyxuLGUsdCxyLGksYyxtLGQpKX1pZihoLmxlbmd0aD09PTApcmV0dXJuIG51bGw7bGV0IGc9U2IoaCxlLHQsbSxkKSxfPWJiKHIpLHY9YmIoaSkseT1bXSxiPShuLHIsaSk9PntsZXQgYT17c2xvcGU6WXkoci5leGFjdC5zbG9wZSxuLmV4YWN0LnNsb3BlKSxpbnRlcmNlcHQ6WXkoci5leGFjdC5pbnRlcmNlcHQsbi5leGFjdC5pbnRlcmNlcHQpfTt5LnB1c2goe2V4YWN0V2lkdGg6YX0pO2xldCBvPU1hdGgubWF4KDEsaT91OmwpO1EoSnkoWHkoYS5zbG9wZSxxeShlKSksYS5pbnRlcmNlcHQpLHF5KG8pKTwwJiZhLnNsb3BlLm51bWVyYXRvcj4wbiYmdmIobSxfYihyLmV4YWN0LG4uZXhhY3QsbyksZSx0LGQpfSx4PV87Zm9yKGxldCBlIG9mIGcpYih4LGUubGVmdCx4LnNxdWFyZXx8ZS5sZWZ0LnNxdWFyZSkseD1lLnJpZ2h0O2IoeCx2LHguc3F1YXJlKTtsZXQgUz15WzBdO2ZvcihsZXQgdCBvZiB5LnNsaWNlKDEpKShRKEp5KFh5KHQuZXhhY3RXaWR0aC5zbG9wZSxxeShlKSksdC5leGFjdFdpZHRoLmludGVyY2VwdCksSnkoWHkoUy5leGFjdFdpZHRoLnNsb3BlLHF5KGUpKSxTLmV4YWN0V2lkdGguaW50ZXJjZXB0KSl8fFEodC5leGFjdFdpZHRoLnNsb3BlLFMuZXhhY3RXaWR0aC5zbG9wZSkpPjAmJihTPXQpO2lmKFMpZm9yKGxldCBuIG9mIHkpbj09PVN8fFEobi5leGFjdFdpZHRoLnNsb3BlLFMuZXhhY3RXaWR0aC5zbG9wZSk8PTB8fHZiKG0sX2Iobi5leGFjdFdpZHRoLFMuZXhhY3RXaWR0aCwwKSxlLHQsZCk7cmV0dXJuIG0ubGVuZ3RoPT09MD9udWxsOk1hdGgubWluKC4uLm0pfWZ1bmN0aW9uIHdiKGUsdCxuLHIsaSxhLG89cixzPXIraSxjPXt4TGVmdFB0OnIseFJpZ2h0UHQ6citpLHJlYWRpbmdEaXJlY3Rpb246YGx0cmB9LGw9dCx1PW51bGwpe2xldCBkPXIsZj1yK2kscD11YihuLGEpO2lmKHUpe3Uuc3RydWN0dXJhbEV2ZW50Q291bnQ9cC5sZW5ndGg7Zm9yKGxldHtwb2x5Z29uOmV9b2YgYS5mbG9hdHMpZSYmKHUuY29tcGlsZWRJbnRlcnNlY3Rpb25Db3VudCs9ZS5pbnRlcnNlY3Rpb25Db3VudCx1LmNvbXBpbGVkQ29udG91clNwYW5Db3VudCs9ZS5jb250b3VyU3BhbnMubGVuZ3RoLHUuY29tcGlsZU9yZGVyQ29tcGFyaXNvbkNvdW50Kz1lLmNvbXBpbGVPcmRlckNvbXBhcmlzb25Db3VudCx1LmNvbXBpbGVQYWlyTWVtYmVyc2hpcFZpc2l0Q291bnQrPWUuY29tcGlsZVBhaXJNZW1iZXJzaGlwVmlzaXRDb3VudCl9bGV0IG09ZT0+KHUmJih1LmV2YWx1YXRlZFlDb3VudCs9MSkscGIoZSxuLGQsZixpLGEsbyxzLGMsdCxsKSksaD1tKGUpO2lmKGgpcmV0dXJuIGg7bGV0IGc9ZSxfPXAuZmluZEluZGV4KGU9PmU+Zyk7Zm9yKDtfPj0wJiZfPHAubGVuZ3RoOyl7bGV0IGU9cFtfXSxyPUNiKGcsZSxuLGQsZixhLG8scyxjLHQsbCx1KTtpZihyIT09bnVsbCl7dSYmKHUubG9jYWxSb290RXZlbnRDb3VudCs9MSk7bGV0IGU9bShyKTtpZihlKXJldHVybiBlO2c9cjtjb250aW51ZX1sZXQgaT1tKGUpO2lmKGkpcmV0dXJuIGk7Zz1lO2RvIF8rPTE7d2hpbGUoXzxwLmxlbmd0aCYmcFtfXTw9Zyl9dGhyb3cgRXJyb3IoYEZpbml0ZSBmbG9hdCBsaW5lLXdpbmRvdyBldmVudCBzd2VlcCBmb3VuZCBubyB1c2FibGUgdGVybWluYWwgWWApfWZ1bmN0aW9uIFRiKGUsdCxuLHIsaSxhLG89cixzPXIraSxjPXt4TGVmdFB0OnIseFJpZ2h0UHQ6citpLHJlYWRpbmdEaXJlY3Rpb246YGx0cmB9LGw9dCl7cmV0dXJuIHdiKGUsdCxuLHIsaSxhLG8scyxjLGwpfWZ1bmN0aW9uIEViKGUsdCxuLHIpe2xldCBpPW5ldyBTZXQ7Zm9yKDs7KXtsZXQgYT1lO2ZvcihsZXQgaSBvZiB0KWkubW9kZT09PWB0b3BBbmRCb3R0b21gJiZ0YihpLG4scikmJmU+PWkueVRvcCYmZTxpLnlCb3R0b20mJihhPU1hdGgubWF4KGEsaS55Qm90dG9tKSk7aWYoYT09PWUpcmV0dXJuIGU7aWYoIU51bWJlci5pc0Zpbml0ZShhKXx8YTxlfHxpLmhhcyhhKSl0aHJvdyBFcnJvcihgVG9wLWFuZC1ib3R0b20gc29sdmVyIHZpb2xhdGVkIHN0cmljdGx5IGluY3JlYXNpbmcgZmluaXRlLWJvdHRvbSBwcm9ncmVzc2ApO2kuYWRkKGEpLGU9YX19Y29uc3QgRGI9bmV3IFNldChbYCtgLGAtYCxg4oiSYCxgPWAsYMKxYCxgw5dgLGDDt2BdKTtmdW5jdGlvbiBPYihlKXtyZXR1cm4gRGIuaGFzKGUpP2AgJHtlfSBgOmV9ZnVuY3Rpb24ga2IoZSl7cmV0dXJuIGUubWFwKGU9Pntzd2l0Y2goZS5raW5kKXtjYXNlYHJ1bmA6cmV0dXJuIE9iKGUudGV4dCk7Y2FzZWBmcmFjdGlvbmA6cmV0dXJuYCR7a2IoZS5udW0pfS8ke2tiKGUuZGVuKX1gO2Nhc2Vgc3VwYDpyZXR1cm5gJHtrYihlLmJhc2UpfV4ke2tiKGUuc3VwPz9bXSl9YDtjYXNlYHN1YmA6cmV0dXJuYCR7a2IoZS5iYXNlKX1fJHtrYihlLnN1Yj8/W10pfWA7Y2FzZWBzdWJTdXBgOnJldHVybmAke2tiKGUuYmFzZSl9XyR7a2IoZS5zdWI/P1tdKX1eJHtrYihlLnN1cD8/W10pfWA7Y2FzZWBuYXJ5YDpyZXR1cm5gJHtlLm9wfSR7a2IoZS5zdWI/P1tdKX0ke2tiKGUuc3VwPz9bXSl9JHtrYihlLmJvZHkpfWA7Y2FzZWBkZWxpbWl0ZXJgOnJldHVybmAke2UuYmVnQ2hhcn0ke2UuaXRlbXMubWFwKGtiKS5qb2luKGAsYCl9JHtlLmVuZENoYXJ9YDtjYXNlYHJhZGljYWxgOnJldHVybmAke2UuaW5kZXg/Lmxlbmd0aD9rYihlLmluZGV4KTpgYH3iiJoke2tiKGUucmFkaWNhbmQpfWA7Y2FzZWBsaW1pdGA6cmV0dXJuYCR7a2IoZS5iYXNlKX0ke2tiKGUubG93ZXI/P1tdKX0ke2tiKGUudXBwZXI/P1tdKX1gO2Nhc2VgYXJyYXlgOnJldHVybiBlLnJvd3MubWFwKGU9PmUubWFwKGtiKS5qb2luKGAgYCkpLmpvaW4oYCBgKTtjYXNlYGdyb3VwQ2hyYDpyZXR1cm5gJHtlLmNoYXJ9JHtrYihlLmJhc2UpfWA7Y2FzZWBiYXJgOmNhc2VgYm94YDpjYXNlYGJvcmRlckJveGA6cmV0dXJuIGtiKGUuYmFzZSk7Y2FzZWBhY2NlbnRgOnJldHVybmAke2UuY2hhcn0ke2tiKGUuYmFzZSl9YDtjYXNlYGZ1bmNgOnJldHVybmAke2tiKGUubmFtZSl9KCR7a2IoZS5hcmcpfSlgO2Nhc2VgZ3JvdXBgOnJldHVybiBrYihlLml0ZW1zKTtjYXNlYHBoYW50YDpyZXR1cm4gZS5zaG93P2tiKGUuYmFzZSk6YGA7Y2FzZWBzUHJlYDpyZXR1cm5gJHtrYihlLnN1Yil9JHtrYihlLnN1cCl9JHtrYihlLmJhc2UpfWB9fSkuam9pbihgYCkucmVwbGFjZSgvWyBcdF17Mix9L2csYCBgKX12YXIgQWI9Y2xhc3MgZXh0ZW5kcyBae3JlYXNvbjtzdGF0ZXM7cGFzc2VzO2NvbnN0cnVjdG9yKGUsdCxuKXtzdXBlcihgTk9OX0NPTlZFUkdFTkNFYCxlPT09YGN5Y2xlYD9gcmVwZWF0ZWQgZXhhY3Qtc3RhdGUgY3ljbGUgYXQgJHt0LmF0KC0xKT8/YDxtaXNzaW5nPmB9YDpgaGFyZCBleGFjdC1zdGF0ZSBwYXNzIGxpbWl0ICR7bn0gcmVhY2hlZGApLHRoaXMubmFtZT1gRXhhY3RDb252ZXJnZW5jZUVycm9yYCx0aGlzLnJlYXNvbj1lLHRoaXMuc3RhdGVzPU9iamVjdC5mcmVlemUoWy4uLnRdKSx0aGlzLnBhc3Nlcz1ufX07ZnVuY3Rpb24gamIoZSl7bGV0e3NlZWRTdGF0ZTp0LHN0ZXA6bixzdGF0ZU9mOnIsbGltaXQ6aX09ZSxhPXQ9PT12b2lkIDA/MjoxO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKGkpfHxpPGEpdGhyb3cgUmFuZ2VFcnJvcihgRXhhY3QgY29udmVyZ2VuY2UgbGltaXQgbXVzdCBiZSBhbiBpbnRlZ2VyID49ICR7YX1gKTtsZXQgbz10PT09dm9pZCAwP1tdOlt0XSxzPW5ldyBTZXQobyksYz1udWxsO2ZvcihsZXQgZT0xO2U8PWk7ZSs9MSl7bGV0IHQ9bihjLGUpLGE9cih0KSxsPW8uYXQoLTEpO2lmKG8ucHVzaChhKSxsPT09YSlyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7dmFsdWU6dCxwYXNzZXM6ZX0pO2lmKHMuaGFzKGEpKXRocm93IG5ldyBBYihgY3ljbGVgLG8sZSk7aWYocy5hZGQoYSksZT09PWkpdGhyb3cgbmV3IEFiKGBsaW1pdGAsbyxlKTtjPXR9dGhyb3cgbmV3IEFiKGBsaW1pdGAsbyxpKX1mdW5jdGlvbiBNYihlLHQsbil7aWYoIU51bWJlci5pc0ludGVnZXIobil8fG48MSl0aHJvdyBuZXcgWihgTk9OX0NPTlZFUkdFTkNFYCxgbGltaXQgbXVzdCBiZSBhIHBvc2l0aXZlIGludGVnZXJgKTt0cnl7cmV0dXJuIGpiKHtzZWVkU3RhdGU6ZS5maW5nZXJwcmludCxzdGVwOm49PnQobj8/ZSksc3RhdGVPZjplPT5lLmZpbmdlcnByaW50LGxpbWl0Om59KS52YWx1ZX1jYXRjaChlKXt0aHJvdyBlIGluc3RhbmNlb2YgQWI/bmV3IFooYE5PTl9DT05WRVJHRU5DRWAsZS5yZWFzb249PT1gY3ljbGVgP2ByZXBlYXRlZCBnZW9tZXRyeSBmaW5nZXJwcmludCBjeWNsZSBhdCAke2Uuc3RhdGVzLmF0KC0xKT8/YDxtaXNzaW5nPmB9YDpgaGFyZCBpdGVyYXRpb24gbGltaXQgJHtufSByZWFjaGVkYCk6ZX19dmFyIE5iPWNsYXNzIGV4dGVuZHMgWntyZWFzb247c3RhdGVzO2NvbnN0cnVjdG9yKGUsdCl7c3VwZXIoYE5PTl9DT05WRVJHRU5DRWAsZT09PWBjeWNsZWA/YGxpbmUgd3JhcCBtZWFzdXJlL3Jlc29sdmUgY3ljbGUgZGlkIG5vdCBjb252ZXJnZSAoJHt0Lmxlbmd0aH0gc3RhdGVzKWA6YGxpbmUgd3JhcCBtZWFzdXJlL3Jlc29sdmUgcGFzcyBsaW1pdCBkaWQgbm90IGNvbnZlcmdlICgke3QubGVuZ3RofSBzdGF0ZXMpYCksdGhpcy5uYW1lPWBMaW5lV3JhcE5vbkNvbnZlcmdlbmNlRXJyb3JgLHRoaXMucmVhc29uPWUsdGhpcy5zdGF0ZXM9T2JqZWN0LmZyZWV6ZShbLi4udF0pfX07ZnVuY3Rpb24gUGIoZSl7cmV0dXJuIGUubWFwKGU9Pih7Li4uZX0pKX1mdW5jdGlvbiBGYihlLHQpe3JldHVybiBKU09OLnN0cmluZ2lmeShlLm1hcCgoZSxuKT0+KHtlbmQ6ZS5jb25zdW1lZEVuZCx0b3BZOmUudG9wWSx4T2Zmc2V0OmUueE9mZnNldCxhdmFpbGFibGVXaWR0aDplLmF2YWlsV2lkdGgscHJvYmVIZWlnaHQ6dFtuXSxzZWdtZW50czplLnNlZ21lbnRzLm1hcChlPT4oe3NvdXJjZTplLnNyYywuLi5lLnRleHQ9PT12b2lkIDA/e306e3RleHQ6ZS50ZXh0fX0pKX0pKSl9ZnVuY3Rpb24gSWIoZSx0KXt0cnl7cmV0dXJuIGpiKHtzdGVwOm49PntsZXQgcj1lKG4/LnByb2JlSGVpZ2h0cz8/bnVsbCksaT1PYmplY3QuZnJlZXplKHIubWFwKHQpKTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7bGluZXM6cixwcm9iZUhlaWdodHM6aSxzdGF0ZTpGYihyLGkpfSl9LHN0YXRlT2Y6ZT0+ZS5zdGF0ZSxsaW1pdDoxNn0pLnZhbHVlLmxpbmVzfWNhdGNoKGUpe3Rocm93IGUgaW5zdGFuY2VvZiBBYj9uZXcgTmIoZS5yZWFzb24sZS5zdGF0ZXMpOmV9fSQoe2lkOmB3b3JkLWVhc3QtYXNpYW4tZ3JpZC1saW5lLWFsbG9jYXRpb25gLGV2aWRlbmNlOntraW5kOmByZWdyZXNzaW9uLXRlc3RgLHJlZmVyZW5jZTpgcGFja2FnZXMvZG9jeC9zcmMvbGF5b3V0L2NvbXBhdGliaWxpdHkudGVzdC50cyNwaW5zIEVhc3QgQXNpYW4gZ3JpZCBhbGxvY2F0aW9uIGFuZCB0aGUgdW50YWJsZWQgRmFyIEVhc3QgbWV0cmljIGZhY3RvcmB9LGRlc2NyaXB0aW9uOmBGb3IgYW4gRWFzdCBBc2lhbiBzaW5nbGUtc3BhY2VkIGxpbmUgb24gYSBkb2N1bWVudCBncmlkLCBwcmVzZXJ2ZSB0aGUgbWVhc3VyZWQgd2hvbGUtY2VsbCBhbGxvY2F0aW9uIGZyb20gdGhlIGludGVuZGVkIGZhY2UgZGVzaWduIGhlaWdodCBhbmQgdXNlIHRoZSBlc3RhYmxpc2hlZCAxLjMtdGltZXMtZW0gZmFsbGJhY2sgb25seSB3aGVuIHRoYXQgZGVzaWduIGhlaWdodCBpcyB1bmF2YWlsYWJsZS5gfSksJCh7aWQ6YHdvcmQtdGFibGUtY2VsbC1pZ25vcmVzLWdyaWQtcmlnaHQtaW5kZW50LWFkanVzdG1lbnRgLGV2aWRlbmNlOntraW5kOmBvZmZpY2Utb2JzZXJ2YXRpb25gLHN5bnRoZXRpY0ZpeHR1cmVJZDpgdGFibGUtY2VsbC1hZGp1c3QtcmlnaHQtaW5kZW50LXdpZHRoLXBvc2l0aW9uLW1hdHJpeGAsYXBwbGljYXRpb246YE1pY3Jvc29mdCBXb3JkYCx2ZXJzaW9uOmAxNi4xMTEuMWAscGxhdGZvcm06YG1hY09TIDI2LjUuMmB9LGRlc2NyaXB0aW9uOmBJbiB0aGUgb2JzZXJ2ZWQgbGluZXNBbmRDaGFycyBtYXRyaXgsIHBhcmFncmFwaHMgaW5zaWRlIGZpeGVkLXdpZHRoIHRhYmxlIGNlbGxzIHJldGFpbiB0aGUgc2FtZSBsaW5lIGJyZWFrcyBmb3Igb21pdHRlZCAoZGVmYXVsdCB0cnVlKSBhbmQgZXhwbGljaXQtZmFsc2UgdzphZGp1c3RSaWdodEluZCBhY3Jvc3MgZm91ciBib3VuZGFyeSB3aWR0aHMgYW5kIGJvdGggbGVmdC9yaWdodCBjZWxsIHBvc2l0aW9ucy4gU2NvcGUgdGhpcyBXb3JkLW9ubHkgZXhjZXB0aW9uIHRvIHRhYmxlLWNlbGwgY29udGFpbmVyczsgb3JkaW5hcnkgYm9keSBwYXJhZ3JhcGhzIHJldGFpbiB0aGUgRUNNQS0zNzYgwqcxNy4zLjEuMSBhZGp1c3RtZW50LmB9KSwkKHtpZDpgd29yZC1zbmFwLXRvLWNoYXJzLWVhc3QtYXNpYW4tY2VsbC1maXRgLGV2aWRlbmNlOntraW5kOmBvZmZpY2Utb2JzZXJ2YXRpb25gLHN5bnRoZXRpY0ZpeHR1cmVJZDpgc25hcC10by1jaGFycy1lYXN0LWFzaWFuLWNlbGwtZml0LW1hdHJpeGAsYXBwbGljYXRpb246YE1pY3Jvc29mdCBXb3JkYCx2ZXJzaW9uOmAxNi4xMTEuMWAscGxhdGZvcm06YG1hY09TIDI2LjUuMmB9LGRlc2NyaXB0aW9uOmBGb3Igc25hcFRvQ2hhcnMsIFdvcmQgY2VudGVycyBlYWNoIEVhc3QtQXNpYW4gZ3JhcGhlbWUgaW5kZXBlbmRlbnRseSBpbiB0aGUgc21hbGxlc3Qgd2hvbGUgbnVtYmVyIG9mIGNoYXJhY3Rlci1waXRjaCB1bml0cyB0aGF0IGNvbnRhaW5zIGl0cyBuYXR1cmFsIGFkdmFuY2UuIEEgZ3JhcGhlbWUgdGhhdCBmaXRzIHVzZXMgdGhlIG9uZS11bml0IHBsYWNlbWVudCBkZXNjcmliZWQgYnkgW01TLU9JMjk1MDBdIMKnMi4xLjUzNDsgYW4gdW5kZXJzaXplZCBhdXRob3JlZCBwaXRjaCBleHBhbmRzIG9ubHkgdGhhdCBncmFwaGVtZSB0byBhZGRpdGlvbmFsIHVuaXRzLmB9KSwkKHtpZDpgd29yZC1zbmFwLXRvLWNoYXJzLXNjcmlwdC1ibG9jay1hbGxvY2F0aW9uYCxldmlkZW5jZTp7a2luZDpgbWljcm9zb2Z0LW5vdGVgLHJlZmVyZW5jZTpgW01TLU9JMjk1MDBdIMKnMi4xLjUzNGB9LGRlc2NyaXB0aW9uOmBBbGxvY2F0ZSBzbmFwVG9DaGFycyBMYXRpbiB0ZXh0IGluIGNvbnRpZ3VvdXMgYmxvY2tzIGNlbnRlcmVkIGFjcm9zcyB0aGUgcmVxdWlyZWQgZ3JpZCB1bml0cywgY29tcGxleC1zY3JpcHQgYmxvY2tzIGZyb20gdGhlaXIgbGVhZGluZyBlZGdlLCBhbmQgRWFzdC1Bc2lhbiBncmFwaGVtZXMgaW5kZXBlbmRlbnRseSBieSBjaGFyYWN0ZXIgY2VsbC5gfSk7ZnVuY3Rpb24gTGIoZSx0KXtyZXR1cm4hKHQ+MCl8fCFOdW1iZXIuaXNGaW5pdGUoZSk/MTpNYXRoLm1heCgxLE1hdGguY2VpbChNYXRoLm1heCgwLGUpL3QtMWUtOSkpfWZ1bmN0aW9uIFJiKGUpe3JldHVybiFlfSQoe2lkOmB3b3JkLWdyaWQtcmlnaHQtaW5kZW50LXBpdGNoLWFsaWdubWVudGAsZXZpZGVuY2U6e2tpbmQ6YG9mZmljZS1vYnNlcnZhdGlvbmAsc3ludGhldGljRml4dHVyZUlkOmBncmlkLXJpZ2h0LWluZGVudC1jaGFyYWN0ZXItcGl0Y2gtYm91bmRhcnktbWF0cml4YCxhcHBsaWNhdGlvbjpgTWljcm9zb2Z0IFdvcmRgLHZlcnNpb246YDE2LjExMS4xYCxwbGF0Zm9ybTpgbWFjT1MgMjYuNS4yYH0sZGVzY3JpcHRpb246YEZvciBib2R5IHBhcmFncmFwaHMgd2hvc2UgRUNNQS0zNzYgwqcxNy4zLjEuMSBhZGp1c3RtZW50IGlzIGVuYWJsZWQgb24gYSBsaW5lc0FuZENoYXJzIGNoYXJhY3RlciBncmlkLCBXb3JkIHJlZHVjZXMgdGhlIHBoeXNpY2FsIGxpbmUgd2lkdGggdG8gdGhlIGdyZWF0ZXN0IHdob2xlIGNoYXJhY3Rlci1waXRjaCBtdWx0aXBsZSBub3QgZXhjZWVkaW5nIHRoZSBhdmFpbGFibGUgd2lkdGguIFRoZSBvYnNlcnZlZCBtYXRyaXggY292ZXJzIGV4YWN0IGFuZCBub24tZXhhY3Qgd2lkdGhzLCB6ZXJvIGFuZCBuZWdhdGl2ZSBjaGFyU3BhY2UsIGV4cGxpY2l0IG9wdC1vdXQsIGxpbmUtb25seSBjb250cm9sLCBib3RoIHBoeXNpY2FsIGluZGVudCBzaWRlcywgYW5kIHRoZSBzZXBhcmF0ZWx5IHJlZ2lzdGVyZWQgdGFibGUtY2VsbCBleGNlcHRpb24uYH0pO2Z1bmN0aW9uIHpiKGUsdCl7aWYoISh0PjApfHwhTnVtYmVyLmlzRmluaXRlKGUpfHxlPD0wKXJldHVybiAwO2xldCBuPShlJXQrdCkldCxyPTFlLTk7cmV0dXJuIG48PXJ8fHQtbjw9cj8wOm59JCh7aWQ6YHdvcmQtaGFuZ2luZy10YWItc2FtZS1wb3NpdGlvbi1wcmVjZWRlbmNlYCxldmlkZW5jZTp7a2luZDpgb2ZmaWNlLW9ic2VydmF0aW9uYCxzeW50aGV0aWNGaXh0dXJlSWQ6YGhhbmdpbmctaW5kZW50LWF1dGhvcmVkLXRhYi1jb2xsaXNpb24tbWF0cml4YCxhcHBsaWNhdGlvbjpgTWljcm9zb2Z0IFdvcmRgLHZlcnNpb246YDE2LjExMS4xYCxwbGF0Zm9ybTpgbWFjT1MgMjYuNS4yYH0sZGVzY3JpcHRpb246YFdoZW4gdGhlIGltcGxpY2l0IHRhYiBjcmVhdGVkIGJ5IGEgaGFuZ2luZyBpbmRlbnQgc2hhcmVzIGl0cyBjb29yZGluYXRlIHdpdGggYW4gYXV0aG9yZWQgY2VudGVyLCBlbmQsIG9yIHN0YXJ0IHN0b3AsIFdvcmQgcmVzb2x2ZXMgb25lIGFkdmFuY2luZyBzdG9wIGF0IHRoYXQgY29vcmRpbmF0ZSB1c2luZyB0aGUgYXV0aG9yZWQgYWxpZ25tZW50LiBBbiBhdXRob3JlZCBiYXIgcmVtYWlucyBhbiBpbmRlcGVuZGVudCBkcmF3aW5nIHJ1bGUsIHNvIHRoZSBpbXBsaWNpdCBhZHZhbmNpbmcgc3RvcCBzdXJ2aXZlcyBiZXNpZGUgaXQuIElmIGNlbnRlci9lbmQgYWxpZ25tZW50IHdvdWxkIHBsYWNlIGZvbGxvd2luZyB0ZXh0IGJlZm9yZSB0aGUgY3VycmVudCBwZW4sIHRoZSB0YWIgY29udHJpYnV0ZXMgemVybyBhZHZhbmNlLmB9KTtmdW5jdGlvbiBCYihlKXtyZXR1cm4gZSE9PWBiYXJgJiZlIT09YGNsZWFyYH0kKHtpZDpgd29yZC1ydGwtZGVjaW1hbC10YWItcGh5c2ljYWwtYWxpZ25tZW50YCxldmlkZW5jZTp7a2luZDpgb2ZmaWNlLW9ic2VydmF0aW9uYCxzeW50aGV0aWNGaXh0dXJlSWQ6YHJ0bC1kZWNpbWFsLXRhYi1ydW4tYm91bmRhcnktbWF0cml4YCxhcHBsaWNhdGlvbjpgTWljcm9zb2Z0IFdvcmRgLHZlcnNpb246YDE2LjExMS4xYCxwbGF0Zm9ybTpgbWFjT1MgMjYuNS4yYH0sZGVzY3JpcHRpb246YEZvciBMVFIgbnVtZXJpYyBjZWxscyBlbWJlZGRlZCBpbiBhIGJpZGkgcGFyYWdyYXBoLCBXb3JkIGFsaWducyB0aGUgcGh5c2ljYWwgbGVmdCBlZGdlIG9mIHRoZSBmaXJzdCBoYWxmd2lkdGggcGVyaW9kIHRvIHRoZSBkZWNpbWFsIHN0b3AgYWNyb3NzIHNvdXJjZS1ydW4gYm91bmRhcmllcy4gV2hlbiBubyBwZXJpb2QgZXhpc3RzLCBpdCBhbGlnbnMgdGhlIG51bWVyaWMgY2VsbCdzIHBoeXNpY2FsIHJpZ2h0IGVkZ2UgdG8gdGhlIHN0b3AuYH0pLCQoe2lkOmB3b3JkLWRlY2ltYWwtdGFiLXNlcGFyYXRvci1yZXNvbHV0aW9uYCxldmlkZW5jZTp7a2luZDpgbWljcm9zb2Z0LW5vdGVgLHJlZmVyZW5jZTpgW01TLU9JMjk1MDBdIMKnMi4xLjU1NmB9LGRlc2NyaXB0aW9uOmBVc2UgdGhlIGZpcnN0IGV4cGxpY2l0IGhhbGZ3aWR0aCBwZXJpb2QgYXMgdGhlIGRlY2ltYWwtdGFiIGFsaWdubWVudCBwb2ludDsgd2hlbiBhYnNlbnQsIHVzZSB0aGUgaW1wbGljaXQgc2VwYXJhdG9yIGFmdGVyIHRoZSBmaW5hbCBkaWdpdCBvZiB0aGUgZmlyc3QgVW5pY29kZSBkZWNpbWFsLW51bWJlciBzZXF1ZW5jZS5gfSksJCh7aWQ6YHdvcmQtdXNlLWZlLWxheW91dC1pbmhlcml0ZWQtZ3JpZC1taW5pbXVtYCxldmlkZW5jZTp7a2luZDpgb2ZmaWNlLW9ic2VydmF0aW9uYCxzeW50aGV0aWNGaXh0dXJlSWQ6YHVzZS1mZS1sYXlvdXQtdmlzaWJsZS1zY3JpcHQtZ3JpZC1tYXRyaXhgLGFwcGxpY2F0aW9uOmBNaWNyb3NvZnQgV29yZGAsdmVyc2lvbjpgMTYuMTExLjFgLHBsYXRmb3JtOmBtYWNPUyAyNi41LjJgfSxkZXNjcmlwdGlvbjpgV2l0aCB1c2VGRUxheW91dCBlbmFibGVkLCBhIHZpc2libGUgTGF0aW4gbGluZSB3aXRoIGEgcmVzb2x2ZWQgZWFzdEFzaWEgZm9udCBheGlzIHBhcnRpY2lwYXRlcyBpbiBGYXIgRWFzdCBncmlkIG1ldHJpY3MgZXZlbiB3aGVuIHc6ckZvbnRzQGhpbnQgaXMgYWJzZW50OyBpbmhlcml0ZWQgYXV0b21hdGljIHNwYWNpbmcga2VlcHMgdGhlIGxhcmdlciBvZiBpdHMgd2hvbGUtY2VsbCBkZXNpZ24gYWxsb2NhdGlvbiBhbmQgb25lIGdyaWQgcGl0Y2ggbXVsdGlwbGllZCBieSB0aGUgaW5oZXJpdGVkIHNwYWNpbmcgdmFsdWUuYH0pLCQoe2lkOmB3b3JkLXVzZS1mZS1sYXlvdXQtZW1wdHktbWFyay1ncmlkLWFsbG9jYXRpb25gLGV2aWRlbmNlOntraW5kOmBvZmZpY2Utb2JzZXJ2YXRpb25gLHN5bnRoZXRpY0ZpeHR1cmVJZDpgdXNlLWZlLWxheW91dC1lbXB0eS1tYXJrLWdyaWQtbWF0cml4YCxhcHBsaWNhdGlvbjpgTWljcm9zb2Z0IFdvcmRgLHZlcnNpb246YDE2LjExMS4xYCxwbGF0Zm9ybTpgbWFjT1MgMjYuNS4yYH0sZGVzY3JpcHRpb246YFdpdGggdXNlRkVMYXlvdXQgZW5hYmxlZCwgYSBjb250ZW50LWxlc3MgcGFyYWdyYXBoIG1hcmsgcGFydGljaXBhdGVzIGluIEZhciBFYXN0IHdob2xlLWNlbGwgZG9jdW1lbnQtZ3JpZCBhbGxvY2F0aW9uIGV2ZW4gd2hlbiB0aGUgZG9jdW1lbnQgY29udGFpbnMgbm8gbGl0ZXJhbCBFYXN0IEFzaWFuIHRleHQuIEl0cyBmYWNlLXNwZWNpZmljIEZhciBFYXN0IGRlc2lnbiBoZWlnaHQgZ292ZXJucyB0aGUgY2VsbCBjb3VudDsgZXhhY3Qgc3BhY2luZyBhbmQgc25hcFRvR3JpZD1mYWxzZSByZW1haW4gdGhlIGRvY3VtZW50LWdyaWQgb3ZlcnJpZGVzIG5hbWVkIGJ5IEVDTUEtMzc2IMKnMTcuNi41LiBPYnNlcnZlZCBXb3JkIG91dHB1dCBnaXZlcyBzaWduZWQgYXRMZWFzdCBzcGFjaW5nIGEgZGlzY29udGludW91cyBib3VuZGFyeSBvbiBhbiBhY3RpdmUgZ3JpZDogbmVnYXRpdmUgdmFsdWVzIHVzZSB0aGVpciBhYnNvbHV0ZSBtYWduaXR1ZGUgYXMgdGhlIG1hcmsgYWR2YW5jZSwgemVybyBrZWVwcyB0aGUgb3JkaW5hcnkgYXRMZWFzdC16ZXJvIGFkdmFuY2UgcmVnYXJkbGVzcyBvZiBpbmhlcml0YW5jZSBzb3VyY2UsIGFuZCBwb3NpdGl2ZSB2YWx1ZXMgcmV0YWluIHdob2xlLWNlbGwgYWxsb2NhdGlvbi5gfSk7ZnVuY3Rpb24gVmIoZSl7bGV0e29yZGluYXJ5QWR2YW5jZVB4OnQsYWxsb2NhdGVkR3JpZEFkdmFuY2VQeDpuLGF0TGVhc3RaZXJvQWR2YW5jZVB4OnIsbGluZVNwYWNpbmc6aSxncmlkQWxsb2NhdGlvbkFjdGl2ZTphLHNjYWxlOm99PWU7cmV0dXJuIGE/aT8ucnVsZT09PWBhdExlYXN0YCYmaS52YWx1ZTwwP01hdGguYWJzKGkudmFsdWUpKm86aT8ucnVsZT09PWBhdExlYXN0YCYmaS52YWx1ZT09PTA/cjppPy5ydWxlPT09YGV4YWN0YD90Ok1hdGgubWF4KHQsbik6dH0kKHtpZDpgd29yZC1jb250aWd1b3VzLXVuZGVybGluZS1nZW9tZXRyeWAsZXZpZGVuY2U6e2tpbmQ6YHJlZ3Jlc3Npb24tdGVzdGAscmVmZXJlbmNlOmBwYWNrYWdlcy9kb2N4L3NyYy9sYXlvdXQvcGFyYWdyYXBoLnRlc3QudHMjdXNlcyBvbmUgc2FmZSBiYXNlbGluZSBmb3IgYSBzb2xpZCB1bmRlcmxpbmUgc3Bhbm5pbmcgYWRqYWNlbnQgc291cmNlIHJ1bnNgfSxkZXNjcmlwdGlvbjpgQWRqYWNlbnQgY29tcGF0aWJsZSB1bmRlcmxpbmVkIHNvdXJjZSBydW5zIHNoYXJlIG9uZSBzYWZlIGJhc2VsaW5lIGFuZCBjb250aW51b3VzIGF1dGhvcmVkIGNhZGVuY2Ugd2hpbGUgc3R5bGUsIGNvbG9yLCBhbmQgdGhpY2tuZXNzIGJvdW5kYXJpZXMgcmVtYWluIGRpc3RpbmN0LmB9KSwkKHtpZDpgd29yZC1ncmlkLWF0LWxlYXN0LXRhbGwtbGluZS11bnNuYXBwZWRgLGV2aWRlbmNlOntraW5kOmByZWdyZXNzaW9uLXRlc3RgLHJlZmVyZW5jZTpgcGFja2FnZXMvZG9jeC9zcmMvbGluZS1ib3gtaGVpZ2h0LnRlc3QudHMjZG9lcyBub3Qgcm91bmQgdGFsbCBFYXN0IEFzaWFuIGNvbnRlbnQgdXAgdG8gYW4gYWRkaXRpb25hbCBncmlkIGNlbGxgfSxkZXNjcmlwdGlvbjpgQW4gZXhwbGljaXRseSBhdXRob3JlZCBhdExlYXN0IGxpbmUgb24gYW4gYWN0aXZlIGRvY3VtZW50IGdyaWQga2VlcHMgdGhlIG1heGltdW0gb2YgaXRzIG5hdHVyYWwgaGVpZ2h0LCBhdXRob3JlZCBtaW5pbXVtLCBhbmQgb25lIHBpdGNoIGluc3RlYWQgb2Ygcm91bmRpbmcgdGFsbCBjb250ZW50IHRvIGFub3RoZXIgd2hvbGUgY2VsbC5gfSksJCh7aWQ6YHdvcmQtZGVnZW5lcmF0ZS1saW5lLXNwYWNpbmctc2luZ2xlYCxldmlkZW5jZTp7a2luZDpgbWljcm9zb2Z0LW5vdGVgLHJlZmVyZW5jZTpgW01TLURPQ10gwqcyLjkuMTQ2YH0sZGVzY3JpcHRpb246YFByZXNlcnZlIGEgbm9uLWNvbGxhcHNpbmcgc2luZ2xlLWxpbmUgZmFsbGJhY2sgZm9yIGV4YWN0IG9yIGF1dG9tYXRpYyBsaW5lIHNwYWNpbmcgYXQgb3IgYmVsb3cgemVybywgY29uc2lzdGVudCB3aXRoIHRoZSBuYXRpdmUgTFNQRCByZXByZXNlbnRhdGlvbi5gfSksJCh7aWQ6YHdvcmQtYXV0by1tdWx0aXBsZS1iYXNlbGluZS1waW5gLGV2aWRlbmNlOntraW5kOmBvZmZpY2Utb2JzZXJ2YXRpb25gLHN5bnRoZXRpY0ZpeHR1cmVJZDpgYXV0by1tdWx0aXBsZS1iYXNlbGluZS1waW5gLGFwcGxpY2F0aW9uOmBNaWNyb3NvZnQgV29yZGAsdmVyc2lvbjpgMTYuMTExLjFgLHBsYXRmb3JtOmBtYWNPUyAyNi41LjJgfSxkZXNjcmlwdGlvbjpgUGFpbnQgYSBwb3NpdGl2ZSBhdXRvbWF0aWMgbGluZS1zcGFjaW5nIG11bHRpcGxpZXIgd2l0aCBpdHMgZ2x5cGggYmFzZWxpbmUgcGlubmVkIGluc2lkZSB0aGUgc2luZ2xlIGRlc2lnbiBsaW5lLCBwbGFjaW5nIGV4dHJhIGxlYWRpbmcgb3IgY29tcHJlc3NlZCBvdmVyZmxvdyB0b3dhcmQgYmxvY2stZW5kOyB0aGlzIGlzIGRyYXctb25seSBhbmQgZG9lcyBub3QgcmVwbGFjZSB0aGUgY2VudGVyZWQgdHJhaWxpbmctbWFyayBwYWdpbmF0aW9uIG1ldHJpYy5gfSksJCh7aWQ6YHdvcmQtbWl4ZWQtYW5jaG9yLXZpc2libGUtbGluZS1tZXRyaWNzYCxldmlkZW5jZTp7a2luZDpgcmVncmVzc2lvbi10ZXN0YCxyZWZlcmVuY2U6YHBhY2thZ2VzL2RvY3gvc3JjL2FuY2hvci1ob3N0LW1ldHJpY3MudGVzdC50cyNyZXNlcnZlcyBob3N0IGxpbmUgaGVpZ2h0IHdpdGhvdXQgdXNpbmcgaXRzIHplcm8taW5rIGJveCBmb3IgYSB2aXNpYmxlIHJ1biBiYXNlbGluZWB9LGRlc2NyaXB0aW9uOmBBIHplcm8taW5rIGRyYXdpbmcgYW5jaG9yIGhvc3QgcmVzZXJ2ZXMgaXRzIGxpbmUgYW5kIGdyaWQgaGVpZ2h0IHdoaWxlIHZpc2libGUgbmVpZ2hib3JpbmcgZ2x5cGhzIHJldGFpbiB0aGVpciBvd24gYXNjZW50LCBkZXNjZW50LCBhbmQgZGVzaWduLWxpbmUgYmFzZWxpbmUuYH0pLCQoe2lkOmB3b3JkLWp1c3RpZmljYXRpb24tbGVhZGluZy1pbmRlbnQtZXhjbHVzaW9uYCxldmlkZW5jZTp7a2luZDpgcmVncmVzc2lvbi10ZXN0YCxyZWZlcmVuY2U6YHBhY2thZ2VzL2RvY3gvc3JjL3RleHQtZGlzdHJpYnV0ZS50ZXN0LnRzI2ZvcndhcmRzIChzZWdzLCBzbGFjaywgZmlyc3RDb250ZW50U2ksIGxhc3REcmF3blNpKSBwb3NpdGlvbmFsbHlgfSxkZXNjcmlwdGlvbjpgS2VlcCBsZWFkaW5nIHdoaXRlc3BhY2UgdXNlZCBhcyBhIGZpcnN0LWxpbmUgdGV4dCBpbmRlbnQgZml4ZWQgd2hpbGUgZGlzdHJpYnV0aW5nIGp1c3RpZmllZC1saW5lIHNsYWNrIGFjcm9zcyBjb250ZW50IGluIGEgbGVmdC10by1yaWdodCBsaW5lLmB9KSwkKHtpZDpgd29yZC1qdXN0aWZpZWQtY2FuZGlkYXRlLXNlcGFyYXRvci1maXRgLGV2aWRlbmNlOntraW5kOmByZWdyZXNzaW9uLXRlc3RgLHJlZmVyZW5jZTpgcGFja2FnZXMvZG9jeC9zcmMvanVzdGlmeS1zaHJpbmstb3ZlcnNob290LnRlc3QudHMjY291bnRzIGEgY2FuZGlkYXRlIHRyYWlsaW5nIHNwYWNlIHdoZW4gdGhlIHByb3NwZWN0aXZlIGxpbmUgd2lsbCBqdXN0aWZ5YH0sZGVzY3JpcHRpb246YE9uIGEgZnVsbCBwYXJhZ3JhcGgtd2lkdGggbGluZSB0aGF0IHdpbGwgYmUgZnVsbHkganVzdGlmaWVkLCBpbmNsdWRlIHRoZSBjYW5kaWRhdGUgd29yZCBzZXBhcmF0b3IgaW4gaXRzIHdyYXAtZml0IHdpZHRoOyBsaW5lcyBuYXJyb3dlZCBieSBEcmF3aW5nTUwgd3JhcCBleGNsdXNpb25zIHJldGFpbiBjb2xsYXBzaWJsZSBsaW5lLWVuZCBzZXBhcmF0b3IgZml0IGJlaGF2aW9yLmB9KSwkKHtpZDpgd29yZC1vdmVyZmxvdy1wdW5jdHVhdGlvbi1sYW5ndWFnZS1zZXRzYCxldmlkZW5jZTp7a2luZDpgbWljcm9zb2Z0LW5vdGVgLHJlZmVyZW5jZTpgW01TLU9FMzc2XSDCpzIuMS41NmB9LGRlc2NyaXB0aW9uOmBBcHBseSB0aGUgbGFuZ3VhZ2Utc3BlY2lmaWMgcHVuY3R1YXRpb24gc2V0cyBkb2N1bWVudGVkIGZvciBXb3JkIGluIFtNUy1PRTM3Nl0gwqcyLjEuNTYsIGFuZCBsZXQgb3ZlcmZsb3dQdW5jdCBvdmVycmlkZSBraW5zb2t1IHdoZW4gYm90aCBydWxlcyBhZmZlY3QgdGhlIHNhbWUgY2hhcmFjdGVyLmB9KSwkKHtpZDpgd29yZC1mdWxsLXdpZHRoLWNoYXJhY3Rlci1zcGFjaW5nLXNjb3BlYCxldmlkZW5jZTp7a2luZDpgbWljcm9zb2Z0LW5vdGVgLHJlZmVyZW5jZTpgW01TLU9FMzc2XSDCpzIuMS41NjJgfSxkZXNjcmlwdGlvbjpgSW50ZXJwcmV0IFNUX0NoYXJhY3RlclNwYWNpbmcgYXMgYXBwbHlpbmcgd2hpdGVzcGFjZSBjb21wcmVzc2lvbiB0byBmdWxsLXdpZHRoIHB1bmN0dWF0aW9uIGNoYXJhY3RlcnMuIFRoaXMgcnVsZSBlc3RhYmxpc2hlcyBvbmx5IHdoaWNoIGNoYXJhY3RlcnMgYXJlIGVsaWdpYmxlOyBpdCBkb2VzIG5vdCBkZWZpbmUgYSB1bml2ZXJzYWwgY29tcHJlc3Npb24gYW1vdW50LmB9KSwkKHtpZDpgd29yZC1qYXBhbmVzZS1wdW5jdHVhdGlvbi1jb21wcmVzc2lvbi1jZWxsYCxldmlkZW5jZTp7a2luZDpgb2ZmaWNlLW9ic2VydmF0aW9uYCxzeW50aGV0aWNGaXh0dXJlSWQ6YGphcGFuZXNlLWZ1bGx3aWR0aC1wdW5jdHVhdGlvbi1jb21wcmVzc2lvbi1jZWxsYCxhcHBsaWNhdGlvbjpgTWljcm9zb2Z0IFdvcmRgLHZlcnNpb246YDE2LjExMS4xYCxwbGF0Zm9ybTpgbWFjT1MgMjYuNS4yYH0sZGVzY3JpcHRpb246YEluIHRoZSBvYnNlcnZlZCBKYXBhbmVzZSBjb21wYXRpYmlsaXR5IG1hdHJpeCwg44CB44CCIO+8jO+8jiBhbmQgdGhlIGNsb3NpbmcgZm9ybXMg44CN44CP44CR77yJ77y9772dIG9uIGEgZnVsbCBpZGVvZ3JhcGhpYy1jZWxsIGFkdmFuY2UgcmV0YWluIGF0IGxlYXN0IGhhbGYgb2YgdGhhdCBjZWxsLiBVKzMwMTcgYW5kIGZ1bGwtd2lkdGggIS8/IHJlbWFpbiBmdWxsLWNlbGwuIEEgZm9udFRhYmxlIHc6cGl0Y2ggdmFsdWUgY2xhc3NpZmllcyB0aGUgYXV0aG9yZWQgZmFjZSBmb3IgZm9udCBzZWxlY3Rpb247IGl0IGlzIG5vdCBhIHN3aXRjaCBmb3IgZG9jdW1lbnQtbGV2ZWwgY2hhcmFjdGVyU3BhY2luZ0NvbnRyb2wuIFB1bmN0dWF0aW9uIHRoYXQgdGhlIHNlbGVjdGVkIGZhY2UgYWxyZWFkeSBleHBvc2VzIG9uIGEgc21hbGxlciBwcm9wb3J0aW9uYWwgYWR2YW5jZSBpcyByZXRhaW5lZCBhcyBtZWFzdXJlZCByYXRoZXIgdGhhbiBjb21wcmVzc2VkIGEgc2Vjb25kIHRpbWUuIFRpZ2h0IGFkamFjZW50IGdseXBoIGluayBjYW4gcmVxdWlyZSBhIGxhcmdlciByZXRhaW5lZCBleHRlbnQgdG8gcHJldmVudCBjb2xsaXNpb24uIFRoaXMgaXMgYW4gT2ZmaWNlLW9ic2VydmVkIGNvbXByZXNzaW9uIGFtb3VudCwgbm90IGEgbm9ybWF0aXZlIGludGVycHJldGF0aW9uIG9mIFNUX0NoYXJhY3RlclNwYWNpbmcuYH0pLCQoe2lkOmB3b3JkLWF1dGhvcmVkLWNoYXJhY3Rlci1zcGFjaW5nLXBpdGNoLXByaW9yaXR5YCxldmlkZW5jZTp7a2luZDpgb2ZmaWNlLW9ic2VydmF0aW9uYCxzeW50aGV0aWNGaXh0dXJlSWQ6YGF1dGhvcmVkLWNoYXJhY3Rlci1zcGFjaW5nLXB1bmN0dWF0aW9uLXBpdGNoYCxhcHBsaWNhdGlvbjpgTWljcm9zb2Z0IFdvcmRgLHZlcnNpb246YDE2LjExMS4xYCxwbGF0Zm9ybTpgbWFjT1MgMjYuNS4yYH0sZGVzY3JpcHRpb246YFdoZW4gYSBydW4gYXV0aG9ycyBhIHBvc2l0aXZlIHc6c3BhY2luZyBjaGFyYWN0ZXIgcGl0Y2gsIFdvcmQgcHJlc2VydmVzIHRoYXQgZXhwYW5kZWQgcGl0Y2ggaW5zdGVhZCBvZiBhZGRpdGlvbmFsbHkgYXBwbHlpbmcgdGhlIGRvY3VtZW50LWxldmVsIHB1bmN0dWF0aW9uIHdoaXRlc3BhY2UgY29tcHJlc3Npb24uIE9taXR0ZWQsIHplcm8sIG9yIG92ZXJsYXBwaW5nIHJ1biBzcGFjaW5nIGxlYXZlcyBjaGFyYWN0ZXJTcGFjaW5nQ29udHJvbCBhY3RpdmUuYH0pLCQoe2lkOmB3b3JkLXNvdXJjZS1ydW4tc3BhY2Utc2VxdWVuY2VgLGV2aWRlbmNlOntraW5kOmBvZmZpY2Utb2JzZXJ2YXRpb25gLHN5bnRoZXRpY0ZpeHR1cmVJZDpgc291cmNlLXJ1bi1zcGFjZS1zZXF1ZW5jZS13cmFwLW1hdHJpeGAsYXBwbGljYXRpb246YE1pY3Jvc29mdCBXb3JkYCx2ZXJzaW9uOmAxNi4xMTEuMWAscGxhdGZvcm06YG1hY09TIDI2LjUuMmB9LGRlc2NyaXB0aW9uOmBBdCBhIHNvdXJjZS1ydW4gYm91bmRhcnksIFdvcmQga2VlcHMgYSBzcGFjZS1vbmx5IGNvbnRpbnVhdGlvbiBhdHRhY2hlZCB3aGVuIHRoZSBwcmVjZWRpbmcgcnVuIGFscmVhZHkgZW5kcyBpbiBhIHNwYWNlLiBBIHNpbmdsZSBsZWFkaW5nIHNwYWNlIGluIGEgZGlzdGluY3QgcnVuIHdpdGhvdXQgYSBwcmVjZWRpbmcgc3BhY2UgcmVtYWlucyBhIGJyZWFrIG9wcG9ydHVuaXR5LiBUaGlzIGlzb2xhdGVzIHNvdXJjZS1ib3VuZGFyeSBjb21wYXRpYmlsaXR5IGZyb20gdGhlIG9yZGluYXJ5IFVBWCAjMTQgTEI3IGhhbmRsaW5nIHdpdGhpbiBvbmUgYXV0aG9yZWQgcnVuLmB9KSwkKHtpZDpgd29yZC1jb25zZWN1dGl2ZS1zcGFjZS1uYXR1cmFsLWFkdmFuY2VgLGV2aWRlbmNlOntraW5kOmBvZmZpY2Utb2JzZXJ2YXRpb25gLHN5bnRoZXRpY0ZpeHR1cmVJZDpgY29uc2VjdXRpdmUtc3BhY2Utd3JhcC1ncmlkLW1hdHJpeGAsYXBwbGljYXRpb246YE1pY3Jvc29mdCBXb3JkYCx2ZXJzaW9uOmAxNi4xMTEuMWAscGxhdGZvcm06YG1hY09TIDI2LjUuMmB9LGRlc2NyaXB0aW9uOmBXaGVuIHZpc2libGUgdGV4dCBmb2xsb3dzIHR3byBvciBtb3JlIGF1dGhvcmVkIGNvbnNlY3V0aXZlIHNwYWNlcywgV29yZCBwcmVzZXJ2ZXMgdGhlIHNlcXVlbmNlIGF0IG5hdHVyYWwgYWR2YW5jZSBpbnN0ZWFkIG9mIHVzaW5nIGl0IGFzIEtudXRoLVBsYXNzIGludGVyLXdvcmQgc2hyaW5rIGNhcGFjaXR5LiBUaGUgcmVzdWx0IGlzIGludmFyaWFudCBhY3Jvc3MgbGluZXNBbmRDaGFycyB3aXRoIG5lZ2F0aXZlL3plcm8gY2hhclNwYWNlIGFuZCBhIGxpbmUtb25seSBncmlkOyBzb3VyY2UtcnVuIGJvdW5kYXJpZXMgcmVtYWluIGdvdmVybmVkIHNlcGFyYXRlbHkgYnkgdGhlIHNvdXJjZS1zcGFjZS1zZXF1ZW5jZSBydWxlLmB9KSwkKHtpZDpgd29yZC1iYWxhbmNlZC1jb25zZWN1dGl2ZS1zcGFjZS1jZWxsYCxldmlkZW5jZTp7a2luZDpgb2ZmaWNlLW9ic2VydmF0aW9uYCxzeW50aGV0aWNGaXh0dXJlSWQ6YHNpbmdsZS1kb3VibGUtYnl0ZS13aWR0aC1zcGFjZS1ncmlkLW1hdHJpeGAsYXBwbGljYXRpb246YE1pY3Jvc29mdCBXb3JkYCx2ZXJzaW9uOmAxNi4xMTEuMWAscGxhdGZvcm06YG1hY09TIDI2LjUuMmB9LGRlc2NyaXB0aW9uOmBXaXRoIEVDTUEtMzc2IMKnMTcuMTUuMy4zIGJhbGFuY2VTaW5nbGVCeXRlRG91YmxlQnl0ZVdpZHRoIGVuYWJsZWQsIFdvcmQgcmV0YWlucyBvbmUgb3JkaW5hcnkgaW50ZXItd29yZCBVKzAwMjAgYXQgaXRzIHByb3BvcnRpb25hbCBuYXR1cmFsIGFkdmFuY2UsIHdoaWxlIGEgc2VxdWVuY2Ugb2YgdHdvIG9yIG1vcmUgYXV0aG9yZWQgVSswMDIwIHNwYWNlcyBhZHZhbmNlcyBlYWNoIHNwYWNlIGJ5IGhhbGYgb2YgdGhlIHNlbGVjdGVkIEVhc3QtQXNpYW4gaWRlb2dyYXBoaWMgY2VsbC4gVGhlIG9ic2VydmVkIG1hdHJpeCBjb3ZlcnMgb25lLCB0d28sIGZvdXIsIGFuZCBlaWdodCBzcGFjZXM7IHNhbWUtcnVuIGFuZCBzb3VyY2UtcnVuIGJvdW5kYXJpZXM7IHByb3BvcnRpb25hbCBhbmQgZml4ZWQtcGl0Y2ggZmFjZXM7IGxpbmVzQW5kQ2hhcnMgd2l0aCBuZWdhdGl2ZS96ZXJvIGNoYXJTcGFjZTsgYW5kIGEgbGluZS1vbmx5IGdyaWQuYH0pO2Z1bmN0aW9uIEhiKGUpe3JldHVybiBOdW1iZXIuaXNJbnRlZ2VyKGUpJiZlPj0yfWZ1bmN0aW9uIFViKGUpe3JldHVybiBlIT09YHNuYXBUb0NoYXJzYH0kKHtpZDpgd29yZC1iYWxhbmNlZC1saW5lcy1hbmQtY2hhcnMtZ3JpZC1kZWx0YWAsZXZpZGVuY2U6e2tpbmQ6YG9mZmljZS1vYnNlcnZhdGlvbmAsc3ludGhldGljRml4dHVyZUlkOmBzaW5nbGUtZG91YmxlLWJ5dGUtd2lkdGgtZ3JpZC1vYnNlcnZhdGlvbi1tYXRyaXhgLGFwcGxpY2F0aW9uOmBNaWNyb3NvZnQgV29yZGAsdmVyc2lvbjpgMTYuMTExLjFgLHBsYXRmb3JtOmBtYWNPUyAyNi41LjJgfSxkZXNjcmlwdGlvbjpgV2l0aCBiYWxhbmNlU2luZ2xlQnl0ZURvdWJsZUJ5dGVXaWR0aCBlbmFibGVkIG9uIGxpbmVzQW5kQ2hhcnMsIFdvcmQgYXBwbGllcyBoYWxmIG9mIHRoZSBhdXRob3JlZCBjaGFyU3BhY2UgZGVsdGEgdG8gQVNDSUkgU0JDUyB0ZXh0IGFuZCB0byBVKzAwMjAvVSszMDAwIHNwYWNlIGNoYXJhY3RlcnMsIHdoaWxlIGFwcGx5aW5nIHRoZSBmdWxsIGRlbHRhIHRvIENKSyBpZGVvZ3JhcGhzIGFuZCBmdWxsLXdpZHRoIEFTQ0lJIGZvcm1zLiBUaGUgV29yZC1vdXRwdXQgZXZpZGVuY2UgY292ZXJzIEFTQ0lJIGRpZ2l0cywgbGV0dGVycywgcHVuY3R1YXRpb24sIHNwYWNlcywgQ0pLLCBmdWxsLXdpZHRoIEFTQ0lJLCBtaXhlZCB0ZXh0LCBwcm9wb3J0aW9uYWwvZml4ZWQtcGl0Y2ggZmFjZXMsIG5lZ2F0aXZlL3plcm8vcG9zaXRpdmUgY2hhclNwYWNlLCBhbmQgbGluZS1vbmx5IGNvbnRyb2xzLiBOb24tQVNDSUkgaGlnaC1BTlNJIGFuZCBjb21wbGV4LXNjcmlwdCB0ZXh0IGFyZSBvdXRzaWRlIHRoZSBvYnNlcnZlZCBtYXRyaXggYW5kIHJldGFpbiB0aGUgcHJlZXhpc3RpbmcgZ3JpZCBiZWhhdmlvci5gfSksJCh7aWQ6YHdvcmQtaWRlb2dyYXBoaWMtc3BhY2UtbGluZS1lbmQtYWxsb3dhbmNlYCxldmlkZW5jZTp7a2luZDpgb2ZmaWNlLW9ic2VydmF0aW9uYCxzeW50aGV0aWNGaXh0dXJlSWQ6YGlkZW9ncmFwaGljLXNwYWNlLWxpbmUtZW5kLWNvdW50LWFuZC1ydW4tYm91bmRhcnktbWF0cml4YCxhcHBsaWNhdGlvbjpgTWljcm9zb2Z0IFdvcmRgLHZlcnNpb246YDE2LjExMS4xYCxwbGF0Zm9ybTpgbWFjT1MgMjYuNS4yYH0sZGVzY3JpcHRpb246YFdvcmQga2VlcHMgYSBzaW5nbGUgVSszMDAwIGltbWVkaWF0ZWx5IGZvbGxvd2luZyB2aXNpYmxlIEVhc3QtQXNpYW4gdGV4dCBvbiB0aGF0IGxpbmUgd2hlbiB0aGUgdmlzaWJsZSBnbHlwaCBpcyBmb3JjZS1maXR0ZWQgaW50byBhIG5hcnJvdyB0YWJsZSBjZWxsLiBBIHBhcmFncmFwaC1maW5hbCBzZXF1ZW5jZSBvZiB0d28gb3IgbW9yZSBVKzMwMDAgY2hhcmFjdGVycyByZW1haW5zIGF1dGhvcmVkIHdpZHRoLWJlYXJpbmcgY29udGVudCBhbmQgbWF5IGZvcm0gYmxhbmsgY29udGludWF0aW9uIGxpbmVzLiBUaGUgb2JzZXJ2ZWQgbWF0cml4IGNvdmVycyBzaW5nbGUgYW5kIHRyYWlsaW5nIG11bHRpcGxlIHNwYWNlcywgbGluZXNBbmRDaGFycyB3aXRoIG5lZ2F0aXZlL3Bvc2l0aXZlIGNoYXJTcGFjZSwgbGluZS1vbmx5IGdyaWRzLCBhbmQgc25hcFRvR3JpZCBvcHQtb3V0LmB9KTtmdW5jdGlvbiBXYihlLHQpe3JldHVybiBlJiZ0PT09MT8xOjB9ZnVuY3Rpb24gR2IoZSx0KXtpZih0IT09YGNvbXBsZXhTY3JpcHRgKXJldHVybiBlLmxlbmd0aD4wJiZbLi4uZV0uZXZlcnkoZT0+ZT09PWAgYHx8ZT09PWDjgIBgKT8uNTp0PT09YGVhc3RBc2lhYD8xOlsuLi5lXS5ldmVyeShlPT4oZS5jb2RlUG9pbnRBdCgwKT8/MTI4KTw9MTI3KT8uNTp2b2lkIDB9JCh7aWQ6YHdvcmQtbXMtbWluY2hvLWVtcHR5LWVhc3QtYXNpYW4tbWFyay1oZWlnaHRgLGV2aWRlbmNlOntraW5kOmBvZmZpY2Utb2JzZXJ2YXRpb25gLHN5bnRoZXRpY0ZpeHR1cmVJZDpgbXMtbWluY2hvLWVtcHR5LWVhc3QtYXNpYW4tcGFyYWdyYXBoLW1hcmtgLGFwcGxpY2F0aW9uOmBNaWNyb3NvZnQgV29yZGAsdmVyc2lvbjpgMTYuMTExLjFgLHBsYXRmb3JtOmBtYWNPUyAyNi41LjJgfSxkZXNjcmlwdGlvbjpgSW4gdGhlIG9ic2VydmVkIGNvbXBhdGliaWxpdHkgZml4dHVyZSwgYW4gZW1wdHkgMTItcG9pbnQgRWFzdC1Bc2lhbiBwYXJhZ3JhcGggbWFyayByb3V0ZWQgdG8gTVMgTWluY2hvIG9jY3VwaWVzIGEgMTUuNi1wb2ludCBzaW5nbGUtbGluZSBib3guIFNjb3BlIHRoaXMgMS4zLWVtIGZsb29yIHRvIGVtcHR5IEVhc3QtQXNpYW4gcGFyYWdyYXBoIG1hcmtzOyBvcmRpbmFyeSBNUyBNaW5jaG8gdGV4dCBsaW5lcyBhbmQgTGF0aW4gbWFya3MgcmV0YWluIHRoZWlyIGluZGVwZW5kZW50bHkgbWVhc3VyZWQgbWV0cmljcy5gfSk7ZnVuY3Rpb24gS2IoZSl7bGV0IHQ9TWF0aC5tYXgoMCxlLnB1bmN0dWF0aW9uQWR2YW5jZVB0KSxuPU1hdGgubWF4KDAsZS5pZGVvZ3JhcGhpY0NlbGxBZHZhbmNlUHQpO3JldHVybiB0PG4/dDpNYXRoLm1pbih0LE1hdGgubWF4KDAsZS5wdW5jdHVhdGlvbklua0VuZFB0LG4vMikpfWZ1bmN0aW9uIHFiKGUpe3JldHVybiBlPT09dm9pZCAwfHxlPD0wfWZ1bmN0aW9uIEpiKGUsdCl7cmV0dXJuIGUuZW5kc1dpdGgoYCBgKSYmdC5zdGFydHNXaXRoKGAgYCl9Y29uc3QgWWI9e2phOm5ldyBTZXQoWy4uLmAsLuKAmeKAneOAgeOAguOAjeOAj+OAke+8ie+8jO+8ju+8ve+9ne+9oe+9pGBdKSx6aEhhbnM6bmV3IFNldChbLi4uYCElKSwuOjs+P119wqLCsMK3y4figJnigJ3igLDigLLigLPihIPiiLbjgIHjgILjgIPjgInjgIvjgI3jgI/jgJHjgJfjgJXjgJ7vuZrvuZzvuZ7vvIHvvILvvIXvvIfvvInvvIzvvI7vvJrvvJvvvJ/vvL3vvZ3vv6BgXSksemhIYW50Om5ldyBTZXQoWy4uLmAhKSwuOjs/XX3igJnigJ3igLLjgIHjgILjgInjgIvjgI3jgI/jgJHjgJXjgJ7vuZrvuZzvuZ7vvIHvvInvvIzvvI7vvJrvvJvvvJ/vvL3vvZ1gXSksa286bmV3IFNldChbLi4uYCElKSwuOjs/XX3CosKw4oCZ4oCd4oCy4oCz4oSD44CJ44CL44CN44CP44CR44CV77yB77yF77yJ77yM77yO77ya77yb77yf77y9772d77+gYF0pfSxYYj1uZXcgU2V0KFsuLi5ZYi5qYSwuLi5ZYi56aEhhbnMsLi4uWWIuemhIYW50LC4uLlliLmtvXSk7ZnVuY3Rpb24gWmIoZSx0KXtsZXQgbj10Py50b0xvd2VyQ2FzZSgpO3JldHVybiBuPy5zdGFydHNXaXRoKGBqYWApP1liLmphLmhhcyhlKTpuPy5zdGFydHNXaXRoKGBrb2ApP1liLmtvLmhhcyhlKTpuPy5zdGFydHNXaXRoKGB6aGApPygvKD86XnwtKSg/OnR3fGhrfG1vKSg/Oi18JCl8aGFudC91LnRlc3Qobik/WWIuemhIYW50OlliLnpoSGFucykuaGFzKGUpOlhiLmhhcyhlKX1mdW5jdGlvbiBRYihlKXtyZXR1cm4gZS5saW5lV2lsbEp1c3RpZnkmJmUud3JhcE5hcnJvd2VkIT09ITA/ZS53aWR0aFB4OmUud2lkdGhQeC1lLnRyYWlsaW5nU3BhY2VQeH1mdW5jdGlvbiAkYihlKXtyZXR1cm4gZS5yZXNvbHZlZE1lYXN1cmVtZW50Um91dGVDb3VudD09PTE/ZS5iaWFzQnVkZ2V0UHg6MH0kKHtpZDpgd29yZC1ydWJ5LXBhcmFncmFwaC11bmlmb3JtLWxpbmUtYWR2YW5jZWAsZXZpZGVuY2U6e2tpbmQ6YHJlZ3Jlc3Npb24tdGVzdGAscmVmZXJlbmNlOmBwYWNrYWdlcy9kb2N4L3NyYy9wYXJhZ3JhcGgtbWVhc3VyZS50ZXN0LnRzI3VzZXMgb25lIHVuaWZvcm0gc25hcHBlZCBhZHZhbmNlIGZvciBldmVyeSBsaW5lIGluIGEgcnVieSBwYXJhZ3JhcGhgfSxkZXNjcmlwdGlvbjpgRXZlcnkgbGluZSBpbiBhIHJ1YnktYmVhcmluZyBwYXJhZ3JhcGggdXNlcyB0aGUgcGFyYWdyYXBoLXdpZGUgbWF4aW11bSBzbmFwcGVkIGxpbmUgYWR2YW5jZSBzbyBpdHMgYmFzZWxpbmUgcmh5dGhtIHJlbWFpbnMgdW5pZm9ybS5gfSksJCh7aWQ6YHdvcmQtZml0LXRleHQtaW50ZXItY2hhcmFjdGVyLWV4cGFuc2lvbmAsZXZpZGVuY2U6e2tpbmQ6YHJlZ3Jlc3Npb24tdGVzdGAscmVmZXJlbmNlOmBwYWNrYWdlcy9kb2N4L3NyYy9maXQtdGV4dC50ZXN0LnRzI2Rpc3RyaWJ1dGVzICh2YWwg4oiSIM6jbmF0dXJhbCkvKG7iiJIxKSBhcyB0aGUgaW50ZXItY2hhcmFjdGVyIGdhcCwgbm8gdHJhaWxpbmcgZ2FwYH0sZGVzY3JpcHRpb246YEV4cGFuZCBhIG11bHRpLWNoYXJhY3RlciBmaXRUZXh0IHJlZ2lvbiB0byBpdHMgYXV0aG9yZWQgd2lkdGggYnkgZGlzdHJpYnV0aW5nIHRoZSByZXNpZHVhbCBldmVubHkgYWNyb3NzIGludGVyaW9yIGNoYXJhY3RlciBnYXBzLmB9KSwkKHtpZDpgd29yZC1jamstYm90aC1pbnRlci1jaGFyYWN0ZXItZXhwYW5zaW9uYCxldmlkZW5jZTp7a2luZDpgcmVncmVzc2lvbi10ZXN0YCxyZWZlcmVuY2U6YHBhY2thZ2VzL2RvY3gvc3JjL3RleHQtZGlzdHJpYnV0ZS50ZXN0LnRzI8KnMTcuMTguNDQ6IGZpbGxzIGEgd3JhcHBlZCBwdXJlLUNKSyBsaW5lIHZpYSBpbnRlci1DSksgcGl0Y2ggKGV4cGFuc2lvbiBkZWZhdWx0KWB9LGRlc2NyaXB0aW9uOmBUcmVhdCBpbnRlci1DSksgYm91bmRhcmllcyBhcyBlbGlnaWJsZSBpbnRlci13b3JkIGdhcHMgd2hlbiBleHBhbmRpbmcgYSBub24tZmluYWwgYm90aC1qdXN0aWZpZWQgbGluZSB0aGF0IGNvbnRhaW5zIG5vIHNwYWNlcy5gfSksJCh7aWQ6YHdvcmQtdGhhaS1kaXN0cmlidXRlLWNsdXN0ZXItcG9saWN5YCxldmlkZW5jZTp7a2luZDpgcmVncmVzc2lvbi10ZXN0YCxyZWZlcmVuY2U6YHBhY2thZ2VzL2RvY3gvc3JjL3RoYWktZGlzdHJpYnV0ZS50ZXN0LnRzI2ZpbGxzIG5vbi1maW5hbCBsaW5lcyB0byB0aGUgcmlnaHQgbWFyZ2luIHVuZGVyIHRoYWlEaXN0cmlidXRlYH0sZGVzY3JpcHRpb246YEV4cGFuZCBub24tZmluYWwgdGhhaURpc3RyaWJ1dGUgbGluZXMgYXQgVGhhaSBncmFwaGVtZS1jbHVzdGVyIGJvdW5kYXJpZXMgd2hpbGUgcmV0YWluaW5nIGEgbmF0dXJhbC13aWR0aCBmaW5hbCBsaW5lLmB9KSwkKHtpZDpgd29yZC1udW1lcmljLWRlY2ltYWwtdGFiLWluZmVyZW5jZWAsZXZpZGVuY2U6e2tpbmQ6YHJlZ3Jlc3Npb24tdGVzdGAscmVmZXJlbmNlOmBwYWNrYWdlcy9kb2N4L3NyYy9kZWNpbWFsLXRhYi1hdXRvYWxpZ24udGVzdC50cyNyaWdodC1hbGlnbnMgbnVtYmVycyBvZiBkaWZmZXJlbnQgZGlnaXQgY291bnRzIGF0IHRoZSBkZWNpbWFsIHRhYmB9LGRlc2NyaXB0aW9uOmBSaWdodC1hbGlnbiBhbiBvdGhlcndpc2UgdGFiLWxlc3MgbnVtZXJpYyBwYXJhZ3JhcGggYXQgaXRzIGxlYWRpbmcgZGVjaW1hbCB0YWIgd2hpbGUgbGVhdmluZyBub24tbnVtZXJpYyBhbmQgbm8tZGVjaW1hbC10YWIgcGFyYWdyYXBocyB1bmNoYW5nZWQuYH0pLCQoe2lkOmB3b3JkLW51bWJlcmluZy1tYXJrZXItb3ZlcmZsb3ctdGFiLWFkdmFuY2VgLGV2aWRlbmNlOntraW5kOmByZWdyZXNzaW9uLXRlc3RgLHJlZmVyZW5jZTpgcGFja2FnZXMvZG9jeC9zcmMvbnVtYmVyZWQtbWFya2VyLXRhYi1hZHZhbmNlLnRlc3QudHMjYWR2YW5jZXMgdGhlIGJvZHkgcGFzdCB0aGUgbWFya2VyIHRvIHRoZSBuZXh0IHRhYiBzdG9wLCBub3Qgb250byBpbmRlbnRMZWZ0YH0sZGVzY3JpcHRpb246YFdoZW4gYSBudW1iZXJpbmcgbWFya2VyIG92ZXJydW5zIGl0cyBoYW5naW5nLWluZGVudCBidWRnZXQsIGFkdmFuY2UgdGhlIGJvZHkgdG8gdGhlIG5leHQgcmVhY2hhYmxlIHRhYiBzdG9wIGJleW9uZCB0aGUgbWFya2VyIGVkZ2UuYH0pLCQoe2lkOmB3b3JkLW51bWJlcmluZy1zdWZmaXgtY29pbmNpZGVudC1saXN0LXRhYmAsZXZpZGVuY2U6e2tpbmQ6YHJlZ3Jlc3Npb24tdGVzdGAscmVmZXJlbmNlOmBwYWNrYWdlcy9kb2N4L3NyYy9sYXlvdXQvbnVtYmVyaW5nLW1hcmtlci50ZXN0LnRzI2tlZXBzIGEgc3VmZml4IHRhYiBvbiB0aGUgbGlzdCBzdG9wIGNvaW5jaWRlbnQgd2l0aCB0aGUgbWFya2VyIGVuZGB9LGRlc2NyaXB0aW9uOmBGb3IgdGhlIHRhYiBzeW50aGVzaXplZCBieSBhIG51bWJlcmluZyBzdWZmaXgsIGFjY2VwdCBhbiBhdXRob3JlZCBudW1lcmljIGxpc3QgdGFiIGNvaW5jaWRlbnQgd2l0aCB0aGUgc2hhcGVkIG1hcmtlciBlbmQgaW5zdGVhZCBvZiBhZHZhbmNpbmcgdG8gdGhlIG5leHQgYXV0b21hdGljIHRhYiBzdG9wLmB9KSwkKHtpZDpgd29yZC1udW1iZXJpbmctbWFya2VyLXBhcmFncmFwaC1tYXJrLWZhbGxiYWNrYCxldmlkZW5jZTp7a2luZDpgb2ZmaWNlLW9ic2VydmF0aW9uYCxzeW50aGV0aWNGaXh0dXJlSWQ6YG51bWJlcmluZy1tYXJrZXItcGFyYWdyYXBoLW1hcmstZm9ybWF0dGluZ2AsYXBwbGljYXRpb246YE1pY3Jvc29mdCBXb3JkYCx2ZXJzaW9uOmAxNi4xMTEuMWAscGxhdGZvcm06YG1hY09TIDI2LjUuMmB9LGRlc2NyaXB0aW9uOmBXaGVuIG51bWJlcmluZy1sZXZlbCByUHIgb21pdHMgYSBtYXJrZXIgZm9ybWF0dGluZyBheGlzLCBXb3JkIHRha2VzIHRoYXQgYXhpcyBmcm9tIHRoZSBlZmZlY3RpdmUgcGFyYWdyYXBoLW1hcmsgclByIHJhdGhlciB0aGFuIGEgY29udGVudCBydW4uIEEgbnVtYmVyaW5nLWxldmVsIGNvbmNyZXRlIHZhbHVlIG9yIGV4cGxpY2l0IGF1dG8gcmVtYWlucyBhdXRob3JpdGF0aXZlLCBhbmQgYm9keSBhbmQgdGV4dC1ib3ggc3RvcmllcyB1c2UgdGhlIHNhbWUgY2FzY2FkZS5gfSk7ZnVuY3Rpb24gZXgoZSx0KXtyZXR1cm4gdC5hbGlnbm1lbnQ9PT1gbnVtYCYmTWF0aC5hYnModC5wb3MtZSk8PTFlLTZ9JCh7aWQ6YHdvcmQtdGFiLXN0b3AtcGFnZS1lZGdlLWNsYW1wYCxldmlkZW5jZTp7a2luZDpgcmVncmVzc2lvbi10ZXN0YCxyZWZlcmVuY2U6YHBhY2thZ2VzL2RvY3gvc3JjL3J0bC10YWItc3RvcHMudGVzdC50cyNwaW5zIGEgcGFnZSBudW1iZXIgdG8gdGhlIGxlZnQgdGV4dCBtYXJnaW4gd2hlbiB0aGUgc3RvcCBpcyBwYXN0IGl0YH0sZGVzY3JpcHRpb246YENsYW1wIGNvbnRlbnQgYXNzaWduZWQgdG8gYSB0YWIgc3RvcCBiZXlvbmQgdGhlIHRyYWlsaW5nIHRleHQgZWRnZSBiYWNrIG9udG8gdGhhdCBlZGdlIGluc3RlYWQgb2YgcGxhY2luZyBpbmsgb3V0c2lkZSB0aGUgcGFnZSBjb250ZW50IGJhbmQuYH0pLCQoe2lkOmB3b3JkLWRpY3Rpb25hcnktc2VhLW5hdHVyYWwtZml0YCxldmlkZW5jZTp7a2luZDpgcmVncmVzc2lvbi10ZXN0YCxyZWZlcmVuY2U6YHBhY2thZ2VzL2RvY3gvc3JjL3NlYS1qdXN0aWZpZWQtZml0LnRlc3QudHMjUnVsZSAxOiB3cmFwcyB0aGUgcGFyYWdyYXBoLWZpbmFsIFRoYWkgd29yZCBvbiBhIHRoYWlEaXN0cmlidXRlIGNsb3NpbmcgbGluZSAoemVybyBzcGFjZS1zaHJpbmspYH0sZGVzY3JpcHRpb246YERvIG5vdCBhZG1pdCBhIGRpY3Rpb25hcnkgU291dGhlYXN0LUFzaWFuIHdvcmQgYnkgY29tcHJlc3NpbmcgcHJlY2VkaW5nIGludGVyLXdvcmQgc3BhY2VzIHdoZW4gaXRzIG5hdHVyYWwgYWR2YW5jZSBleGNlZWRzIHRoZSByZW1haW5pbmcgbGluZSB3aWR0aC5gfSksJCh7aWQ6YHdvcmQtZGljdGlvbmFyeS1zZWEtYXRvbWljLWNodW5rYCxldmlkZW5jZTp7a2luZDpgcmVncmVzc2lvbi10ZXN0YCxyZWZlcmVuY2U6YHBhY2thZ2VzL2RvY3gvc3JjL3NlYS1qdXN0aWZpZWQtZml0LnRlc3QudHMjUnVsZSAyOiBhIG5vLXNwYWNlIGNodW5rIHRoYXQgZml0cyBhIGZ1bGwgbGluZSBtb3ZlcyB3aG9sZSBpbnN0ZWFkIG9mIHNwbGl0dGluZ2B9LGRlc2NyaXB0aW9uOmBNb3ZlIGEgZ2x1ZWQgZGljdGlvbmFyeSBTb3V0aGVhc3QtQXNpYW4gY2h1bmsgdG8gYSBmcmVzaCBsaW5lIHdob2xlIHdoZW4gaXQgZml0cyB0aGF0IGZ1bGwgbGluZSwgdXNpbmcgZGljdGlvbmFyeSBicmVha3Mgb25seSB3aGVuIHRoZSBjaHVuayBpdHNlbGYgaXMgb3ZlcmxvbmcuYH0pLCQoe2lkOmB3b3JkLW92ZXJsb25nLXRva2VuLWVtZXJnZW5jeS1icmVha2AsZXZpZGVuY2U6e2tpbmQ6YHJlZ3Jlc3Npb24tdGVzdGAscmVmZXJlbmNlOmBwYWNrYWdlcy9kb2N4L3NyYy9ydW4taW5saW5lLWZvcm1hdHRpbmcudGVzdC50cyNicmVha3MgYSBuby1zcGFjZSB0b2tlbiB3aWRlciB0aGFuIHRoZSBsaW5lIGF0IHRoZSBjaGFyYWN0ZXIgbGV2ZWxgfSxkZXNjcmlwdGlvbjpgRW1lcmdlbmN5LWJyZWFrIGEgbm9uLUNKSyB0b2tlbiB0aGF0IGlzIHdpZGVyIHRoYW4gYW4gZW1wdHkgbGluZSBhdCBncmFwaGVtZS1zYWZlIGNoYXJhY3RlciBib3VuZGFyaWVzIHNvIGl0IHJlbWFpbnMgaW5zaWRlIHRoZSBjb250ZW50IGJhbmQuYH0pLCQoe2lkOmB3b3JkLXJ1bi12ZXJ0aWNhbC1hbGlnbi1iYXNlbGluZS1zaGlmdGAsZXZpZGVuY2U6e2tpbmQ6YHJlZ3Jlc3Npb24tdGVzdGAscmVmZXJlbmNlOmBwYWNrYWdlcy9kb2N4L3NyYy9ydW4tY2hhci1tZXRyaWNzLXJlbmRlci50ZXN0LnRzI3c6dmVydEFsaWduIHJhaXNlcyBzdXBlcnNjcmlwdCwgbG93ZXJzIHN1YnNjcmlwdCwgYW5kIGxlYXZlcyBvcmRpbmFyeSBiYXNlbGluZXMgdW5jaGFuZ2VkYH0sZGVzY3JpcHRpb246YFJldGFpbiB0aGUgZXN0YWJsaXNoZWQgcnVuLWxldmVsIGJhc2VsaW5lIGRpc3BsYWNlbWVudCBmb3IgdmVydGljYWxseSBhbGlnbmVkIHRleHQ6IHN1cGVyc2NyaXB0IHJpc2VzIGJ5IDAuMzUgb2YgaXRzIGF1dGhvcmVkIGZvbnQgc2l6ZSBhbmQgc3Vic2NyaXB0IGZhbGxzIGJ5IDAuMTUsIHdoaWxlIHRoZSBzZXBhcmF0ZWx5IGF1dGhvcmVkIHc6cG9zaXRpb24gcmVtYWlucyBhZGRpdGl2ZS5gfSksJCh7aWQ6YHdvcmQtdW5pZm9ybS1ydW4tcG9zaXRpb24tbGVhZGluZ2AsZXZpZGVuY2U6e2tpbmQ6YG9mZmljZS1vYnNlcnZhdGlvbmAsc3ludGhldGljRml4dHVyZUlkOmB1bmlmb3JtLXJ1bi1wb3NpdGlvbi1sZWFkaW5nYCxhcHBsaWNhdGlvbjpgTWljcm9zb2Z0IFdvcmRgLHZlcnNpb246YDE2LjExMS4xYCxwbGF0Zm9ybTpgbWFjT1MgMjYuNS4yYH0sZGVzY3JpcHRpb246YFdoZW4gZXZlcnkgbWV0cmljLWJlYXJpbmcgaXRlbSBvbiBhIGxpbmUgaGFzIHRoZSBzYW1lIG5vbi16ZXJvIHc6cG9zaXRpb24sIFdvcmQgcHJlc2VydmVzIHRoZSBlbmxhcmdlZCBsaW5lIGV4dGVudCBidXQgc2hhcmVzIHRoZSByZXN1bHRpbmcgc3VycGx1cyBhYm92ZSBhbmQgYmVsb3cgdGhlIGdseXBocy4gQSBsaW5lIGNvbnRhaW5pbmcgYSBkaWZmZXJlbnRseS1wb3NpdGlvbmVkIGl0ZW0gcmV0YWlucyB0aGUgZnVsbCByZWxhdGl2ZSBkaXNwbGFjZW1lbnQuYH0pO2Z1bmN0aW9uIHR4KGUsdCl7cmV0dXJuIHQ9PT0wP2U6ZS10LzJ9ZnVuY3Rpb24gbngoZSx0KXtyZXR1cm4gZT09PWBzdXBlcmA/dCouMzU6ZT09PWBzdWJgPy10Ki4xNTowfWNvbnN0IHJ4PTEuMztmdW5jdGlvbiBpeChlLHQsbil7aWYoIW58fCFlKXJldHVybiAwO2xldCByPWUudHJpbSgpLnRvTG93ZXJDYXNlKCk7cmV0dXJuIHI9PT1gbXMgbWluY2hvYHx8cj09PWDvvY3vvZMg5piO5pydYD90KnJ4OjB9ZnVuY3Rpb24gYXgoZSx0KXtyZXR1cm4gdD4wP01hdGgubWF4KDEsTWF0aC5jZWlsKGUvdCkpOjF9ZnVuY3Rpb24gb3goZSx0KXtyZXR1cm4gZT4wP2U6dCpyeH1mdW5jdGlvbiBzeChlLHQsbil7cmV0dXJuIE1hdGgubWF4KGUsdCpuKX1mdW5jdGlvbiBjeChlLHQsbil7cmV0dXJuIE1hdGgubWF4KGUsdCxuKX1mdW5jdGlvbiBseChlLHQpe3JldHVybihlPT09YGV4YWN0YHx8ZT09PWBhdXRvYCkmJnQ8PTB9JCh7aWQ6YHdvcmQtbmV1dHJhbC1zY3JpcHQtYXR0YWNobWVudGAsZXZpZGVuY2U6e2tpbmQ6YHJlZ3Jlc3Npb24tdGVzdGAscmVmZXJlbmNlOmBwYWNrYWdlcy9kb2N4L3NyYy9sYXlvdXQvY29tcGF0aWJpbGl0eS50ZXN0LnRzI2tlZXBzIG5ldXRyYWwgY2hhcmFjdGVycyBhdHRhY2hlZCB0byB0aGUgYWN0aXZlIHNjcmlwdCBzbGljZWB9LGRlc2NyaXB0aW9uOmBXZWFrIGFuZCBuZXV0cmFsIG5vbi1sZXR0ZXIgY2hhcmFjdGVycyBzdGF5IHdpdGggdGhlIGFjdGl2ZSBjb21wbGV4LXNjcmlwdCBzbGljZSBpbnN0ZWFkIG9mIG9wZW5pbmcgYWRkaXRpb25hbCBmb3JtYXR0aW5nIHNlZ21lbnRzLmB9KSwkKHtpZDpgd29yZC1ydGwtcnVuLWFtYmlndW91cy1jbGFzcy1vdmVycmlkZWAsZXZpZGVuY2U6e2tpbmQ6YHJlZ3Jlc3Npb24tdGVzdGAscmVmZXJlbmNlOmBwYWNrYWdlcy9kb2N4L3NyYy9iaWRpLWxpbmUudGVzdC50cyNrZWVwcyBMVFIgd29yZCBvcmRlciBmb3IgRW5nbGlzaCB0ZXh0IGluIHJ0bC1tYXJrZWQgcnVuc2B9LGRlc2NyaXB0aW9uOmBNb2RlbCBhbiBydGwtbWFya2VkIHJ1biBhcyBhIGhpZ2hlci1sZXZlbCBVQVggIzkgb3ZlcnJpZGUgZm9yIHB1bmN0dWF0aW9uIGFuZCBzeW1ib2xzIG9ubHksIGxlYXZpbmcgd2hpdGVzcGFjZSBhbmQgc3Ryb25nIGxldHRlcnMgYXQgdGhlaXIgb3JkaW5hcnkgY2xhc3Nlcy5gfSksJCh7aWQ6YHdvcmQtcnRsLWNvbXBsZXgtc2NyaXB0LWV1cm9wZWFuLWRpZ2l0cy1hbmAsZXZpZGVuY2U6e2tpbmQ6YHJlZ3Jlc3Npb24tdGVzdGAscmVmZXJlbmNlOmBwYWNrYWdlcy9kb2N4L3NyYy9iaWRpLWxpbmUudGVzdC50cyNvcmRlcnMgYW4gQU4tY2xhc3NpZmllZCBkYXRlIGFzIDIwMjYtMDItMjhgfSxkZXNjcmlwdGlvbjpgQ2xhc3NpZnkgRXVyb3BlYW4gZGlnaXRzIGFzIEFyYWJpYyBOdW1iZXIgd2l0aGluIGFuIEFyYWJpYyBvciBIZWJyZXcgY29tcGxleC1zY3JpcHQgcnVuIHNvIFVBWCAjOSBwcmVzZXJ2ZXMgdGhlIGNvbXBhdGlibGUgdmlzdWFsIG9yZGVyaW5nIG9mIGRpZ2l0IGdyb3VwcyBhbmQgc2VwYXJhdG9ycy5gfSksJCh7aWQ6YHdvcmQta2FzaGlkYS1maW5hbC1mb3JtLXByaW9yaXR5YCxldmlkZW5jZTp7a2luZDpgcmVncmVzc2lvbi10ZXN0YCxyZWZlcmVuY2U6YHBhY2thZ2VzL2RvY3gvc3JjL2thc2hpZGEtcHJpb3JpdHkudGVzdC50cyN1c2VzIHRoZSBCYVJhIGpvaW4gKEJlaC0+WWVoKSBvdmVyIHRoZSBmaW5hbC1sZXR0ZXIgam9pbiBpbiDYqNmK2YZgfSxkZXNjcmlwdGlvbjpgQXBwbHkgdGhlIG1lYXN1cmVkIGthc2hpZGEgZmluYWwtbGV0dGVyIHByaW9yaXR5IGNsYXNzZXMgb25seSBhdCBhIHdvcmQtZmluYWwgZm9sbG93aW5nIGxldHRlciBpbnN0ZWFkIG9mIGNvcHlpbmcgdGhlIGJyb2FkZXIgUXQgZmluYWwtZm9ybSBjb25kaXRpb25zLmB9KSwkKHtpZDpgd29yZC12ZXJ0aWNhbC10dS1jb3JuZXItcGxhY2VtZW50YCxldmlkZW5jZTp7a2luZDpgcmVncmVzc2lvbi10ZXN0YCxyZWZlcmVuY2U6YHBhY2thZ2VzL2RvY3gvc3JjL3ZlcnRpY2FsLXRleHQudGVzdC50cyNkb2VzIE5PVCBpbmstY2VudHJlIGEgc3Vic3RpdHV0ZWQgVHUgY29tbWEgZXZlbiB3aGVuIGluayBtZXRyaWNzIGFyZSBwcmVzZW50YH0sZGVzY3JpcHRpb246YEtlZXAgYSBzdWJzdGl0dXRlZCB2ZXJ0aWNhbCBUdSBjb21tYSBvciBmdWxsIHN0b3AgYXQgdGhlIGZvbnQtZGVzaWduZWQgdXBwZXItcmlnaHQgY2VsbCBwb3NpdGlvbiByYXRoZXIgdGhhbiBpbmstY2VudGVyaW5nIGl0IGdlb21ldHJpY2FsbHkuYH0pO2NvbnN0IHV4PS9bXHB7UH1ccHtTfV0vdTtmdW5jdGlvbiBkeChlKXtyZXR1cm4gdXgudGVzdChlKX1mdW5jdGlvbiBmeChlLHQpe3JldHVybiBlPT09dH1mdW5jdGlvbiBweChlKXtyZXR1cm4gZSE9PW51bGx9ZnVuY3Rpb24gbXgoZSx0LG4scixpLGE9e30pe2lmKHQhPW51bGwpcmV0dXJuIHQqbjtpZighcj8ucnVieXx8IWkpdGhyb3cgRXJyb3IoYFJ1YnkgYXQgJHtlfXB0IHdpdGhvdXQgaHBzUmFpc2UgcmVxdWlyZXMgcmV0YWluZWQgYmFzZSBhbmQgZ3VpZGUgaW5rYCk7aWYoci50ZXh0TGF5b3V0U2VydmljZSYmci50ZXh0U2hhcGVSZXF1ZXN0KXtsZXQgZT1yLnRleHRMYXlvdXRTZXJ2aWNlLnNoYXBlKHsuLi5yLnRleHRTaGFwZVJlcXVlc3QsdGV4dDpyLnRleHQsZm9udFNpemVQdDp3dihyLG4pLG1lYXN1cmU6ITAsY2x1c3Rlckdlb21ldHJ5OiExfSksdD1yLnRleHRMYXlvdXRTZXJ2aWNlLnNoYXBlKHsuLi5yLnRleHRTaGFwZVJlcXVlc3QsdGV4dDpyLnJ1YnkudGV4dCxmb250U2l6ZVB0OnIucnVieS5mb250U2l6ZVB0Km4sbWVhc3VyZTohMCxjbHVzdGVyR2VvbWV0cnk6ITF9KTtpZihlLmlua0JvdW5kcyYmdC5pbmtCb3VuZHMpcmV0dXJuIGUuaW5rQm91bmRzLmFzY2VudFB0K3QuaW5rQm91bmRzLmRlc2NlbnRQdH1sZXQgbz1pLmZvbnQ7dHJ5e2kuZm9udD1EeChyLmJvbGQsci5pdGFsaWMsd3YocixuKSxyLmZvbnRGYW1pbHksYSxyLmZvbnRSb3V0ZSk7bGV0IHQ9aS5tZWFzdXJlVGV4dChyLnRleHQpO2kuZm9udD1EeChyLmJvbGQsci5pdGFsaWMsZSpuLHIuZm9udEZhbWlseSxhLHIuZm9udFJvdXRlKTtsZXQgbz1pLm1lYXN1cmVUZXh0KHIucnVieS50ZXh0KTtpZihOdW1iZXIuaXNGaW5pdGUodC5hY3R1YWxCb3VuZGluZ0JveEFzY2VudCkmJk51bWJlci5pc0Zpbml0ZShvLmFjdHVhbEJvdW5kaW5nQm94RGVzY2VudCkpcmV0dXJuIHQuYWN0dWFsQm91bmRpbmdCb3hBc2NlbnQrby5hY3R1YWxCb3VuZGluZ0JveERlc2NlbnR9ZmluYWxseXtpLmZvbnQ9b310aHJvdyBFcnJvcihgUnVieSB3aXRob3V0IGhwc1JhaXNlIHJlcXVpcmVzIHJldGFpbmVkIGJhc2UgYW5kIGd1aWRlIGlua2ApfWNvbnN0IGh4PW5ldyBTZXQoW2BzYWtrYWwgbWFqYWxsYWAsYHRyYWRpdGlvbmFsIGFyYWJpY2AsYHNpbXBsaWZpZWQgYXJhYmljYCxgYXJhYmljIHR5cGVzZXR0aW5nYCxgdW5pdmVycyBuZXh0IGFyYWJpY2AsYG5vdG8gbmFza2ggYXJhYmljYCxgbm90byBzYW5zIGFyYWJpY2BdKSxneD1uZXcgU2V0KFtgc2Fra2FsIG1hamFsbGFgLGB0cmFkaXRpb25hbCBhcmFiaWNgLGBzaW1wbGlmaWVkIGFyYWJpY2AsYGFyYWJpYyB0eXBlc2V0dGluZ2AsYG5vdG8gbmFza2ggYXJhYmljYF0pO2Z1bmN0aW9uIF94KGUpe3JldHVybiBoeC5oYXMoZS50b0xvd2VyQ2FzZSgpKX1mdW5jdGlvbiB2eChlKXtyZXR1cm4gZS5tYXAoZT0+YCIke2V9ImApLmpvaW4oYCwgYCl9Y29uc3QgeXg9W2BOb3RvIE5hc2toIEFyYWJpY2AsYE5vdG8gU2FucyBBcmFiaWNgXTtmdW5jdGlvbiBieChlKXtsZXQgdD1lJiZlIT09YGpwYD9LKGUsYHNhbnNgKTpbYE5vdG8gU2FucyBKUGAsYEhpcmFnaW5vIFNhbnNgLGBNZWlyeW9gLC4uLksoYGpwYCxgc2Fuc2ApLnNsaWNlKDEpXTtyZXR1cm4gZT09bnVsbD9gJHt2eChbLi4ucSxgQXJpYWxgLGBIZWx2ZXRpY2FgLGBMaWJlcmF0aW9uIFNhbnNgLC4uLnQsLi4ueXhdKX0sIHNhbnMtc2VyaWZgOmAke3Z4KFsuLi50LC4uLnl4LC4uLnFdKX0sIHNhbnMtc2VyaWZgfWZ1bmN0aW9uIHh4KGUpe2xldCB0PWUmJmUhPT1ganBgP0soZSxgc2VyaWZgKTpbYFl1IE1pbmNob2AsYFl1TWluY2hvYCxgSGlyYWdpbm8gTWluY2hvIFByb05gLGBNUyBNaW5jaG9gLGBOb3RvIFNlcmlmIEpQYCwuLi5LKGBqcGAsYHNlcmlmYCkuc2xpY2UoMSldO3JldHVybiBlPT1udWxsP2Ake3Z4KFsuLi5KLGBUaW1lcyBOZXcgUm9tYW5gLGBDYW1icmlhYCxgTGliZXJhdGlvbiBTZXJpZmAsLi4udCwuLi55eF0pfSwgc2VyaWZgOmAke3Z4KFsuLi50LC4uLnl4LC4uLkpdKX0sIHNlcmlmYH1jb25zdCBTeD1uZXcgV2Vha01hcCxDeD1uZXcgV2Vha01hcDtmdW5jdGlvbiB3eChlLHQpe2xldCBuPWU/P3t9O3JldHVybiB0JiZPYmplY3Qua2V5cyh0KS5sZW5ndGg+MCYmQ3guc2V0KG4sdCksbn1mdW5jdGlvbiBUeChlLHQ9e30pe2xldCBuPVN4LmdldCh0KT8/KCgpPT57bGV0IGU9bmV3IE1hcDtyZXR1cm4gU3guc2V0KHQsZSksZX0pKCkscj1lPz9gXDBudWxsYCxpPW4uZ2V0KHIpO2lmKGkhPT12b2lkIDApcmV0dXJuIGk7bGV0IGE9RXgoZSx0LEN4LmdldCh0KSk7cmV0dXJuIG4uc2V0KHIsYSksYX1mdW5jdGlvbiBFeChlLHQsbj17fSl7aWYoIWUpcmV0dXJuIGJ4KG51bGwpO2xldCByPWAiJHsoZT0+ZS5yZXBsYWNlKC8iL2csYFxcImApKShlKX0iYCxpPWUudG9Mb3dlckNhc2UoKSxhPW5lKGUpO2lmKF94KGUpKXJldHVybiBneC5oYXMoaSk/YCR7cn0sICJOb3RvIE5hc2toIEFyYWJpYyIsICJOb3RvIFNhbnMgQXJhYmljIiwgIk5vdG8gU2VyaWYiLCAiTm90byBTYW5zIEpQIiwgIkhpcmFnaW5vIFNhbnMiLCBzZXJpZmA6YCR7cn0sICJOb3RvIFNhbnMgQXJhYmljIiwgIk5vdG8gTmFza2ggQXJhYmljIiwgIk5vdG8gU2FucyBKUCIsICJIaXJhZ2lubyBTYW5zIiwgc2Fucy1zZXJpZmA7bGV0IG89dFtlXTtpZihvJiZvIT09YGF1dG9gKXN3aXRjaChvKXtjYXNlYHJvbWFuYDpyZXR1cm5gJHtyfSwgJHt4eChhKX1gO2Nhc2Vgc3dpc3NgOnJldHVybmAke3J9LCAke2J4KGEpfWA7Y2FzZWBtb2Rlcm5gOmlmKG5bZV09PT1gZml4ZWRgKXJldHVybiBhPT1udWxsP2Ake3J9LCAiQ291cmllciBOZXciLCBtb25vc3BhY2VgOmAke3J9LCAke3Z4KFsuLi5hPT09YGpwYD9bYFl1IEdvdGhpY2AsYFl1R290aGljYCxgSGlyYWdpbm8gU2Fuc2AsYE1laXJ5b2AsYE5vdG8gU2FucyBKUGBdOksoYSxgc2Fuc2ApLGBDb3VyaWVyIE5ld2BdKX0sIG1vbm9zcGFjZWA7YnJlYWs7ZGVmYXVsdDpicmVha31sZXQgcz1HKGUpO2lmKHM9PT1gc2VyaWZgKXJldHVybmAke3J9LCAke3h4KGEpfWA7aWYocz09PWBtb25vYClyZXR1cm5gJHtyfSwgIkNvdXJpZXIgTmV3IiwgbW9ub3NwYWNlYDtpZihhPT1udWxsfHxhPT09YGpwYCl7aWYoaS5pbmNsdWRlcyhgbWVpcnlvYCl8fGUuaW5jbHVkZXMoYOODoeOCpOODquOCqmApKXJldHVybmAke3J9LCAiTWVpcnlvIFVJIiwgIk1laXJ5byIsICR7YngoYSl9YDtpZihlLmluY2x1ZGVzKGDmuLjjgrTjgrfjg4Pjgq9gKXx8L1xieXVccypnb3RoaWNcYi9pLnRlc3QoZSl8fGkuaW5jbHVkZXMoYHl1Z290aGljYCkpcmV0dXJuYCR7cn0sICJZdSBHb3RoaWMiLCAiWXVHb3RoaWMiLCAke2J4KGEpfWA7aWYoaS5pbmNsdWRlcyhgaXBhYCkpcmV0dXJuYCR7cn0sICJJUEFleEdvdGhpYyIsICR7YngoYSl9YDtpZihpLmluY2x1ZGVzKGBzZWdvZWApKXJldHVybmAke3J9LCAiU2Vnb2UgVUkiLCAke3Z4KFsuLi55eCwuLi5xXSl9LCBzYW5zLXNlcmlmYH1yZXR1cm5gJHtyfSwgJHtieChhKX1gfWZ1bmN0aW9uIER4KGUsdCxuLHIsaT17fSxhKXtyZXR1cm4gYT9XKGEsbixlPzcwMDo0MDAsdD9gaXRhbGljYDpgbm9ybWFsYCk6YCR7dD9gaXRhbGljYDpgbm9ybWFsYH0gJHtlP2Bib2xkYDpgbm9ybWFsYH0gJHtufXB4ICR7VHgocixpKX1gfWZ1bmN0aW9uIE94KGUsdCxuPSExKXtyZXR1cm4gTWF0aC5tYXgoZGcoZS5mb250RmFtaWx5LHQsbiksKGUucmVzb2x2ZWRMaW5lSGVpZ2h0UmF0aW8/PzApKnQpfWZ1bmN0aW9uIGt4KGUsdCxuPSExKXtyZXR1cm4gTWF0aC5tYXgoZGcoZS5lYUZsb29yRmFtaWx5LHQsbiksKGUucmVzb2x2ZWRFYUZsb29yTGluZUhlaWdodFJhdGlvPz8wKSp0KX1mdW5jdGlvbiBBeChlKXtmb3IobGV0IHQgb2YgZS5ydW5zKWlmKHQudHlwZT09PWB0ZXh0YHx8dC50eXBlPT09YGZpZWxkYClyZXR1cm4gdC5mb250U2l6ZTtyZXR1cm4gdHlwZW9mIGUuZGVmYXVsdEZvbnRTaXplPT1gbnVtYmVyYD9lLmRlZmF1bHRGb250U2l6ZToxMH1mdW5jdGlvbiBqeChlLHQ9ITEpe2ZvcihsZXQgdCBvZiBlLnJ1bnMpaWYodC50eXBlPT09YHRleHRgfHx0LnR5cGU9PT1gZmllbGRgKXJldHVybiB0LmZvbnRGYW1pbHk7cmV0dXJuIHQmJmUuZGVmYXVsdEZvbnRGYW1pbHlFYXN0QXNpYT9lLmRlZmF1bHRGb250RmFtaWx5RWFzdEFzaWE6ZS5kZWZhdWx0Rm9udEZhbWlseT8/bnVsbH1mdW5jdGlvbiBNeChlLHQsbil7cmV0dXJuIGRnKGp4KGUsbiksQXgoZSkqdCxuKX1mdW5jdGlvbiBOeChlLHQpe3JldHVybiFlfHxlLmNoYXJTcGFjZVB0PT1udWxsfHxlLnR5cGUhPT1gbGluZXNBbmRDaGFyc2AmJmUudHlwZSE9PWBzbmFwVG9DaGFyc2A/MDplLmNoYXJTcGFjZVB0KnR9ZnVuY3Rpb24gUHgoZSl7bGV0IHQ9MDtmb3IobGV0IG4gb2YgZSlUdi50ZXN0KG4pJiZ0Kys7cmV0dXJuIHR9ZnVuY3Rpb24gRngoZSx0LG4pe2xldCByPU54KHQsbik7aWYocj09PTB8fGUubGVuZ3RoPT09MClyZXR1cm4gMDtsZXQgaT1bLi4uZV07cmV0dXJuIHQ/LnR5cGU9PT1gbGluZXNBbmRDaGFyc2B8fFB4KGUpPT09aS5sZW5ndGg/aS5sZW5ndGgqcjowfWZ1bmN0aW9uIEl4KGUsdCxuKXtyZXR1cm4gZS5zbmFwVG9DaGFyYWN0ZXJHcmlkPT09ITF8fHQ/LnR5cGU9PT1gc25hcFRvQ2hhcnNgPzA6dD8udHlwZT09PWBsaW5lc0FuZENoYXJzYCYmZS53aWR0aEJhbGFuY2VHcmlkRGVsdGFGYWN0b3IhPT12b2lkIDA/TngodCxuKSplLndpZHRoQmFsYW5jZUdyaWREZWx0YUZhY3RvcjpGeChlLnRleHQsdCxuKT09PTA/MDpOeCh0LG4pfWZ1bmN0aW9uIEx4KGUsdCl7cmV0dXJuIGUuZml0VGV4dFBlckdhcFB4PT09dm9pZCAwP1J4KGUpKnQ6ZS5maXRUZXh0UGVyR2FwUHh9ZnVuY3Rpb24gUngoZSl7cmV0dXJuIGUuY2hhclNwYWNpbmc/PzB9ZnVuY3Rpb24gengoZSl7cmV0dXJuIGUucHVuY3R1YXRpb25Db21wcmVzc2lvbnM/LnJlZHVjZSgoZSx0KT0+ZSt0LmFkanVzdG1lbnRQdCwwKT8/MH1mdW5jdGlvbiBCeChlLHQpe3JldHVybiBWeChlLGUudGV4dCx0KX1mdW5jdGlvbiBWeChlLHQsbil7aWYoZS5maXRUZXh0UGVyR2FwUHghPT12b2lkIDB8fGUudGF0ZUNodVlva298fCFVYihuPy50eXBlKXx8IWUud2lkdGhCYWxhbmNlU3BhY2VTZXF1ZW5jZXx8ZS53aWR0aEJhbGFuY2VTcGFjZUFkanVzdG1lbnRQdD09PXZvaWQgMClyZXR1cm4gMDtsZXQgcj0wO2ZvcihsZXQgZSBvZiB0KWU9PT1gIGAmJihyKz0xKTtyZXR1cm4gciplLndpZHRoQmFsYW5jZVNwYWNlQWRqdXN0bWVudFB0fWZ1bmN0aW9uIEh4KGUsdCxuKXtsZXQgcj1lLnB1bmN0dWF0aW9uQ29tcHJlc3Npb25zPy5maWx0ZXIoZT0+ZS5lbmQ+dCYmZS5lbmQ8PW4pLm1hcChlPT5PYmplY3QuZnJlZXplKHtlbmQ6ZS5lbmQtdCxhZGp1c3RtZW50UHQ6ZS5hZGp1c3RtZW50UHR9KSk7cmV0dXJuIHImJnIubGVuZ3RoPjA/T2JqZWN0LmZyZWV6ZShyKTp2b2lkIDB9ZnVuY3Rpb24gVXgoZSx0KXtpZighZS50ZXh0TGF5b3V0U2VydmljZXx8IWUudGV4dFNoYXBlUmVxdWVzdHx8dC5sZW5ndGg9PT0wKXJldHVybjtsZXQgbj1lLnRleHRMYXlvdXRTZXJ2aWNlLnNoYXBlKHsuLi5lLnRleHRTaGFwZVJlcXVlc3QsdGV4dDp0LG1lYXN1cmU6ITAsY2x1c3Rlckdlb21ldHJ5OiExfSk7aWYobi5ob3Jpem9udGFsSW5rQm91bmRzQXJlVGlnaHQhPT0hMHx8IW4uaW5rQm91bmRzfHwhTnVtYmVyLmlzRmluaXRlKG4uYWR2YW5jZVB0KXx8IU51bWJlci5pc0Zpbml0ZShuLmlua0JvdW5kcy54TWluUHQpfHwhTnVtYmVyLmlzRmluaXRlKG4uaW5rQm91bmRzLnhNYXhQdCkpcmV0dXJuO2xldCByPWUuY2hhclNjYWxlPz8xO3JldHVybnthZHZhbmNlUHQ6bi5hZHZhbmNlUHQqcix4TWluUHQ6bi5pbmtCb3VuZHMueE1pblB0KnIseE1heFB0Om4uaW5rQm91bmRzLnhNYXhQdCpyfX1mdW5jdGlvbiBXeChlKXtpZighZS50ZXh0TGF5b3V0U2VydmljZXx8IWUudGV4dFNoYXBlUmVxdWVzdHx8ZS50ZXh0Lmxlbmd0aD09PTApcmV0dXJuO2xldCB0PWUudGV4dExheW91dFNlcnZpY2Uuc2hhcGUoey4uLmUudGV4dFNoYXBlUmVxdWVzdCx0ZXh0OmUudGV4dCxtZWFzdXJlOiEwLGNsdXN0ZXJHZW9tZXRyeTohMH0pO2lmKCF0LmNsdXN0ZXJzPy5sZW5ndGgpcmV0dXJuO2xldCBuPWUuY2hhclNjYWxlPz8xLHI9bmV3IE1hcDtmb3IobGV0IGUgb2YgdC5jbHVzdGVycyl7aWYoIU51bWJlci5pc0Zpbml0ZShlLmFkdmFuY2VQdCkpcmV0dXJuO3Iuc2V0KGUucmFuZ2UuZW5kLGUuYWR2YW5jZVB0Km4pfXJldHVybiByfWZ1bmN0aW9uIEd4KGUpe2xldCB0LG49bmV3IE1hcDtmb3IobGV0IHIgb2YgZSl7aWYoIShgdGV4dGBpbiByKXx8ci52ZXJ0aWNhbFJ1bil7dD12b2lkIDA7Y29udGludWV9bGV0IGU9cixpPWUucHVuY3R1YXRpb25Db21wcmVzc2lvbnM/P1tdLGE9bmV3IE1hcChpLm1hcCgoZSx0KT0+W2UuZW5kLHRdKSksbz1pLmxlbmd0aD4wP1d4KGUpOnZvaWQgMCxzPVswLC4uLk5tKGUudGV4dCksZS50ZXh0Lmxlbmd0aF07Zm9yKGxldCByPTA7cjxzLmxlbmd0aC0xO3IrPTEpe2xldCBpPXNbcl0sYz1zW3IrMV07aWYoYzw9aSljb250aW51ZTtsZXQgbD1hLmdldChjKSx1PXR8fGwhPT12b2lkIDA/VXgoZSxlLnRleHQuc2xpY2UoaSxjKSk6dm9pZCAwO2lmKHQmJnUpe2xldCBlPW4uZ2V0KHQuc2VnbWVudCk/P3Quc2VnbWVudC5wdW5jdHVhdGlvbkNvbXByZXNzaW9ucy5tYXAoZT0+KHsuLi5lfSkpLHI9ZVt0LmNvbXByZXNzaW9uSW5kZXhdLGk9TWF0aC5tYXgoMCx0Lmluay5hZHZhbmNlUHQrci5hZGp1c3RtZW50UHQpLGE9TWF0aC5taW4oMCxpLXQuY29udGV4dHVhbEFkdmFuY2VQdCksbz1NYXRoLm1pbigwLHQuaW5rLnhNYXhQdC11LnhNaW5QdC10LmNvbnRleHR1YWxBZHZhbmNlUHQpLHM9TWF0aC5tYXgoci5hZGp1c3RtZW50UHQsYSxvKTtzIT09ci5hZGp1c3RtZW50UHQmJihlW3QuY29tcHJlc3Npb25JbmRleF09e2VuZDpyLmVuZCxhZGp1c3RtZW50UHQ6c30sbi5zZXQodC5zZWdtZW50LGUpKX10PWwhPT12b2lkIDAmJnU/e3NlZ21lbnQ6ZSxjb21wcmVzc2lvbkluZGV4OmwsaW5rOnUsY29udGV4dHVhbEFkdmFuY2VQdDpvPy5nZXQoYyk/P3UuYWR2YW5jZVB0fTp2b2lkIDB9fWZvcihsZXRbZSx0XW9mIG4pZS5wdW5jdHVhdGlvbkNvbXByZXNzaW9ucz1PYmplY3QuZnJlZXplKHQubWFwKGU9Pk9iamVjdC5mcmVlemUoZSkpKX1mdW5jdGlvbiBLeChlKXtyZXR1cm4gZS5jaGFyU2NhbGU/PzF9ZnVuY3Rpb24gcXgoZSx0LG4scixpKXtyZXR1cm4gZSpyK1suLi50XS5sZW5ndGgqbitbLi4udF0ubGVuZ3RoKml9ZnVuY3Rpb24gSngoZSx0LG4pe3JldHVybiBlLmZpdFRleHRQZXJHYXBQeD09PXZvaWQgMD9JeChlLHQsbikrTHgoZSxuKTplLmZpdFRleHRQZXJHYXBQeH1mdW5jdGlvbiBZeChlLHQsbixyKXtpZihlLmZpdFRleHRQZXJHYXBQeCE9PXZvaWQgMCl7bGV0IG49Wy4uLmUudGV4dF0ubGVuZ3RoLHI9ZS5maXRUZXh0UmVnaW9uRW5kP01hdGgubWF4KDAsbi0xKTpuO3JldHVybiB0Kkt4KGUpK3IqZS5maXRUZXh0UGVyR2FwUHgrKGUuZml0VGV4dFRyYWlsaW5nUGFkUHg/PzApfWlmKGUudGF0ZUNodVlva28pcmV0dXJuIGUuZm9udFNpemUqcjtsZXQgaT1JeChlLG4scik7cmV0dXJuIHF4KHQsZS50ZXh0LGksS3goZSksTHgoZSxyKSkrQngoZSxuKSpyKkt4KGUpK3p4KGUpKnJ9ZnVuY3Rpb24gWHgoZSx0KXtyZXR1cm4gdD8udHlwZSE9PWBzbmFwVG9DaGFyc2B8fCF0LmNoYXJhY3RlclBpdGNoUHR8fHQuY2hhcmFjdGVyUGl0Y2hQdDw9MHx8ZS5zbmFwVG9DaGFyYWN0ZXJHcmlkPT09ITF8fGUubWV0cmljT25seXx8ZS5maXRUZXh0UmVnaW9uSW5kZXghPT12b2lkIDB8fGUudGF0ZUNodVlva28/bnVsbDplLnNjcmlwdD09PWBlYXN0QXNpYWA/YGVhc3RBc2lhYDplLnNjcmlwdD09PWBjb21wbGV4U2NyaXB0YD9gY29tcGxleFNjcmlwdGA6YGxhdGluYH1mdW5jdGlvbiBaeChlLHQsbixyPTEpe3JldHVybiEobj4wKXx8IU51bWJlci5pc0Zpbml0ZShlKT9lOnQ9PT1gZWFzdEFzaWFgP01hdGgubWF4KDEscikqbjpNYXRoLm1heCgxLE1hdGguY2VpbChNYXRoLm1heCgwLGUpL24tMWUtOSkpKm59ZnVuY3Rpb24gUXgoZSl7cmV0dXJuIWV8fCFlLmxpbmVQaXRjaFB0fHxlLmxpbmVQaXRjaFB0PD0wPyExOmUudHlwZT09PWBsaW5lc2B8fGUudHlwZT09PWBsaW5lc0FuZENoYXJzYHx8ZS50eXBlPT09YHNuYXBUb0NoYXJzYH1mdW5jdGlvbiAkeChlLHQpe3JldHVybiBheChlLHQpfWZ1bmN0aW9uIGVTKGUsdCl7cmV0dXJuIG94KGUsdCl9ZnVuY3Rpb24gdFMoZSx0LG4scixpLGEsbz0wLHM9ITEsYyxsKXtsZXQgdT10K24sZD1NYXRoLm1heCh1LG8pLGY9UXgoaSkscD1mP2kubGluZVBpdGNoUHQqcjowLG09KCk9PnM/YT9NYXRoLm1heChwLE1hdGguY2VpbCh1L3ApKnApOiR4KGM/PyhvPjA/bzpsPT09dm9pZCAwP3A6ZVMoMCxsKSkscCkqcDpNYXRoLm1heCh1LHApLGg9ZSE9PW51bGwmJmUuZXhwbGljaXQhPT0hMDtpZighZXx8bHgoZS5ydWxlLGUudmFsdWUpKXJldHVybiBmP20oKTpkO2lmKGUucnVsZT09PWBhdXRvYCl7aWYoZil7aWYoaCl7bGV0IHQ9bSgpO3JldHVybiBzP3N4KHQscCxlLnZhbHVlKTp0fXJldHVybiBNYXRoLm1heCh1LHAqZS52YWx1ZSl9cmV0dXJuIGQqZS52YWx1ZX1pZihlLnJ1bGU9PT1gZXhhY3RgKXJldHVybiBlLnZhbHVlKnI7aWYoZS5ydWxlPT09YGF0TGVhc3RgKXtsZXQgdD1mP2F8fGg/bSgpOnA6MDtyZXR1cm4gY3goZCxlLnZhbHVlKnIsdCl9cmV0dXJuIGR9ZnVuY3Rpb24gblMoZSx0KXtyZXR1cm57YXNjOmUqdCouOCxkZXNjOmUqdCouMn19ZnVuY3Rpb24gclMoZSx0LG4scixpPSExKXtyZXR1cm4gZmcodCxyLGUuZm9udEJvdW5kaW5nQm94QXNjZW50Pz9lLmFjdHVhbEJvdW5kaW5nQm94QXNjZW50Pz9uKi44LGUuZm9udEJvdW5kaW5nQm94RGVzY2VudD8/ZS5hY3R1YWxCb3VuZGluZ0JveERlc2NlbnQ/P24qLjIsaSl9ZnVuY3Rpb24gaVMoZSx0LG4scixpPSExLGEsbz17fSxzPWUubGluZVNwYWNpbmcsYz17fSxsLHUsZD0hMSl7bGV0IGY9dSxwPWl8fGY/LmZvbnRIaW50PT09YGVhc3RBc2lhYCxtPWY/LmNvbXBsZXhTY3JpcHQ9PT0hMCxoPWY/LmZvbnRTaXplUHQ/P0F4KGUpLGc9angoZSxwKSxfPWc/Y1twZyhnKV06dm9pZCAwLHY9Xz8uZmFtaWx5Pz9nLHksYjtpZihsKXtsZXQgbj1mP2Yud2VpZ2h0Pj02MDA6ITEscj1mPy5zdHlsZT09PWBpdGFsaWNgLGk9Zj8uZm9udHMuYXNjaWk/P2UuZGVmYXVsdEZvbnRGYW1pbHk/P2csYT1sLnNoYXBlKHt0ZXh0OnA/YOOBgmA6YHhgLGZvbnRTaXplUHQ6aCp0LGZvbnRzOmY/LmZvbnRzPz97YXNjaWk6aSxoaWdoQW5zaTppLGVhc3RBc2lhOmUuZGVmYXVsdEZvbnRGYW1pbHlFYXN0QXNpYT8/aSxjb21wbGV4U2NyaXB0Oml9LHRoZW1lRm9udHM6Zj8udGhlbWVGb250cyx0aGVtZUZvbnRQcmVzZW5jZTpmPy50aGVtZUZvbnRQcmVzZW5jZSx3ZWlnaHQ6bj83MDA6NDAwLHN0eWxlOnI/YGl0YWxpY2A6YG5vcm1hbGAsY29tcGxleFNjcmlwdDptLGZvbnRIaW50OmY/LmZvbnRIaW50LGVhc3RBc2lhTGFuZ3VhZ2U6Zj8uZWFzdEFzaWFMYW5ndWFnZSxrZXJuaW5nOmY/Lmtlcm5pbmcsbWVhc3VyZTohMH0pLG89YS5zcGFuc1swXT8uZm9udC5yZXNvbHZlZEZhbWlseT8/Zzsoe2FzY2VudDp5LGRlc2NlbnQ6Yn09clMoe3dpZHRoOmEuYWR2YW5jZVB0LGFjdHVhbEJvdW5kaW5nQm94QXNjZW50OmEuYXNjZW50UHQsYWN0dWFsQm91bmRpbmdCb3hEZXNjZW50OmEuZGVzY2VudFB0LGZvbnRCb3VuZGluZ0JveEFzY2VudDphLmFzY2VudFB0LGZvbnRCb3VuZGluZ0JveERlc2NlbnQ6YS5kZXNjZW50UHR9LG8saCp0LGgqdCxwKSl9ZWxzZSBpZihhKXtsZXQgZT1hLmZvbnQ7YS5mb250PUR4KCExLCExLGgqdCx2LG8pO2xldCBuPWEubWVhc3VyZVRleHQocD9g44GCYDpgeGApO2EuZm9udD1lLHthc2NlbnQ6eSxkZXNjZW50OmJ9PXJTKG4sdixoKnQsaCp0LHApfWVsc2UgKHthc2M6eSxkZXNjOmJ9PW5TKGgsdCkpO2xldCB4PV8/LmxpbmVIZWlnaHRSYXRpbz09bnVsbD9NeChlLHQscCk6aCp0Kl8ubGluZUhlaWdodFJhdGlvLFM9TWF0aC5tYXgoeCxpeChnLGgqdCxwKSksQz1pP2VTKFMsaCp0KTp2b2lkIDAsdz10UyhzLHksYix0LG4scixTLGksQyksVD1kJiZpJiZReChuKSxFPVQ/dFMobnVsbCx5LGIsdCxuLHIsUyxpLEMpOncsRD1UP3RTKHtydWxlOmBhdExlYXN0YCx2YWx1ZTowLGV4cGxpY2l0OiEwfSx5LGIsdCxuLHIsUyxpLEMpOnc7cmV0dXJue2FkdmFuY2VQeDpkP1ZiKHtvcmRpbmFyeUFkdmFuY2VQeDp3LGFsbG9jYXRlZEdyaWRBZHZhbmNlUHg6RSxhdExlYXN0WmVyb0FkdmFuY2VQeDpELGxpbmVTcGFjaW5nOnMsZ3JpZEFsbG9jYXRpb25BY3RpdmU6VCxzY2FsZTp0fSk6dyxhc2NlbnRQeDp5LGRlc2NlbnRQeDpifX1mdW5jdGlvbiBhUyhlLHQsbixyLGk9ITEsYSxvPXt9LHM9ZS5saW5lU3BhY2luZyxjPXt9LGwsdSxkPSExKXtyZXR1cm4gaVMoZSx0LG4scixpLGEsbyxzLGMsbCx1LGQpLmFkdmFuY2VQeH1mdW5jdGlvbiBvUyhlLHQsbil7cmV0dXJuIE1hdGgubWF4KDAsKGUtdCtuKS8yKX1mdW5jdGlvbiBzUyhlLHQsbixyLGksYSxvLHM9e30sYyxsLHU9ITEpe2xldCBkPWlTKGUsMSx0LG4scixpLGEsbyxzLGMsbCx1KTtyZXR1cm4gb1MoZC5hZHZhbmNlUHgsZC5hc2NlbnRQeCxkLmRlc2NlbnRQeCl9ZnVuY3Rpb24gY1MoZSl7bGV0IHQ9W107Zm9yKGxldCBuIG9mIGUpe2xldCBlPW4udG9Mb3dlckNhc2UoKT09PW4mJm4udG9VcHBlckNhc2UoKSE9PW4scj0vXHMvLnRlc3Qobik/dFt0Lmxlbmd0aC0xXT8ucmVkdWNlZD8/ITE6ZSxpPXRbdC5sZW5ndGgtMV07aSYmaS5yZWR1Y2VkPT09cj9pLnRleHQrPW46dC5wdXNoKHt0ZXh0Om4scmVkdWNlZDpyfSl9cmV0dXJuIHQubGVuZ3RoP3Q6W3t0ZXh0OmUscmVkdWNlZDohMX1dfWZ1bmN0aW9uIGxTKGUsdCl7Zm9yKGxldCBuPXQtMTtuPj0wO24tLSl7bGV0IHQ9ZVtuXTtpZih0LnR5cGU9PT1gdGV4dGB8fHQudHlwZT09PWBmaWVsZGApcmV0dXJuIHQuZm9udFNpemV9Zm9yKGxldCBuPXQrMTtuPGUubGVuZ3RoO24rKyl7bGV0IHQ9ZVtuXTtpZih0LnR5cGU9PT1gdGV4dGB8fHQudHlwZT09PWBmaWVsZGApcmV0dXJuIHQuZm9udFNpemV9cmV0dXJuIDEwfWZ1bmN0aW9uIHVTKGUsdCl7aWYoZS5maWVsZFR5cGU9PT1gcGFnZWApcmV0dXJuIEZoKHQuZGlzcGxheVBhZ2VOdW1iZXI/P3QucGFnZUluZGV4KzEsZWcoZS5pbnN0cnVjdGlvbik/P3QucGFnZU51bWJlckZvcm1hdD8/YGRlY2ltYWxgKTtpZihlLmZpZWxkVHlwZT09PWBudW1QYWdlc2Ape2xldCBuPWVnKGUuaW5zdHJ1Y3Rpb24pPz9gZGVjaW1hbGA7cmV0dXJuIEZoKHQudG90YWxQYWdlcyxuKX1pZihlLmZpZWxkVHlwZT09PWBkYXRlYHx8ZS5maWVsZFR5cGU9PT1gdGltZWApe2xldCBuPW9nKGUuaW5zdHJ1Y3Rpb24pO2lmKG4pe2xldCBlPXNnKG4sbmV3IERhdGUodC5jdXJyZW50RGF0ZU1zPz9EYXRlLm5vdygpKSk7aWYoZSE9PW51bGwpcmV0dXJuIGV9cmV0dXJuIGUuZmFsbGJhY2tUZXh0fXJldHVybiBlLmZhbGxiYWNrVGV4dH1mdW5jdGlvbiBkUyhlKXtmb3IobGV0IHQ9MDt0PGUubGVuZ3RoOyl7bGV0IG49ZS5jb2RlUG9pbnRBdCh0KTtpZihvbShuKSlyZXR1cm4hMDt0Kz1uPjY1NTM1PzI6MX1yZXR1cm4hMX1jb25zdCBmUz1uZXcgU2V0KFtg44CBYCxg44CCYCxg77yMYCxg77yOYCxg44CNYCxg44CPYCxg44CRYCxg77yJYCxg77y9YCxg772dYF0pO2Z1bmN0aW9uIHBTKGUpe2xldCB0PWUuY29kZVBvaW50QXQoMCk7cmV0dXJuIHQ9PT12b2lkIDA/ITE6dD49MTIzNTMmJnQ8PTEyNDM4fHx0Pj0xMjQ0NSYmdDw9MTI0NDd8fHQ+PTEyNDQ5JiZ0PD0xMjUzOHx8dD09PTEyNTQwfHx0Pj0xMjU0MSYmdDw9MTI1NDN8fHQ+PTEyNzg0JiZ0PD0xMjc5OXx8dD49MTEwNTc2JiZ0PD0xMTA1OTF8fHQ+PTExMDU5MiYmdDw9MTEwOTU5fWZ1bmN0aW9uIG1TKGUsdCl7c3dpdGNoKHQpe2Nhc2VgY29tcHJlc3NQdW5jdHVhdGlvbmA6cmV0dXJuIGZTLmhhcyhlKTtjYXNlYGNvbXByZXNzUHVuY3R1YXRpb25BbmRKYXBhbmVzZUthbmFgOnJldHVybiBmUy5oYXMoZSl8fHBTKGUpO2RlZmF1bHQ6cmV0dXJuITF9fWZ1bmN0aW9uIGhTKGUsdCl7aWYoZT09PXZvaWQgMClyZXR1cm47bGV0IG49W107Zm9yKGxldCByIG9mIGUpcj50JiZuLnB1c2goci10KTtyZXR1cm4gbn1mdW5jdGlvbiBnUyhlLHQsbj0xLzApe2lmKHQ8PTB8fG48PTB8fE51bWJlci5pc0Zpbml0ZShuKSYmZVt0LTFdPT09YOOAgGApcmV0dXJuIHQ7bGV0IHI9dCxpPW47Zm9yKDtyPGUubGVuZ3RoJiZlW3JdPT09YOOAgGAmJmk+MDspcisrLGktLTtyZXR1cm4gcn1mdW5jdGlvbiBfUyhlKXtsZXQgdD1bLi4uZV07Zm9yKGxldCBlPXQubGVuZ3RoLTE7ZT49MDstLWUpaWYodFtlXSE9PWDjgIBgKXJldHVybiBUdi50ZXN0KHRbZV0pO3JldHVybiExfWZ1bmN0aW9uIHZTKGUsdCxuLHI9MCxpPTEsYT0wLG89ITEscyxjLGw9MS8wKXtsZXQgdT1bLi4udF0sZD10PT5jPy4odCk/PygoKT0+e2xldCBuPTA7aWYobyl7aWYoIXMpdGhyb3cgRXJyb3IoYFZlcnRpY2FsIGdseXBoIG1lYXN1cmVtZW50IGNhcGFiaWxpdHkgaXMgcmVxdWlyZWQgZm9yIHZlcnRpY2FsIHRleHRgKTtuPXMubWVhc3VyZVJ1bklua0V4dHJhKHQpfXJldHVybiBxeChlLm1lYXN1cmVUZXh0KHQpLndpZHRoK24sdCxyLGksYSl9KSgpLGY9ZT0+e2xldCB0PWUscj1sO2lmKHI+MCl7Zm9yKDt0PjAmJnVbdC0xXT09PWDjgIBgOyl0LS07bGV0IG49ZS10O3QrPU1hdGgubWF4KDAsbi1yKX1yZXR1cm4gZCh1LnNsaWNlKDAsdCkuam9pbihgYCkpPD1ufSxwPTAsbT11Lmxlbmd0aDtmb3IoO3A8bTspe2xldCBlPXArbSsxPj4xO2YoZSk/cD1lOm09ZS0xfXJldHVybiB1LnNsaWNlKDAscCkuam9pbihgYCl9Y29uc3QgeVM9bmV3IFNldChbYGFyYCxgZmFgLGB1cmAsYGhlYCxgaXdgLGB5aWAsYGppYCxgcHNgLGBzZGAsYHVnYCxgZHZgLGBzeXJgLGBja2JgXSk7ZnVuY3Rpb24gYlMoZSx0KXtpZihlKXtsZXQgdD1lLnNwbGl0KGAtYClbMF0udG9Mb3dlckNhc2UoKTtpZih5Uy5oYXModCkpcmV0dXJuITB9cmV0dXJuIHR9ZnVuY3Rpb24geFMoZSl7bGV0IHQ9W10sbj1udWxsLHI9YGA7Zm9yKGxldCBpIG9mIGUpe2xldCBlPW9tKGkuY29kZVBvaW50QXQoMCkpO249PT1udWxsfHxlPT09bj8obj1lLHIrPWkpOih0LnB1c2goe3RleHQ6cixlYTpufSksbj1lLHI9aSl9cmV0dXJuIHIubGVuZ3RoPjAmJnQucHVzaCh7dGV4dDpyLGVhOm4/PyExfSksdH1mdW5jdGlvbiBTUyhlKXtsZXQgdD1lPT5lPj00OCYmZTw9NTcsbj1lPT5lPT09YC5gfHxlPT09YCxgfHxlPT09YDpgfHxlPT09YC9gfHxlPT09YFx4QTBgLHI9W10saT1gYCxhPW51bGw7Zm9yKGxldCBvPTA7bzxlLmxlbmd0aDtvKyspe2xldCBzPWVbb10sYz10KHMuY2hhckNvZGVBdCgwKSk7IWMmJmE9PT0hMCYmbihzKSYmdChlLmNoYXJDb2RlQXQobysxKSkmJihjPSEwKSxhPT09bnVsbHx8Yz09PWE/aSs9czooci5wdXNoKGkpLGk9cyksYT1jfXJldHVybiBpLmxlbmd0aD4wJiZyLnB1c2goaSksci5sZW5ndGg/cjpbZV19ZnVuY3Rpb24gQ1MoZSl7bGV0IHQ9W10sbj0wO2Zvcig7bjxlLmxlbmd0aDspe2xldCByPW47Zm9yKDtyPGUubGVuZ3RoJiZlW3JdIT09YCBgOylyKys7Zm9yKDtyPGUubGVuZ3RoJiZlW3JdPT09YCBgOylyKys7cj5uJiZ0LnB1c2goZS5zbGljZShuLHIpKSxuPXJ9cmV0dXJuIHQubGVuZ3RoP3Q6W2VdfWZ1bmN0aW9uIHdTKGUpe2xldCB0PWU/LmRlZmF1bHRUYWJTdG9wO3JldHVybiB0IT1udWxsJiZ0PjA/dDozNn1mdW5jdGlvbiBUUyhlKXtyZXR1cm4gZT09PWBjZW50ZXJgP2BjZW50ZXJgOmU9PT1gZGVjaW1hbGA/YGRlY2ltYWxgOmU9PT1gcmlnaHRgfHxlPT09YGVuZGA/YHRyYWlsaW5nYDpgbGVhZGluZ2B9ZnVuY3Rpb24gRVMoZSx0LG4scixpKXtsZXQgYT1lLmxlbmd0aCxvPWUubWFwKGU9PmUud2lkdGgpLHM9QXJyYXkoYSkuZmlsbCh2b2lkIDApLGM9KHQsbik9PntsZXQgcj0wLGk7Zm9yKGxldCBuPXQ7bjxhJiYhZVtuXS5pc1RhYjtuKyspaT09PXZvaWQgMCYmZVtuXS5kZWNpbWFsT2Zmc2V0IT09dm9pZCAwJiYoaT1yK2Vbbl0uZGVjaW1hbE9mZnNldCkscis9b1tuXTtyZXR1cm57dG90YWw6cixhbGlnbm1lbnQ6bj09PWBjZW50ZXJgP3IvMjpuPT09YHRyYWlsaW5nYD9yOm49PT1gZGVjaW1hbGA/aT09PXZvaWQgMD8wOnItaTowfX0sbD1uO2ZvcihsZXQgbj0wO248YTtuKyspe2lmKCFlW25dLmlzVGFiKXtsKz1vW25dO2NvbnRpbnVlfWxldCBhPUR2KGwsdCxpKTtpZighYSl7b1tuXT0wO2NvbnRpbnVlfWxldCB1PVRTKGEuYWxpZ25tZW50KSxkPWMobisxLHUpLGY9ZC50b3RhbCxwO3A9dT09PWBsZWFkaW5nYD9hLnBvczphLnBvcy1kLmFsaWdubWVudCxwK2Y+ciYmKHA9ci1mKSxwPGwmJihwPWwpLG9bbl09cC1sLHNbbl09YS5sZWFkZXIsbD1wfXJldHVybiBlLm1hcCgoZSx0KT0+KHt3aWR0aDpvW3RdLGxlYWRlcjpzW3RdfSkpfWZ1bmN0aW9uIERTKGUsdCxuKXtsZXQgcj1uZXcgTWFwO2ZvcihsZXQgdCBvZiBlKXtpZih0LmZpdFRleHRSZWdpb25JbmRleD09PXZvaWQgMCljb250aW51ZTtsZXQgZT1yLmdldCh0LmZpdFRleHRSZWdpb25JbmRleCk/P1tdO2UucHVzaCh0KSxyLnNldCh0LmZpdFRleHRSZWdpb25JbmRleCxlKX1mb3IobGV0IGUgb2Ygci52YWx1ZXMoKSl7bGV0IHI9ZS5maW5kKGU9PmUuZml0VGV4dFZhbCE9PXZvaWQgMCk7aWYoIXJ8fHIuZml0VGV4dFZhbD09PXZvaWQgMCljb250aW51ZTtsZXQgaT0wLGE9MDtmb3IobGV0IHQgb2YgZSlpKz1uKHQpKkt4KHQpLGErPVsuLi50LnRleHRdLmxlbmd0aDtsZXQgbz1Mdihbe2ZpdFRleHRWYWxUd2lwczpyLmZpdFRleHRWYWwsY2hhckNvdW50OmEsbmF0dXJhbFdpZHRoUHg6aX1dLHQpWzBdO28mJmUuZm9yRWFjaCgodCxuKT0+e3QuZml0VGV4dFBlckdhcFB4PW8ucGVyR2FwUHgsdC5maXRUZXh0VHJhaWxpbmdQYWRQeD1uPT09ZS5sZW5ndGgtMT9vLnRyYWlsaW5nUGFkUHg6dm9pZCAwLHQuZml0VGV4dFJlZ2lvblN0YXJ0PW49PT0wPyEwOnZvaWQgMCx0LmZpdFRleHRSZWdpb25FbmQ9bj09PWUubGVuZ3RoLTE/ITA6dm9pZCAwfSl9fWZ1bmN0aW9uIE9TKGUsdCl7bGV0IG49W10scj0oZSxuPTQwMCxyPWBub3JtYWxgKT0+e2lmKCFlKXJldHVybjtsZXQgaT1wZyhlKSxhPXQucmVzb2x2ZWRMb2NhbEZvbnRzO2lmKCFhKXJldHVybjtsZXQgbz1hW2Ake2l9OiR7bn06JHtyfWBdO2lmKG8pcmV0dXJuIG87bGV0IHM9YVtpXTtyZXR1cm4gbj09PTQwMCYmcj09PWBub3JtYWxgJiZzP3M6T2JqZWN0LnZhbHVlcyhhKS5maW5kKGU9PnBnKGUucmVxdWVzdGVkRmFtaWx5Pz9gYCk9PT1pJiYoZS53ZWlnaHQ/PzQwMCk9PT1uJiYoZS5zdHlsZT8/YG5vcm1hbGApPT09cil9LGk9bmV3IE1hcCxhPVtdO2ZvcihsZXRbdCxuXW9mIGUuZW50cmllcygpKXtpZihuLnR5cGUhPT1gdGV4dGApe2EucHVzaCh7Y2hhckNvdW50OjAsbmF0dXJhbFdpZHRoUHg6MH0pO2NvbnRpbnVlfWxldCBlPW4udGV4dC5zcGxpdChgCWApO2ZvcihsZXQgcj0wO3I8ZS5sZW5ndGg7cis9MSlpLnNldChgJHt0fToke3J9YCxhLmxlbmd0aCksYS5wdXNoKHtmaXRUZXh0VmFsVHdpcHM6bi5maXRUZXh0VmFsLGZpdFRleHRJZDpuLmZpdFRleHRJZCxjaGFyQ291bnQ6Wy4uLmVbcl1dLmxlbmd0aCxuYXR1cmFsV2lkdGhQeDowLGNoYXJTY2FsZTpuLmNoYXJTY2FsZX0pLHI8ZS5sZW5ndGgtMSYmYS5wdXNoKHtjaGFyQ291bnQ6MCxuYXR1cmFsV2lkdGhQeDowfSl9bGV0IG89bmV3IE1hcDtMdihhLDEpLmZvckVhY2goKGUsdCk9Pntmb3IobGV0IG49ZS5zdGFydDtuPGUuZW5kO24rPTEpby5zZXQobix0KX0pO2xldCBzPShlLGEscyxjLGwpPT57bGV0IHU9YSxkPXUudHlwb2dyYXBoeUlucHV0LGY9KGUsdCk9PmU/LnN0YXR1cz09PWB2YWxpZGAmJmUudmFsdWUhPT1udWxsP2UudmFsdWU6dCxwPWYoZD8udmVydGljYWxBbGlnbixzPz92b2lkIDApPz9udWxsLG09ZihkPy5wb3NpdGlvblB0LHUucG9zaXRpb24pLGg9ZD8uY2hhcmFjdGVyU3BhY2luZ1B0Pz91LmNoYXJTcGFjaW5nLGc9cWIoaCksXz1kPy5jaGFyYWN0ZXJTY2FsZT8/dS5jaGFyU2NhbGUsdj1kPy5rZXJuaW5nVGhyZXNob2xkUHQ/P3Uua2VybmluZyx5PWQ/LnNuYXBUb0dyaWQ/P3Uuc25hcFRvR3JpZCxiPSExLHg9dS5ydWJ5LFM9eD97dGV4dDp4LnRleHQsZm9udFNpemVQdDp4LmZvbnRTaXplUHQsLi4ueC5ocHNSYWlzZVB0PT1udWxsP3t9OntocHNSYWlzZVB0OnguaHBzUmFpc2VQdH19OnZvaWQgMCxDPXUucmV2aXNpb24sdz11LnJ0bD09PSEwPyEwOnZvaWQgMCxUPWw9PT12b2lkIDA/dm9pZCAwOmkuZ2V0KGAke2N9OiR7bH1gKSxFPVQ9PT12b2lkIDA/dm9pZCAwOm8uZ2V0KFQpLEQ9dS5oeXBlcmxpbms/e2tpbmQ6YGV4dGVybmFsYCx1cmw6dS5oeXBlcmxpbmt9OnUuaHlwZXJsaW5rQW5jaG9yP3traW5kOmBpbnRlcm5hbGAscmVmOnUuaHlwZXJsaW5rQW5jaG9yfTp2b2lkIDAsTz11LnJ0bD09PSEwfHx1LmNzPT09ITAsaz11LmZvbnRTaXplQ3M/P2EuZm9udFNpemUsQT11LmZvbnRGYW1pbHlDcz8/YS5mb250RmFtaWx5LGo9dS5mb250RmFtaWx5SGlnaEFuc2k/P2EuZm9udEZhbWlseSxNPXUuYm9sZENzPz8hMSxOPXUuaXRhbGljQ3M/PyExLFA9dS5mb250RmFtaWx5RWFzdEFzaWE/P2EuZm9udEZhbWlseSxGPShPfHwhIXUucnRsKSYmYlModS5sYW5nQmlkaSwhIXUucnRsKSxJPSEwLEw9ITEsUj0oZSxpLG8scyxjPSExLGw9ITEpPT57aWYodC5iYWxhbmNlU2luZ2xlQnl0ZURvdWJsZUJ5dGVXaWR0aCYmIWkmJmUuaW5jbHVkZXMoYOOAgGApJiZbLi4uZV0uc29tZShlPT5lIT09YOOAgGApKXtmb3IobGV0IHQgb2YgZS5zcGxpdCgvKFx1MzAwMCspL3UpLmZpbHRlcihCb29sZWFuKSlSKHQsaSxvLHZvaWQgMCxjLGwpO3JldHVybn1pZighYyYmZyYmRT09PXZvaWQgMCl7bGV0IG49WzAsLi4uTm0oZSksZS5sZW5ndGhdO2lmKG4uc2xpY2UoMCwtMSkubWFwKCh0LHIpPT5lLnNsaWNlKHQsbltyKzFdKSkuc29tZShlPT5tUyhlLHQuY2hhcmFjdGVyU3BhY2luZ0NvbnRyb2wpKSl7UihlLGksbyx2b2lkIDAsITAsbCk7cmV0dXJufX1sZXQgZD1pP006YS5ib2xkLGY9aT9OOmEuaXRhbGljLHg9ZD83MDA6NDAwLE89Zj9gaXRhbGljYDpgbm9ybWFsYCx6PU9iamVjdC5mcmVlemUoe3RleHQ6ZSxmb250U2l6ZVB0Omk/azphLmZvbnRTaXplLGZvbnRzOmw/e2FzY2lpOm51bGwsaGlnaEFuc2k6bnVsbCxlYXN0QXNpYTpudWxsLGNvbXBsZXhTY3JpcHQ6bnVsbH06dS5mb250U2xvdHM/LmRpcmVjdD8/e2FzY2lpOmEuZm9udEZhbWlseSxoaWdoQW5zaTpqLGVhc3RBc2lhOlAsY29tcGxleFNjcmlwdDpBfSx0aGVtZUZvbnRzOmw/dm9pZCAwOnUuZm9udFNsb3RzPy50aGVtZSx0aGVtZUZvbnRQcmVzZW5jZTpsP3ZvaWQgMDp1LmZvbnRTbG90cz8udGhlbWVQcmVzZW50LHdlaWdodDp4LHN0eWxlOk8sY29tcGxleFNjcmlwdDppLGZvbnRIaW50OnUuZm9udEhpbnQsZWFzdEFzaWFMYW5ndWFnZTp1LmxhbmdFYXN0QXNpYSxrZXJuaW5nOnY9PW51bGw/dm9pZCAwOihpP2s6YS5mb250U2l6ZSk+PXYsbWVhc3VyZTohMX0pLGVlPXM/e3NwYW5zOltzXX06dC5sYXlvdXRTZXJ2aWNlcz8udGV4dC5zaGFwZSh6KSxCPWMmJmc/KCgpPT57bGV0IG49WzAsLi4uTm0oZSksZS5sZW5ndGhdLHI9W107Zm9yKGxldCBpPTA7aTxuLmxlbmd0aC0xO2krPTEpe2xldCBhPW5baV0sbz1uW2krMV0scz1lLnNsaWNlKGEsbyk7aWYoIW1TKHMsdC5jaGFyYWN0ZXJTcGFjaW5nQ29udHJvbCkpY29udGludWU7bGV0IGM9dC5sYXlvdXRTZXJ2aWNlcz8udGV4dC5zaGFwZSh7Li4ueix0ZXh0OnMsbWVhc3VyZTohMCxjbHVzdGVyR2VvbWV0cnk6ITF9KSxsPShjPy5pbmtCb3VuZHMmJmMuaG9yaXpvbnRhbElua0JvdW5kc0FyZVRpZ2h0PT09ITA/KCgpPT57bGV0IGU9TWF0aC5tYXgoMCxNYXRoLm1pbihjLmFkdmFuY2VQdCxjLmFkdmFuY2VQdC1jLmlua0JvdW5kcy54TWF4UHQpKTtpZighZlMuaGFzKHMpKXJldHVybiBlO2xldCBuPWMuc3BhbnNbMF0/LmZvbnRSb3V0ZS5maW5nZXJwcmludCxyPXQubGF5b3V0U2VydmljZXM/LnRleHQuc2hhcGUoey4uLnosdGV4dDpg5LiAYCxmb250SGludDpgZWFzdEFzaWFgLG1lYXN1cmU6ITAsY2x1c3Rlckdlb21ldHJ5OiExfSksaT1yPy5zcGFuc1swXT8uZm9udFJvdXRlLmZpbmdlcnByaW50LGE9cj8uYWR2YW5jZVB0O2lmKCFufHxpIT09bnx8YT09PXZvaWQgMHx8IU51bWJlci5pc0Zpbml0ZShhKXx8YTw9MClyZXR1cm4gMDtsZXQgbz1LYih7cHVuY3R1YXRpb25BZHZhbmNlUHQ6Yy5hZHZhbmNlUHQscHVuY3R1YXRpb25JbmtFbmRQdDpjLmlua0JvdW5kcy54TWF4UHQsaWRlb2dyYXBoaWNDZWxsQWR2YW5jZVB0OmF9KTtyZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1pbihlLGMuYWR2YW5jZVB0LW8pKX0pKCk6MCkqKF8/PzEpO2w+MCYmci5wdXNoKHtlbmQ6byxhZGp1c3RtZW50UHQ6LWx9KX1yZXR1cm4gci5sZW5ndGg9PT0wP3ZvaWQgMDpPYmplY3QuZnJlZXplKHIubWFwKGU9Pk9iamVjdC5mcmVlemUoZSkpKX0pKCk6dm9pZCAwLFY9ZWU/LnNwYW5zLnNvbWUoZT0+ZS5zY3JpcHQ9PT1gY29tcGxleFNjcmlwdGAhPT1pKT8/ITE7aWYoZWUmJihlZS5zcGFucy5sZW5ndGg+MXx8Vikpe2ZvcihsZXQgZT0wO2U8ZWUuc3BhbnMubGVuZ3RoO2UrPTEpe2xldCBuPWVlLnNwYW5zW2VdLHI9bi5zY3JpcHQ9PT1gY29tcGxleFNjcmlwdGAsaT1yP0E6bi5zY3JpcHQ9PT1gZWFzdEFzaWFgP1A6bi5zY3JpcHQ9PT1gaGlnaEFuc2lgP2o6YS5mb250RmFtaWx5LG89ZyYmYyYmWy4uLm4udGV4dF0uc29tZShlPT5tUyhlLHQuY2hhcmFjdGVyU3BhY2luZ0NvbnRyb2wpKTtSKG4udGV4dCxyLGksbixvKX1yZXR1cm59bGV0IEg9ZWU/LnNwYW5zWzBdLFU9KGUsbik9PntpZighZSlyZXR1cm47bGV0IHI9T2JqZWN0LnZhbHVlcyh0LmxheW91dFNlcnZpY2VzPy50ZXh0LmxvY2FsTWV0cmljcz8/e30pLmZpbHRlcih0PT5wZyh0LmZhbWlseSk9PT1wZyhlKSYmKHQud2VpZ2h0Pz80MDApPT09eCYmKHQuc3R5bGU/P2Bub3JtYWxgKT09PU8pO3JldHVybiByLmZpbmQoZT0+biYmcGcoZS5yZXF1ZXN0ZWRGYW1pbHk/P2BgKT09PXBnKG4pKT8/clswXX0sdGU9SD9VKEguZm9udC5yZXNvbHZlZEZhbWlseSxILmZvbnQucmVxdWVzdGVkRmFtaWx5KTpyKG8seCxPKSxXPXQubGF5b3V0U2VydmljZXM/LnRleHQucmVzb2x2ZSh7Zm9udHM6ei5mb250cyx0aGVtZUZvbnRzOnoudGhlbWVGb250cyx0aGVtZUZvbnRQcmVzZW5jZTp6LnRoZW1lRm9udFByZXNlbmNlLHNsb3Q6YGVhc3RBc2lhYCx3ZWlnaHQ6eCxzdHlsZTpPfSksbmU9Vz9VKFcucmVzb2x2ZWRGYW1pbHksVy5yZXF1ZXN0ZWRGYW1pbHkpOnIoUCx4LE8pLEc9dGU/PyhvP3QucmVzb2x2ZWRMb2NhbEZvbnRzPy5bcGcobyldOnZvaWQgMCksSz1uZT8/KFA/dC5yZXNvbHZlZExvY2FsRm9udHM/LltwZyhQKV06dm9pZCAwKSxxPVc/LnJlc29sdmVkRmFtaWx5Pz9uZT8uZmFtaWx5Pz9QLEo9dC51c2VGZUxheW91dCYmKHUuZm9udEhpbnQ9PT1gZWFzdEFzaWFgfHwhIXE/LnRyaW0oKSksWT1IPy5zY3JpcHQ/P3M/LnNjcmlwdD8/KGk/YGNvbXBsZXhTY3JpcHRgOlR2LnRlc3QoZSk/YGVhc3RBc2lhYDpgYXNjaWlgKSxyZT10LmJhbGFuY2VTaW5nbGVCeXRlRG91YmxlQnl0ZVdpZHRoP0diKGUsWSk6dm9pZCAwO24ucHVzaCh7dGV4dDplLHNjcmlwdDpZLC4uLnJlPT09dm9pZCAwP3t9Ont3aWR0aEJhbGFuY2VHcmlkRGVsdGFGYWN0b3I6cmV9LC4uLko/e21ldHJpY0Vhc3RBc2lhbjohMH06e30sYm9sZDpkLGl0YWxpYzpmLHVuZGVybGluZTphLnVuZGVybGluZSx1bmRlcmxpbmVTdHlsZTp1LnVuZGVybGluZVN0eWxlLHVuZGVybGluZUNvbG9yOnUudW5kZXJsaW5lQ29sb3Isc3RyaWtldGhyb3VnaDphLnN0cmlrZXRocm91Z2gsZm9udFNpemU6aT9rOmEuZm9udFNpemUsY29sb3I6YS5jb2xvcixmb250RmFtaWx5Okg/LmZvbnQucmVzb2x2ZWRGYW1pbHk/P3RlPy5mYW1pbHk/P28sZm9udFJvdXRlOkg/LmZvbnRSb3V0ZSxyZXNvbHZlZExpbmVIZWlnaHRSYXRpbzpHPy5saW5lSGVpZ2h0UmF0aW8sdmVydEFsaWduOnAsbWVhc3VyZWRXaWR0aDowLHRleHRMYXlvdXRTZXJ2aWNlOnQubGF5b3V0U2VydmljZXM/LnRleHQsdGV4dFNoYXBlUmVxdWVzdDp6LGJyZWFrQmVmb3JlOkg/LmJyZWFrQmVmb3JlPz9zPy5icmVha0JlZm9yZT8/ITAsc21hbGxDYXBzOmIsam9pblByZXY6THx8cz8uYnJlYWtCZWZvcmU9PT0hMT8hMDp2b2lkIDAsZG91YmxlU3RyaWtldGhyb3VnaDphLmRvdWJsZVN0cmlrZXRocm91Z2g/PyExLGhpZ2hsaWdodDphLmhpZ2hsaWdodD8/bnVsbCxlbXBoYXNpc01hcms6YS5lbXBoYXNpc01hcmssYmFja2dyb3VuZDphLmJhY2tncm91bmQ/P251bGwsY29sb3JBdXRvOnUuY29sb3JBdXRvPz8hMSxib3JkZXI6dS5ib3JkZXI/P251bGwscnVieTpJP1M6dm9pZCAwLHJldmlzaW9uOkMscnRsOncsZGlnaXRzQXNBTjpGPyEwOnZvaWQgMCxlYUZsb29yRmFtaWx5OnEsZWFGbG9vclJvdXRlOlc/LnJvdXRlLHJlc29sdmVkRWFGbG9vckxpbmVIZWlnaHRSYXRpbzpLPy5saW5lSGVpZ2h0UmF0aW8sdGV4dEJveExpbmVGbG9vcjp1LnRleHRCb3hMaW5lRmxvb3IsdGV4dEJveFZlcnRpY2FsOnUudGV4dEJveFZlcnRpY2FsLGh5cGVybGluazpELHNuYXBUb0NoYXJhY3RlckdyaWQ6eSE9PSExLGNoYXJTcGFjaW5nOmgscHVuY3R1YXRpb25Db21wcmVzc2lvbnM6QixlYXN0QXNpYUxhbmd1YWdlOnUubGFuZ0Vhc3RBc2lhLGNoYXJTY2FsZTpfLGZpdFRleHRWYWw6RT09PXZvaWQgMD92b2lkIDA6dS5maXRUZXh0VmFsLGZpdFRleHRJZDpFPT09dm9pZCAwP3ZvaWQgMDp1LmZpdFRleHRJZCxmaXRUZXh0UmVnaW9uSW5kZXg6RSxmaXRUZXh0UnVuSW5kZXg6RT09PXZvaWQgMD92b2lkIDA6VCxwb3NpdGlvbjptLHBvc2l0aW9uRXh0ZW5kc0xpbmVCb3g6dC5wb3NpdGlvbkV4dGVuZHNMaW5lQm94IT09ITEsa2VybmluZzp2LHRhdGVDaHVZb2tvOnQudmVydGljYWxDSksmJnUuZWFzdEFzaWFuVmVydD09PSEwPyEwOnZvaWQgMCx0YXRlQ2h1WW9rb0NvbXByZXNzOnQudmVydGljYWxDSksmJnUuZWFzdEFzaWFuVmVydD09PSEwJiZ1LmVhc3RBc2lhblZlcnRDb21wcmVzcz09PSEwPyEwOnZvaWQgMCx2ZXJ0aWNhbFJ1bjp0LnZlcnRpY2FsQ0pLJiZ1LmVhc3RBc2lhblZlcnQhPT0hMD8hMDp2b2lkIDB9KSxJPSExLEw9ITF9LHo9KGUsdCk9PntsZXQgbj10PT09YGNzYCxyPXQ9PT1gY3NgP0E6dD09PWBlYWA/UDphLmZvbnRGYW1pbHk7aWYoZmUocikpe2ZvcihsZXQgdCBvZiBwZShlLHIpKVIodC50ZXh0LG4sdC5tYXBwZWQ/bnVsbDpyLHZvaWQgMCwhMSx0Lm1hcHBlZCk7cmV0dXJufVIoZSxuLHIpfSxlZT1lPT57aWYodC5sYXlvdXRTZXJ2aWNlcz8udGV4dCl7aWYoZmUoYS5mb250RmFtaWx5KSl7eihlLGBsYXRpbmApO3JldHVybn1SKGUsITEsYS5mb250RmFtaWx5KTtyZXR1cm59Zm9yKGxldCB0IG9mIHhTKGUpKXoodC50ZXh0LHQuZWE/YGVhYDpgbGF0aW5gKX0sQj1hLnNtYWxsQ2Fwcz9jUyhlKTpbe3RleHQ6ZSxyZWR1Y2VkOiExfV0sVj1gYDtmb3IobGV0IGUgb2YgQil7Yj1lLnJlZHVjZWQsTD1WLmxlbmd0aD4wJiYhL1xzJC8udGVzdChWKSxWPWUudGV4dDtsZXQgdD1hLmFsbENhcHN8fGEuc21hbGxDYXBzP2UudGV4dC50b1VwcGVyQ2FzZSgpOmUudGV4dDtmb3IobGV0IGUgb2YgQ1ModCkpaWYoTylpZihGKWZvcihsZXQgdCBvZiBTUyhlKSl6KHQsYGNzYCk7ZWxzZSB6KGUsYGNzYCk7ZWxzZSBlZShlKX19O2ZvcihsZXRbaSxhXW9mIGUuZW50cmllcygpKXtsZXQgbz1uLmxlbmd0aDtpZihhLnR5cGU9PT1gdGV4dGApe2xldCBlPWEscj1lLm5vdGVSZWY/ZS5ub3RlUmVmLmlkP3Qubm90ZU51bWJlcnM/LmdldChgJHtlLm5vdGVSZWYua2luZH06JHtlLm5vdGVSZWYuaWR9YCk6dC5ub3RlUmVmZXJlbmNlTnVtYmVyOnZvaWQgMDtpZihlLm5vdGVSZWYpe2xldCB0PXI9PW51bGw/ZS50ZXh0fHxgYDpTdHJpbmcocik7dC5sZW5ndGg+MCYmcyh0LGUsZS52ZXJ0QWxpZ24/P2BzdXBlcmAsaSwwKTtmb3IobGV0IGU9bztlPG4ubGVuZ3RoO2UrPTEpbltlXS5zb3VyY2VSdW5JbmRleD1pO2NvbnRpbnVlfWxldCBjPWUudGV4dC5zcGxpdChgCWApO2ZvcihsZXQgdD0wO3Q8Yy5sZW5ndGg7dCsrKWNbdF0ubGVuZ3RoPjAmJnMoY1t0XSxlLGUudmVydEFsaWduLGksdCksdDxjLmxlbmd0aC0xJiZuLnB1c2goe2lzVGFiOiEwLGZvbnRTaXplOmUuZm9udFNpemUsbWVhc3VyZWRXaWR0aDowLGJvbGQ6ZS5ib2xkLGl0YWxpYzplLml0YWxpYyxzb3VyY2VSdW5JbmRleDppfSl9ZWxzZSBpZihhLnR5cGU9PT1gaW1hZ2VgKXtsZXQgZT1hO24ucHVzaCh7aW1hZ2VQYXRoOmUuaW1hZ2VQYXRoLG1pbWVUeXBlOmUubWltZVR5cGUsd2lkdGhQdDplLndpZHRoUHQsaGVpZ2h0UHQ6ZS5oZWlnaHRQdCxyb3RhdGlvbjplLnJvdGF0aW9uLGZsaXBIOmUuZmxpcEgsZmxpcFY6ZS5mbGlwVixhbmNob3I6ZS5hbmNob3I/PyExLGFuY2hvclhQdDplLmFuY2hvclhQdD8/MCxhbmNob3JZUHQ6ZS5hbmNob3JZUHQ/PzAsYW5jaG9yWEZyb21NYXJnaW46ZS5hbmNob3JYRnJvbU1hcmdpbj8/ITEsYW5jaG9yWUZyb21QYXJhOmUuYW5jaG9yWUZyb21QYXJhPz8hMSxjb2xvclJlcGxhY2VGcm9tOmUuY29sb3JSZXBsYWNlRnJvbSxkdW90b25lOmUuZHVvdG9uZSxhbHBoYTplLmFscGhhLHNyY1JlY3Q6ZS5zcmNSZWN0Pz92b2lkIDAsbWVhc3VyZWRXaWR0aDowfSl9ZWxzZSBpZihhLnR5cGU9PT1gY2hhcnRgKXtsZXQgZT1hO24ucHVzaCh7aW1hZ2VQYXRoOmBgLG1pbWVUeXBlOmBgLHdpZHRoUHQ6ZS53aWR0aFB0LGhlaWdodFB0OmUuaGVpZ2h0UHQsYW5jaG9yOmUuYW5jaG9yPz8hMSxhbmNob3JYUHQ6ZS5hbmNob3JYUHQ/PzAsYW5jaG9yWVB0OmUuYW5jaG9yWVB0Pz8wLGFuY2hvclhGcm9tTWFyZ2luOmUuYW5jaG9yWEZyb21NYXJnaW4/PyExLGFuY2hvcllGcm9tUGFyYTplLmFuY2hvcllGcm9tUGFyYT8/ITEsY2hhcnQ6ITAsY2hhcnRSZXNvdXJjZUtleTplLnJlc291cmNlS2V5LG1lYXN1cmVkV2lkdGg6MH0pfWVsc2UgaWYoYS50eXBlPT09YHNoYXBlYCYmYS5pbmxpbmU9PT0hMCluLnB1c2goe2ltYWdlUGF0aDpgYCxtaW1lVHlwZTpgYCx3aWR0aFB0OmEud2lkdGhQdCxoZWlnaHRQdDphLmhlaWdodFB0LGFuY2hvcjohMSxhbmNob3JYUHQ6MCxhbmNob3JZUHQ6MCxhbmNob3JYRnJvbU1hcmdpbjohMSxhbmNob3JZRnJvbVBhcmE6ITEsaW5saW5lU2hhcGU6ITAsbWVhc3VyZWRXaWR0aDowfSk7ZWxzZSBpZihhLnR5cGU9PT1gdW5hdmFpbGFibGVEcmF3aW5nYCl7bGV0IGU9YGFuY2hvckFjcXVpc2l0aW9uSW5wdXRgaW4gYT9hLmFuY2hvckFjcXVpc2l0aW9uSW5wdXQ6dm9pZCAwO24ucHVzaCh7aW1hZ2VQYXRoOmBgLG1pbWVUeXBlOmBgLHdpZHRoUHQ6YS53aWR0aFB0LGhlaWdodFB0OmEuaGVpZ2h0UHQsYW5jaG9yOmUhPT12b2lkIDAsYW5jaG9yWFB0OjAsYW5jaG9yWVB0OjAsYW5jaG9yWEZyb21NYXJnaW46ITEsYW5jaG9yWUZyb21QYXJhOiExLHVuYXZhaWxhYmxlUmVzb3VyY2VLaW5kOmEucmVzb3VyY2VLaW5kLG1lYXN1cmVkV2lkdGg6MH0pfWVsc2UgaWYoYS50eXBlPT09YGJyZWFrYCl7aWYoYS5icmVha1R5cGU9PT1gbGluZWApe2xldCB0PWxTKGUsZS5pbmRleE9mKGEpKTtuLnB1c2goe2xpbmVCcmVhazohMCxmb250U2l6ZTp0LG1lYXN1cmVkV2lkdGg6MH0pfX1lbHNlIGlmKGEudHlwZT09PWBmaWVsZGApe2xldCBlPWEsbj11UyhlLHQpO24mJnMobixlLGUudmVydEFsaWduLGkpfWVsc2UgaWYoYS50eXBlPT09YG1hdGhgKXtsZXQgcj1hLmZvbnRTaXplfHxsUyhlLGUuaW5kZXhPZihhKSksaT1gcmVzb3VyY2VLZXlgaW4gYT9hLnJlc291cmNlS2V5OnZvaWQgMDtpZih0LmxheW91dFNlcnZpY2VzJiYhaSl0aHJvdyBFcnJvcihgU2VydmljZS1iYWNrZWQgbWF0aCBsYXlvdXQgcmVxdWlyZXMgYSBub3JtYWxpemVkIHN0cnVjdHVyYWwgcmVzb3VyY2Uga2V5YCk7bGV0IG89aT90LmxheW91dFNlcnZpY2VzPy5tYXRoLnJlc29sdmUoaSk6dm9pZCAwO24ucHVzaCh7bWF0aDohMCxtYXRoUmVzb3VyY2VLZXk6aT8/YGAsbWF0aE1ldGFkYXRhOm8sZGlzcGxheTphLmRpc3BsYXksZm9udFNpemU6cixjb2xvcjpudWxsLGZhbGxiYWNrVGV4dDpgZmFsbGJhY2tUZXh0YGluIGE/YS5mYWxsYmFja1RleHQ6a2IoYS5ub2RlcyksbWVhc3VyZWRXaWR0aDowLG1hdGhBc2NlbnQ6MCxtYXRoRGVzY2VudDowLGpjOmEuamN9KX1lbHNlIGlmKGEudHlwZT09PWBwdGFiYCluLnB1c2goe2lzVGFiOiEwLGZvbnRTaXplOmEuZm9udFNpemV8fGxTKGUsZS5pbmRleE9mKGEpKSxtZWFzdXJlZFdpZHRoOjAsbGVhZGVyOmEubGVhZGVyLHB0YWI6e2FsaWdubWVudDphLmFsaWdubWVudCxyZWxhdGl2ZVRvOmEucmVsYXRpdmVUb319KTtlbHNlIGlmKGEudHlwZT09PWBhbmNob3JIb3N0YCl7bGV0IGU9YS5mb250RmFtaWx5RWFzdEFzaWEhPW51bGwsaT1hLmJvbGQ/PyExLG89YS5pdGFsaWM/PyExLHM9YS5mb250RmFtaWx5RWFzdEFzaWE/P2EuZm9udEZhbWlseT8/bnVsbCxjPWk/NzAwOjQwMCxsPW8/YGl0YWxpY2A6YG5vcm1hbGAsdT1yKHMsYyxsKSxkPXIoYS5mb250RmFtaWx5RWFzdEFzaWE/P251bGwsYyxsKSxmPXU/PyhzP3QucmVzb2x2ZWRMb2NhbEZvbnRzPy5bcGcocyldOnZvaWQgMCkscD1kPz8oYS5mb250RmFtaWx5RWFzdEFzaWE/dC5yZXNvbHZlZExvY2FsRm9udHM/LltwZyhhLmZvbnRGYW1pbHlFYXN0QXNpYSldOnZvaWQgMCk7bi5wdXNoKHt0ZXh0OmBgLG1ldHJpY09ubHk6ITAsLi4uZT97bWV0cmljRWFzdEFzaWFuOiEwfTp7fSxib2xkOmksaXRhbGljOm8sdW5kZXJsaW5lOiExLHN0cmlrZXRocm91Z2g6ITEsZm9udFNpemU6YS5mb250U2l6ZSxjb2xvcjpudWxsLGZvbnRGYW1pbHk6dT8uZmFtaWx5Pz9zLHJlc29sdmVkTGluZUhlaWdodFJhdGlvOmY/LmxpbmVIZWlnaHRSYXRpbyx2ZXJ0QWxpZ246bnVsbCxtZWFzdXJlZFdpZHRoOjAsZWFGbG9vckZhbWlseTpkPy5mYW1pbHk/P2EuZm9udEZhbWlseUVhc3RBc2lhPz9udWxsLHJlc29sdmVkRWFGbG9vckxpbmVIZWlnaHRSYXRpbzpwPy5saW5lSGVpZ2h0UmF0aW8sc25hcFRvQ2hhcmFjdGVyR3JpZDohMX0pfWZvcihsZXQgZT1vO2U8bi5sZW5ndGg7ZSs9MSluW2VdLnNvdXJjZVJ1bkluZGV4PWl9aWYodC5iYWxhbmNlU2luZ2xlQnl0ZURvdWJsZUJ5dGVXaWR0aCl7bGV0IGU9bmV3IE1hcCx0PXQ9PntsZXQgbj10LnRleHRMYXlvdXRTZXJ2aWNlLHI9dC50ZXh0U2hhcGVSZXF1ZXN0O2lmKCFufHwhcilyZXR1cm47bGV0IGk9d3YodCwxKSxhPVtuLmZpbmdlcnByaW50LHQuZm9udFJvdXRlPy5maW5nZXJwcmludD8/YGltcGxpY2l0LWxhdGluYCx0LmVhRmxvb3JSb3V0ZT8uZmluZ2VycHJpbnQ/P2BpbXBsaWNpdC1lYXN0LWFzaWFgLGksdC5ib2xkPzcwMDo0MDAsdC5pdGFsaWM/YGl0YWxpY2A6YG5vcm1hbGAsdC5rZXJuaW5nPz9gYXV0b2BdLmpvaW4oYHxgKSxvPWUuZ2V0KGEpO2lmKG8hPT12b2lkIDApcmV0dXJuIG87bGV0IHM9bi5zaGFwZSh7Li4ucix0ZXh0OmAgYCxmb250U2l6ZVB0OmksbWVhc3VyZTohMCxjbHVzdGVyR2VvbWV0cnk6ITF9KS5hZHZhbmNlUHQsYz1uLnNoYXBlKHsuLi5yLHRleHQ6YOS4gGAsZm9udFNpemVQdDppLGZvbnRIaW50OmBlYXN0QXNpYWAsbWVhc3VyZTohMCxjbHVzdGVyR2VvbWV0cnk6ITF9KS5hZHZhbmNlUHQ7aWYoIU51bWJlci5pc0Zpbml0ZShzKXx8IU51bWJlci5pc0Zpbml0ZShjKXx8czwwfHxjPD0wKXJldHVybjtsZXQgbD1jLzItcztyZXR1cm4gZS5zZXQoYSxsKSxsfSxyPVtdLGk9MCxhPSgpPT57aWYoSGIoaSkpZm9yKGxldCBlIG9mIHIpe2Uud2lkdGhCYWxhbmNlU3BhY2VTZXF1ZW5jZT0hMDtsZXQgbj10KGUpO24hPT12b2lkIDAmJihlLndpZHRoQmFsYW5jZVNwYWNlQWRqdXN0bWVudFB0PW4pfXI9W10saT0wfTtmb3IobGV0IGUgb2Ygbil7aWYoIShgdGV4dGBpbiBlKXx8ZS5zY3JpcHQ9PT1gY29tcGxleFNjcmlwdGApe2EoKTtjb250aW51ZX1sZXQgdD1lLnRleHQubGVuZ3RoLWUudGV4dC5yZXBsYWNlKC8gKyQvdSxgYCkubGVuZ3RoO3Q+MCYmdD09PWUudGV4dC5sZW5ndGh8fGEoKSx0PjA/KHIucHVzaChlKSxpKz10KTphKCl9YSgpfWZvcihsZXQgZT0xO2U8bi5sZW5ndGg7ZSsrKXtsZXQgdD1uW2VdO2lmKCEoYHRleHRgaW4gdCl8fHQuam9pblByZXYpY29udGludWU7bGV0IHI9dC50ZXh0LmNvZGVQb2ludEF0KDApO2lmKHI9PT12b2lkIDB8fCFybS5saW5lU3RhcnRGb3JiaWRkZW4uaGFzKHIpKWNvbnRpbnVlO2xldCBpPW5bZS0xXTshKGB0ZXh0YGluIGkpfHwvXHMkLy50ZXN0KGkudGV4dCl8fCh0LmpvaW5QcmV2PSEwKX1mb3IobGV0IGU9MTtlPG4ubGVuZ3RoO2UrKyl7bGV0IHQ9bltlXTtpZighKGB0ZXh0YGluIHQpfHx0LmpvaW5QcmV2fHx0LnRleHRbMF0hPT1gIGAmJnQudGV4dFswXSE9PWDjgIBgKWNvbnRpbnVlO2xldCByPW5bZS0xXTtpZighKGB0ZXh0YGluIHIpKWNvbnRpbnVlO2xldCBpPXQuc291cmNlUnVuSW5kZXg9PT1yLnNvdXJjZVJ1bkluZGV4LGE9SmIoci50ZXh0LHQudGV4dCk7IWkmJiFhfHwodC5qb2luUHJldj0hMCl9Zm9yKGxldCBlPTE7ZTxuLmxlbmd0aDtlKyspe2xldCB0PW5bZV07aWYoIShgdGV4dGBpbiB0KXx8dC5qb2luUHJldnx8dC50ZXh0Lmxlbmd0aD09PTApY29udGludWU7bGV0IHI9bltlLTFdO2lmKCEoYHRleHRgaW4gcil8fHIudGV4dC5sZW5ndGg9PT0wfHwvXHMkL3UudGVzdChyLnRleHQpfHwvXlxzL3UudGVzdCh0LnRleHQpKWNvbnRpbnVlO2xldCBpPVsuLi5yLnRleHRdLmF0KC0xKSxhPVsuLi50LnRleHRdWzBdLG89aT8uY29kZVBvaW50QXQoMCkscz1hPy5jb2RlUG9pbnRBdCgwKTtvPT09dm9pZCAwfHxzPT09dm9pZCAwfHxvPT09ODIwM3x8cz09PTgyMDN8fHltKHIudGV4dCl8fHltKHQudGV4dCl8fGRTKHIudGV4dCl8fGRTKHQudGV4dCl8fG1tKG8scykmJih0LmpvaW5QcmV2PSEwKX1sZXQgYz1uZXcgU2V0O2ZvcihsZXQgZSBvZiBuKSEoYHRleHRgaW4gZSl8fGUuZml0VGV4dFJlZ2lvbkluZGV4PT09dm9pZCAwfHwoYy5oYXMoZS5maXRUZXh0UmVnaW9uSW5kZXgpP2Uuam9pblByZXY9ITA6KGUuZml0VGV4dFJlZ2lvblN0YXJ0PSEwLGMuYWRkKGUuZml0VGV4dFJlZ2lvbkluZGV4KSkpO3JldHVybiBHeChuKSxufWZ1bmN0aW9uIGtTKGUsdCxuLHIsaSxhPVtdLG8scz17fSxjPTAsbD1ybSx1PXZvaWQgMCxkPTM2LGY9bixwPSExLG09ITEsaD0hMSxnLF89YGJvdW5kZWRgLHYseT0hMSxiKXtpZihiPT09dm9pZCAwKXtsZXQgYj0oYix4KT0+a1MoZSxQYih0KSxuLHIsaSxhLG8scyxjLGwsdSxkLGYscCxtLGgsZyxfLHYseSx7cHJvYmVIZWlnaHRzOmIscHJlcGFyZWRGbG9hdFdyYXA6eH0pO2lmKCFvfHxfPT09YGludHJpbnNpY2ApcmV0dXJuIGIobnVsbCk7bGV0IHg9by5saW5lV2luZG93P3ZvaWQgMDpzYihvLmZsb2F0cyk7cmV0dXJuIEliKGU9PmIoZSx4KSxlPT5vLmxpbmVCb3hIKGUuYXNjZW50LGUuZGVzY2VudCxlLmhhc1J1YnksZS5pbnRlbmRlZFNpbmdsZSxlLmVhc3RBc2lhbixlLmdyaWRDb3VudFNpbmdsZSkpfWxldHtwcm9iZUhlaWdodHM6eCxwcmVwYXJlZEZsb2F0V3JhcDpTfT1iLEM9W10sdz1bXSxUPTAsRT11Py50eXBlPT09YHNuYXBUb0NoYXJzYCYmdS5jaGFyYWN0ZXJQaXRjaFB0IT1udWxsJiZ1LmNoYXJhY3RlclBpdGNoUHQ+MD91LmNoYXJhY3RlclBpdGNoUHQqaTpudWxsLEQ9bnVsbCxPPTAsaz0wLEE9MCxqPTAsTT1uZXcgU2V0LE49MCxQPTAsRj0wLEk9MCxMPTAsUj0wLHo9MCxlZT0wLEI9ITEsVj0hMCxIPW4sVT0wLHRlPW8/LnN0YXJ0UGFnZVk/PzAsVz0oKT0+ankoaSksbmU9dC5sZW5ndGg+MCYmdC5ldmVyeShlPT5gdGV4dGBpbiBlJiZlLm1ldHJpY09ubHk9PT0hMHx8YGltYWdlUGF0aGBpbiBlJiYhIWUuYW5jaG9yKSxHPShlPTApPT57aWYoRD1udWxsLGo9MCxNLmNsZWFyKCksVT0wLEg9biwhbylyZXR1cm47bGV0IHQ9eD8uW0MubGVuZ3RoXTtpZih0PT09dm9pZCAwKXJldHVybjtsZXQgcj17eExlZnRQdDpvLnJlZmVyZW5jZVhQdD8/by5wYXJhWCx4UmlnaHRQdDooby5yZWZlcmVuY2VYUHQ/P28ucGFyYVgpKyhvLnJlZmVyZW5jZVdpZHRoUHQ/P24pLHJlYWRpbmdEaXJlY3Rpb246by5yZWFkaW5nRGlyZWN0aW9uPz8ocD9gcnRsYDpgbHRyYCl9O2lmKG8ubGluZVdpbmRvdyl7bGV0IHI9by5saW5lV2luZG93KHt0b3BZUHQ6dGUsbWluaW11bVN0YXJ0V2lkdGhQdDoxLHNxdWFyZU1pbmltdW1TdGFydFdpZHRoUHQ6ZSxwcm9iZUhlaWdodFB0OnQscGFyYWdyYXBoWFB0Om8ucGFyYVgsbWF4aW11bVdpZHRoUHQ6bixjb2x1bW5YUHQ6by5jb2x1bW5YUHQsY29sdW1uV2lkdGhQdDpvLmNvbHVtbldpZHRoUHR9KTt0ZT1yLnRvcFlQdCxVPXIueE9mZnNldFB0LEg9ci5tYXhpbXVtV2lkdGhQdH1lbHNle2xldCBpPVRiKHRlLDEsdCxvLnBhcmFYLG4sUz8/c2Ioby5mbG9hdHMpLG8uY29sdW1uWFB0LG8uY29sdW1uWFB0K28uY29sdW1uV2lkdGhQdCxyLGUpO3RlPWkudG9wWSxVPWkueE9mZnNldCxIPWkubWF4V2lkdGh9fSxLPSgpPT5fPT09YGludHJpbnNpY2A/MS8wOkgtKFY/cjowKSxxPXA/YS5tYXAoZT0+KHtwb3M6ZS5wb3MqaSxhbGlnbm1lbnQ6ZS5hbGlnbm1lbnQsbGVhZGVyOmUubGVhZGVyfSkpOltdLEo9ZCppLFk9KCk9PntpZighcHx8IXcuc29tZShlPT5gaXNUYWJgaW4gZSkpcmV0dXJuO2xldCBlPXcubWFwKGU9Pih7aXNUYWI6YGlzVGFiYGluIGUsd2lkdGg6ZS5tZWFzdXJlZFdpZHRofSkpO2ZvcihsZXQgdD0wO3Q8dy5sZW5ndGg7dCs9MSl7aWYoIShgaXNUYWJgaW4gd1t0XSkpY29udGludWU7bGV0IG49dCsxO2Zvcig7bjx3Lmxlbmd0aCYmIShgaXNUYWJgaW4gd1tuXSk7KW4rPTE7bGV0IHI9UGUody5zbGljZSh0KzEsbikpO2lmKCFyKWNvbnRpbnVlO2xldCBpPXQrMStyLnNlZ21lbnRJbmRleCxhPXdbaV07YHRleHRgaW4gYSYmKGVbaV0uZGVjaW1hbE9mZnNldD1BZShhLGEudGV4dC5zbGljZSgwLHIuY2hhck9mZnNldCkpKX1sZXQgdD1FUyhlLHEsZi0oVStIKSsoVj9yOjApLGYrYyxKKSxuPTA7Zm9yKGxldCBlPTA7ZTx3Lmxlbmd0aDtlKyspe2xldCByPXdbZV07YGlzVGFiYGluIHImJihuKz10W2VdLndpZHRoLXIubWVhc3VyZWRXaWR0aCxyLm1lYXN1cmVkV2lkdGg9dFtlXS53aWR0aCxyLmxlYWRlcj10W2VdLmxlYWRlcil9VCs9bn0scmU9ITEsaWU9ITEsYWU9ITEsb2U9KGUsdD0hMSxuKT0+e1koKTtsZXQgcixhPSExO2ZvcihsZXQgZSBvZiB3KXtpZihgaXNUYWJgaW4gZSljb250aW51ZTtsZXQgdD1gdGV4dGBpbiBlP2UucG9zaXRpb24/PzA6MDtpZihgdGV4dGBpbiBlJiZlLnBvc2l0aW9uRXh0ZW5kc0xpbmVCb3g9PT0hMSl7cj0wLGE9ITA7YnJlYWt9aWYoIWEpcj10LGE9ITA7ZWxzZSBpZihyIT09dCl7cj0wO2JyZWFrfX1sZXQgcz1hP3I/PzA6MDtpZihzIT09MClmb3IobGV0IGUgb2YgdylgdGV4dGBpbiBlJiYoZS5saW5lUmVsYXRpdmVQb3NpdGlvbj10eChlLnBvc2l0aW9uPz8wLHMpKTtsZXQgYz1lPT09dm9pZCAwP058fDEwOk1hdGgubWF4KE4sZSksbD1QPjB8fEY+MCx1PWw/UDpjKmkqLjgsZD1sP0Y6YyppKi4yLGY9Qj9SOnUscD1CP3o6ZCxtPUI/ZWU6SSxoPUx8fChpZT9lUyhJLGMqaSk6dStkKTtDLnB1c2goe3NlZ21lbnRzOncsaGVpZ2h0OmMsYXNjZW50OnUsZGVzY2VudDpkLHZpc2libGVBc2NlbnQ6Zix2aXNpYmxlRGVzY2VudDpwLHZpc2libGVJbnRlbmRlZFNpbmdsZTptLGludGVuZGVkU2luZ2xlOkksZ3JpZENvdW50U2luZ2xlOmgseE9mZnNldDpVLGF2YWlsV2lkdGg6SCx0b3BZOm8/dGU6dm9pZCAwLGhhc1J1Ynk6cmUsZWFzdEFzaWFuOmllLGVuZHNXaXRoQnJlYWs6dCxjb25zdW1lZEVuZDpuPz9YWzBdPy5zcmM/P2JlfSksbyYmKHRlKz1vLmxpbmVCb3hIKHUsZCxyZSxJLGllLGgpKSx3PVtdLFQ9MCxPPTAsaz0wLEE9MCxqPTAsTS5jbGVhcigpLE49MCxQPTAsRj0wLEk9MCxMPTAsUj0wLHo9MCxlZT0wLEI9ITEscmU9ITEsaWU9ITEsYWU9ITEsVj0hMSxHKFcoKSl9LHNlPShlLHQ9ZS50ZXh0KT0+eGcoZS5mb250RmFtaWx5KSp3dihlLGkpKkt4KGUpKlsuLi50XS5sZW5ndGgsY2U9ZT0+e2xldCB0PWUuYm9sZD83MDA6NDAwLG49ZS5pdGFsaWM/YGl0YWxpY2A6YG5vcm1hbGA7cmV0dXJuIGUuZm9udFJvdXRlP2Ake2UuZm9udFJvdXRlLmZpbmdlcnByaW50fXwke3R9fCR7bn1gOmBpbXBsaWNpdHwke0R4KGUuYm9sZCxlLml0YWxpYywxLGUuZm9udEZhbWlseSxzKX1gfSxsZT0oZSx0LG49dC50ZXh0KT0+ey9cUy8udGVzdChuKSYmZS5hZGQoY2UodCkpfSx1ZT1lPT57bGV0IHQ9TS5zaXplO2ZvcihsZXQgbiBvZiBlKU0uaGFzKG4pfHwodCs9MSk7cmV0dXJuIHR9LGRlPShlLHQpPT57bGV0IG49WHgoZSx1KTtyZXR1cm4hbnx8RT09bnVsbD90Om49PT1gZWFzdEFzaWFgP1p4KHQsbixFLGtlKGUpKTpEPy5raW5kPT09bj9aeChELm5hdHVyYWxXaWR0aFB4K3QsbixFKS1ELmFsbG9jYXRlZFdpZHRoUHg6WngodCxuLEUpfSxmZT0oZSx0LG4scixhLG89MCk9PntsZXQgcz10O2lmKGB0ZXh0YGluIGUpe2xldCBuPVh4KGUsdSkscj1lLnNuYXBHcmlkTmF0dXJhbFdpZHRoUHg/P3Q7aWYobiYmRSE9bnVsbClpZihlLnNuYXBHcmlkQ2xhc3M9bixlLnNuYXBHcmlkTmF0dXJhbFdpZHRoUHg9cixlLnNuYXBHcmlkQ2VsbFBpdGNoUHg9RSxuPT09YGVhc3RBc2lhYClzPVp4KHIsbixFLGtlKGUpKSxlLnNuYXBHcmlkTGVhZGluZ1BhZFB4PTAsZS5zbmFwR3JpZFRyYWlsaW5nUGFkUHg9cy1yLGUubWVhc3VyZWRXaWR0aD1zLEQ9bnVsbDtlbHNlIGlmKEQ/LmtpbmQ9PT1uKXtsZXQgdD1ELmZpcnN0LnNuYXBHcmlkTGVhZGluZ1BhZFB4Pz8wLGk9RC5sYXN0LnNuYXBHcmlkVHJhaWxpbmdQYWRQeD8/MCxhPUQubmF0dXJhbFdpZHRoUHgrcixvPVp4KGEsbixFKSxjPW8tYSxsPW49PT1gbGF0aW5gP2MvMjowLHU9Yy1sO0QuZmlyc3QubWVhc3VyZWRXaWR0aC09dCxELmZpcnN0LnNuYXBHcmlkTGVhZGluZ1BhZFB4PWwsRC5maXJzdC5tZWFzdXJlZFdpZHRoKz1sLEQubGFzdC5tZWFzdXJlZFdpZHRoLT1pLGUuc25hcEdyaWRMZWFkaW5nUGFkUHg9MCxlLnNuYXBHcmlkVHJhaWxpbmdQYWRQeD11LGUubWVhc3VyZWRXaWR0aD1yK3Uscz1vLUQuYWxsb2NhdGVkV2lkdGhQeCxEPXtraW5kOm4sZmlyc3Q6RC5maXJzdCxsYXN0OmUsbmF0dXJhbFdpZHRoUHg6YSxhbGxvY2F0ZWRXaWR0aFB4Om99fWVsc2V7bGV0IHQ9WngocixuLEUpLGk9dC1yLGE9bj09PWBsYXRpbmA/aS8yOjAsbz1pLWE7ZS5zbmFwR3JpZExlYWRpbmdQYWRQeD1hLGUuc25hcEdyaWRUcmFpbGluZ1BhZFB4PW8sZS5tZWFzdXJlZFdpZHRoPXQscz10LEQ9e2tpbmQ6bixmaXJzdDplLGxhc3Q6ZSxuYXR1cmFsV2lkdGhQeDpyLGFsbG9jYXRlZFdpZHRoUHg6dH19ZWxzZSBlLnNuYXBHcmlkQ2xhc3M9dm9pZCAwLGUuc25hcEdyaWRMZWFkaW5nUGFkUHg9dm9pZCAwLGUuc25hcEdyaWRUcmFpbGluZ1BhZFB4PXZvaWQgMCxlLnNuYXBHcmlkQ2VsbFBpdGNoUHg9dm9pZCAwLGUubWVhc3VyZWRXaWR0aD10LEQ9bnVsbH1lbHNlIEQ9bnVsbDtpZih3LnB1c2goZSksVCs9cyxgdGV4dGBpbiBlKXtsZXQgdD1lLnRleHQubGVuZ3RoLWUudGV4dC5yZXBsYWNlKC8gKyQvLGBgKS5sZW5ndGgsbj10PjAmJnQ9PT1lLnRleHQubGVuZ3RoO2lmKG4mJms+MClPLT1BLGsrPXQsQT0wO2Vsc2V7az0wLEE9MDtsZXQgZT13W3cubGVuZ3RoLTJdLHI9ZSE9PXZvaWQgMCYmYHRleHRgaW4gZSYmL1xTJC91LnRlc3QoZS50ZXh0KTsobiYmcnx8dD4wJiYhbikmJihrPXQsQT10PT09MT9vOjAsTys9QSl9ais9c2UoZSksbGUoTSxlKX1uPk4mJihOPW4pLHI+UCYmKFA9ciksYT5GJiYoRj1hKTtsZXQgYz0hKGB0ZXh0YGluIGUpfHxlLm1ldHJpY09ubHkhPT0hMDtjJiYoQj0hMCxyPlImJihSPXIpLGE+eiYmKHo9YSkpO2xldCBsPTA7aWYoIShgaXNUYWJgaW4gZSkmJiEoYGltYWdlUGF0aGBpbiBlKSYmIShgbWF0aGBpbiBlKSl7bGV0IHQ9ZTt0LnJ1YnkmJihyZT0hMCksdC5zZWFCcmVha3MhPT12b2lkIDAmJnhtKHQudGV4dCkmJihhZT0hMCk7bGV0IG49dC5tZXRyaWNFYXN0QXNpYW49PT0hMHx8VHYudGVzdCh0LnRleHQpOyFpZSYmbiYmKGllPSEwKTtsZXQgcj10LnNtYWxsQ2FwcyYmIXQudmVydEFsaWduP3QuZm9udFNpemUqaTpwZSh0KSxhPW4mJiF0LnJ1Ynksbz10LnRleHRCb3hMaW5lRmxvb3ImJnQucnVieT8wOk1hdGgubWF4KE94KHQscixhKSx0LnRleHRCb3hMaW5lRmxvb3J8fHQubWV0cmljRWFzdEFzaWFuPT09ITA/a3godCxyLGEpOjApO28+SSYmKEk9byksYyYmbz5lZSYmKGVlPW8pLGEmJihsPWVTKG8scikpfWVsc2UgYGlzVGFiYGluIGV8fChsPXIrYSk7bD5MJiYoTD1sKX0scGU9ZT0+d3YoZSxpKSxtZT1udWxsLGhlPXQ9Pnt0IT09bWUmJihlLmZvbnQ9dCxtZT10KX0sZ2U9dD0+e2lmKHQua2VybmluZz09bnVsbClyZXR1cm4gbnVsbDtsZXQgbj1lLmZvbnRLZXJuaW5nO3JldHVybiBlLmZvbnRLZXJuaW5nPXQuZm9udFNpemU+PXQua2VybmluZz9gbm9ybWFsYDpgbm9uZWAsbn0sX2U9dD0+e3QhPW51bGwmJihlLmZvbnRLZXJuaW5nPXQpfSx2ZT0odCxuPSExKT0+e2lmKHQudGV4dExheW91dFNlcnZpY2UmJnQudGV4dFNoYXBlUmVxdWVzdCl7bGV0IGU9dC50ZXh0TGF5b3V0U2VydmljZS5zaGFwZSh7Li4udC50ZXh0U2hhcGVSZXF1ZXN0LHRleHQ6dC50ZXh0LGZvbnRTaXplUHQ6cGUodCksbWVhc3VyZTohMCxjbHVzdGVyR2VvbWV0cnk6bn0pO3JldHVybiBuJiYodC5zaGFwZWRDbHVzdGVycz1lLmNsdXN0ZXJzLHQuc2VsZWN0ZWRGYWNlRm9udEJveD17YXNjZW50UHQ6ZS5hc2NlbnRQdCxkZXNjZW50UHQ6ZS5kZXNjZW50UHR9LHQuc2VsZWN0ZWRGYWNlSW5rQm91bmRzPWUuaW5rQm91bmRzPz97eE1pblB0OjAseE1heFB0OmUuYWR2YW5jZVB0LGFzY2VudFB0OmUuYXNjZW50UHQsZGVzY2VudFB0OmUuZGVzY2VudFB0fSkse3dpZHRoOmUuYWR2YW5jZVB0LGFjdHVhbEJvdW5kaW5nQm94QXNjZW50OmUuYXNjZW50UHQsYWN0dWFsQm91bmRpbmdCb3hEZXNjZW50OmUuZGVzY2VudFB0LGZvbnRCb3VuZGluZ0JveEFzY2VudDplLmFzY2VudFB0LGZvbnRCb3VuZGluZ0JveERlc2NlbnQ6ZS5kZXNjZW50UHR9fWhlKER4KHQuYm9sZCx0Lml0YWxpYyxwZSh0KSx0LmZvbnRGYW1pbHkscyx0LmZvbnRSb3V0ZSkpO2xldCByPWdlKHQpLGk9ZS5tZWFzdXJlVGV4dCh0LnRleHQpO3JldHVybiBfZShyKSxpfSx5ZT0oZSx0KT0+e2lmKCFlLnZlcnRpY2FsUnVuKXJldHVybiAwO2lmKCF2KXRocm93IEVycm9yKGBWZXJ0aWNhbCBnbHlwaCBtZWFzdXJlbWVudCBjYXBhYmlsaXR5IGlzIHJlcXVpcmVkIGZvciB2ZXJ0aWNhbCB0ZXh0YCk7aGUoRHgoZS5ib2xkLGUuaXRhbGljLHBlKGUpLGUuZm9udEZhbWlseSxzLGUuZm9udFJvdXRlKSk7bGV0IG49Z2UoZSk7dHJ5e3JldHVybiB2Lm1lYXN1cmVSdW5JbmtFeHRyYSh0KX1maW5hbGx5e19lKG4pfX0sYmU9e3NlZ0luZGV4OnQubGVuZ3RoLGNoYXJPZmZzZXQ6MH0seGU9dC5tYXAoKGUsdCk9PihlLnNyYz17c2VnSW5kZXg6dCxjaGFyT2Zmc2V0OjB9LGB0ZXh0YGluIGUmJnltKGUudGV4dCkmJihlLnNlYUJyZWFrcz1PbShlLnRleHQse2NqazohMCxraW5zb2t1Omx9KSksZSkpLFg7aWYoIWcpWD14ZTtlbHNlIGlmKGcuc2VnSW5kZXg+PXhlLmxlbmd0aClYPVtdO2Vsc2V7bGV0IGU9eGVbZy5zZWdJbmRleF07aWYoZy5jaGFyT2Zmc2V0PjApaWYoIShgdGV4dGBpbiBlKXx8Zy5jaGFyT2Zmc2V0PmUudGV4dC5sZW5ndGgpWD1bXTtlbHNle2xldCB0PWUudGV4dC5zbGljZShnLmNoYXJPZmZzZXQpO1g9dD9bey4uLmUsdGV4dDp0LG1lYXN1cmVkV2lkdGg6MCxzcmM6ey4uLmd9LHB1bmN0dWF0aW9uQ29tcHJlc3Npb25zOkh4KGUsZy5jaGFyT2Zmc2V0LGUudGV4dC5sZW5ndGgpLHNlYUJyZWFrczpoUyhlLnNlYUJyZWFrcyxnLmNoYXJPZmZzZXQpfSwuLi54ZS5zbGljZShnLnNlZ0luZGV4KzEpXTp4ZS5zbGljZShnLnNlZ0luZGV4KzEpfWVsc2UgWD14ZS5zbGljZShnLnNlZ0luZGV4KX1sZXQgU2U9MCxDZT0tMSx3ZT1bXTtmb3IobGV0IGU9WC5sZW5ndGgtMTtlPj0wOy0tZSl7bGV0IHQ9WFtlXTtpZighdHx8IShgdGV4dGBpbiB0KXx8dC50ZXh0Lmxlbmd0aD09PTApYnJlYWs7aWYodC5maXRUZXh0UmVnaW9uSW5kZXghPT12b2lkIDB8fHQudGF0ZUNodVlva289PT0hMHx8dC5ydWJ5IT09dm9pZCAwKXtpZih0LnNvdXJjZVJ1bkluZGV4IT09dm9pZCAwKXtmb3IobGV0IGU9d2UubGVuZ3RoLTE7ZT49MDstLWUpe2xldCBuPXdlW2VdO24uc2VnbWVudC5zb3VyY2VSdW5JbmRleD09PXQuc291cmNlUnVuSW5kZXgmJihuLnNlZ21lbnQucGFyYWdyYXBoRmluYWxJZGVvZ3JhcGhpY1NwYWNlVGFpbD12b2lkIDAsbi5zZWdtZW50LnBhcmFncmFwaEZpbmFsSWRlb2dyYXBoaWNTcGFjZUxvY2FsQ291bnQ9dm9pZCAwLG4uc2VnbWVudC5wYXJhZ3JhcGhGaW5hbElkZW9ncmFwaGljU3BhY2VDb3VudD12b2lkIDAsbi5zZWdtZW50LnBhcmFncmFwaEZpbmFsSWRlb2dyYXBoaWNTcGFjZVRhaWxTdGFydD12b2lkIDAsd2Uuc3BsaWNlKGUsMSkpfUNlPXdlLmF0KC0xKT8uaW5kZXg/Py0xfWJyZWFrfWxldCBuPS9eXHUzMDAwKyQvdS50ZXN0KHQudGV4dCkscj0vW15cdTMwMDBdXHUzMDAwKyQvdS50ZXN0KHQudGV4dCk7aWYoIW4mJiFyKWJyZWFrO2xldCBpPW4/Wy4uLnQudGV4dF0ubGVuZ3RoOlsuLi50LnRleHRdLnJldmVyc2UoKS5maW5kSW5kZXgoZT0+ZSE9PWDjgIBgKTtpZihTZSs9aSx0LnBhcmFncmFwaEZpbmFsSWRlb2dyYXBoaWNTcGFjZVRhaWw9ITAsdC5wYXJhZ3JhcGhGaW5hbElkZW9ncmFwaGljU3BhY2VMb2NhbENvdW50PWksdC5wYXJhZ3JhcGhGaW5hbElkZW9ncmFwaGljU3BhY2VDb3VudD1TZSxDZT1lLHdlLnB1c2goe2luZGV4OmUsc2VnbWVudDp0fSkscilicmVha31pZihDZT49MCl7bGV0IGU9WFtDZV07ZSYmYHRleHRgaW4gZSYmKGUucGFyYWdyYXBoRmluYWxJZGVvZ3JhcGhpY1NwYWNlVGFpbFN0YXJ0PSEwKX1EUyhYLmZpbHRlcihlPT5gdGV4dGBpbiBlKSxpLGU9PnZlKGUpLndpZHRoK3llKGUsZS50ZXh0KSk7bGV0IFRlPWU9Pll4KGUsdmUoZSkud2lkdGgreWUoZSxlLnRleHQpLHUsaSksRWU9KGUsdCk9PntsZXQgbj1YeChlLHUpO3JldHVybiFufHxFPT1udWxsfHxlLnRleHQubGVuZ3RoPT09MD90Olp4KHQsbixFLG49PT1gZWFzdEFzaWFgP2tlKGUpOjEpfSxEZT1lPT5FZShlLFRlKGUpKSxPZT0odCxuLHI9ITEpPT57bGV0IGE9cj90LnRleHQubGVuZ3RoLW4ubGVuZ3RoOjAsbz17Li4udCx0ZXh0Om4scHVuY3R1YXRpb25Db21wcmVzc2lvbnM6SHgodCxNYXRoLm1heCgwLGEpLE1hdGgubWF4KDAsYSkrbi5sZW5ndGgpfTtpZih0LnRleHRMYXlvdXRTZXJ2aWNlJiZ0LnRleHRTaGFwZVJlcXVlc3QpcmV0dXJuIFl4KG8sdC50ZXh0TGF5b3V0U2VydmljZS5zaGFwZSh7Li4udC50ZXh0U2hhcGVSZXF1ZXN0LHRleHQ6bixmb250U2l6ZVB0OnBlKHQpLG1lYXN1cmU6ITAsY2x1c3Rlckdlb21ldHJ5OiExfSkuYWR2YW5jZVB0K3llKHQsbiksdSxpKTtoZShEeCh0LmJvbGQsdC5pdGFsaWMscGUodCksdC5mb250RmFtaWx5LHMsdC5mb250Um91dGUpKTtsZXQgYz1nZSh0KSxsPWUubWVhc3VyZVRleHQobikud2lkdGg7cmV0dXJuIF9lKGMpLFl4KG8sbCt5ZSh0LG4pLHUsaSl9LGtlPXQ9PntpZihFPT1udWxsKXJldHVybiAxO3QudGV4dExheW91dFNlcnZpY2UmJnQudGV4dFNoYXBlUmVxdWVzdCYmIXQuc2hhcGVkQ2x1c3RlcnMmJnZlKHQsITApO2xldCBuPXQuc2hhcGVkQ2x1c3RlcnM/Lmxlbmd0aD90LnNoYXBlZENsdXN0ZXJzOm51bGwscj1uPT1udWxsP1suLi5uZXcgU2V0KFswLC4uLk5tKHQudGV4dCksdC50ZXh0Lmxlbmd0aF0pXS5zb3J0KChlLHQpPT5lLXQpOm51bGwsYT1uPy5tYXAoZT0+KHtzdGFydDplLnJhbmdlLnN0YXJ0LGVuZDplLnJhbmdlLmVuZCxhZHZhbmNlUHg6ZS5hZHZhbmNlUHR9KSk/P3Iuc2xpY2UoMCwtMSkubWFwKChlLHQpPT4oe3N0YXJ0OmUsZW5kOnJbdCsxXSxhZHZhbmNlUHg6dm9pZCAwfSkpLG89MDtmb3IobGV0IG4gb2YgYSl7bGV0e3N0YXJ0OnIsZW5kOmF9PW47aWYoYTw9ciljb250aW51ZTtsZXQgYz10LnRleHQuc2xpY2UocixhKSxsPXsuLi50LHRleHQ6YyxwdW5jdHVhdGlvbkNvbXByZXNzaW9uczpIeCh0LHIsYSl9LGQ7aWYobi5hZHZhbmNlUHghPW51bGwpZD1ZeChsLG4uYWR2YW5jZVB4K3llKHQsYyksdSxpKTtlbHNle2hlKER4KHQuYm9sZCx0Lml0YWxpYyxwZSh0KSx0LmZvbnRGYW1pbHkscyx0LmZvbnRSb3V0ZSkpO2xldCBuPWdlKHQpLHI9ZS5tZWFzdXJlVGV4dChjKS53aWR0aDtfZShuKSxkPVl4KGwscit5ZSh0LGMpLHUsaSl9bys9TGIoZCxFKX1yZXR1cm4gTWF0aC5tYXgoMSxvKX0sQWU9KGUsdCxuPSExKT0+RWUoey4uLmUsdGV4dDp0LHNoYXBlZENsdXN0ZXJzOnQ9PT1lLnRleHQ/ZS5zaGFwZWRDbHVzdGVyczp2b2lkIDB9LE9lKGUsdCxuKSksamU9dD0+e2xldCBuPXZlKHQsWHgodCx1KT09PWBlYXN0QXNpYWApLHI9WXgodCxuLndpZHRoK3llKHQsdC50ZXh0KSx1LGkpO3Quc25hcEdyaWROYXR1cmFsV2lkdGhQeD1yO2xldCBhPXQuZm9udFNpemUqaSxvPW4sYz1wZSh0KTtpZih0LnNtYWxsQ2FwcyYmIXQudmVydEFsaWduJiZjIT09YSl7aWYodC50ZXh0TGF5b3V0U2VydmljZSYmdC50ZXh0U2hhcGVSZXF1ZXN0KXtsZXQgZT10LnRleHRMYXlvdXRTZXJ2aWNlLnNoYXBlKHsuLi50LnRleHRTaGFwZVJlcXVlc3QsdGV4dDp0LnRleHR8fGBYYCxmb250U2l6ZVB0OmEsbWVhc3VyZTohMCxjbHVzdGVyR2VvbWV0cnk6ITF9KTtvPXt3aWR0aDplLmFkdmFuY2VQdCxhY3R1YWxCb3VuZGluZ0JveEFzY2VudDplLmFzY2VudFB0LGFjdHVhbEJvdW5kaW5nQm94RGVzY2VudDplLmRlc2NlbnRQdCxmb250Qm91bmRpbmdCb3hBc2NlbnQ6ZS5hc2NlbnRQdCxmb250Qm91bmRpbmdCb3hEZXNjZW50OmUuZGVzY2VudFB0fX1lbHNle2xldCBuPWUuZm9udDtlLmZvbnQ9RHgodC5ib2xkLHQuaXRhbGljLGEsdC5mb250RmFtaWx5LHMsdC5mb250Um91dGUpLG89ZS5tZWFzdXJlVGV4dCh0LnRleHR8fGBYYCksZS5mb250PW59Yz1hfWxldCBsPXJTKG8sdC5mb250RmFtaWx5LGEsYywodC5tZXRyaWNFYXN0QXNpYW49PT0hMHx8VHYudGVzdCh0LnRleHQpKSYmIXQucnVieSksZD1sLmFzY2VudCxmPWwuZGVzY2VudDtpZih0LnBvc2l0aW9uRXh0ZW5kc0xpbmVCb3ghPT0hMSl7bGV0IGU9KHQucG9zaXRpb24/PzApKmk7ZT4wP2QrPWU6ZTwwJiYoZi09ZSl9cmV0dXJuIHQucnVieSYmKCF0LnRleHRCb3hMaW5lRmxvb3J8fHQudGV4dEJveFZlcnRpY2FsKSYmKGQrPW14KHQucnVieS5mb250U2l6ZVB0LHQucnVieS5ocHNSYWlzZVB0LGksdCxlLHMpKSx7d2lkdGg6cixoZWlnaHQ6dC5mb250U2l6ZSxhc2NlbnQ6ZCxkZXNjZW50OmZ9fSxNZT1lPT57aWYoL1xzJC91LnRlc3QoZS50ZXh0KXx8ZS5ydWJ5IT09dm9pZCAwfHxlLnRhdGVDaHVZb2tvPT09ITB8fGUuZml0VGV4dFJlZ2lvbkluZGV4IT09dm9pZCAwKXJldHVybjtsZXQgdD1YWzBdO2lmKCF0fHwhKGB0ZXh0YGluIHQpfHx0LmpvaW5QcmV2IT09ITB8fHQudGV4dC5sZW5ndGg9PT0wfHxbLi4udC50ZXh0XS5zb21lKGU9PmUhPT1g44CAYCkpcmV0dXJuO1guc2hpZnQoKTtsZXQgbj1XYihfUyhlLnRleHQpLHQucGFyYWdyYXBoRmluYWxJZGVvZ3JhcGhpY1NwYWNlQ291bnQ/P1suLi50LnRleHRdLmxlbmd0aCk7aWYobj09PTApe1gudW5zaGlmdCh0KTtyZXR1cm59bGV0IHI9dC50ZXh0LnNsaWNlKDAsbiksaT17Li4udCx0ZXh0OnIsbWVhc3VyZWRXaWR0aDowLHB1bmN0dWF0aW9uQ29tcHJlc3Npb25zOkh4KHQsMCwxKX0sYT1qZShpKTtpLm1lYXN1cmVkV2lkdGg9YS53aWR0aCxmZShpLGEud2lkdGgsYS5oZWlnaHQsYS5hc2NlbnQsYS5kZXNjZW50KTtsZXQgbz10LnRleHQuc2xpY2Uoci5sZW5ndGgpO28ubGVuZ3RoPjAmJlgudW5zaGlmdCh7Li4udCx0ZXh0Om8sbWVhc3VyZWRXaWR0aDowLGpvaW5QcmV2OnZvaWQgMCxwdW5jdHVhdGlvbkNvbXByZXNzaW9uczpIeCh0LHIubGVuZ3RoLHQudGV4dC5sZW5ndGgpLHNyYzp0LnNyYz97c2VnSW5kZXg6dC5zcmMuc2VnSW5kZXgsY2hhck9mZnNldDp0LnNyYy5jaGFyT2Zmc2V0K3IubGVuZ3RofTp2b2lkIDB9KX0sTmU9ZT0+YGlzVGFiYGluIGU/ZS5tZWFzdXJlZFdpZHRofHwwOmBpbWFnZVBhdGhgaW4gZT9lLndpZHRoUHQqaTpgbWF0aGBpbiBlP2UubWVhc3VyZWRXaWR0aHx8MDpgbGluZUJyZWFrYGluIGU/MDpEZShlKSxQZT1lPT57Zm9yKGxldCB0PTA7dDxlLmxlbmd0aDt0Kz0xKXtsZXQgbj1lW3RdO2lmKCEoYHRleHRgaW4gbikpY29udGludWU7bGV0IHI9bi50ZXh0LmluZGV4T2YoYC5gKTtpZihyPj0wKXJldHVybntzZWdtZW50SW5kZXg6dCxjaGFyT2Zmc2V0OnJ9fWxldCB0PW51bGwsbj0hMTtmb3IobGV0IHI9MDtyPGUubGVuZ3RoO3IrPTEpe2xldCBpPWVbcl07aWYoIShgdGV4dGBpbiBpKSl7aWYobilyZXR1cm4gdDtjb250aW51ZX1sZXQgYT0wO2ZvcihsZXQgZSBvZiBpLnRleHQpaWYoYSs9ZS5sZW5ndGgsL1xwe0RlY2ltYWxfTnVtYmVyfS91LnRlc3QoZSkpbj0hMCx0PXtzZWdtZW50SW5kZXg6cixjaGFyT2Zmc2V0OmF9O2Vsc2UgaWYobilyZXR1cm4gdH1yZXR1cm4gdH0sRmU9ZT0+e2xldCB0PVBlKGUpO2lmKCF0KXJldHVybjtsZXQgbj0wO2ZvcihsZXQgcj0wO3I8dC5zZWdtZW50SW5kZXg7cis9MSluKz1OZShlW3JdKTtsZXQgcj1lW3Quc2VnbWVudEluZGV4XTtyZXR1cm5gdGV4dGBpbiByP24rQWUocixyLnRleHQuc2xpY2UoMCx0LmNoYXJPZmZzZXQpKTpufSxJZT0oKT0+e2xldCBlPVtdLHQ9MDtmb3IobGV0IG4gb2YgWCl7aWYoYGlzVGFiYGluIG58fGBsaW5lQnJlYWtgaW4gbilicmVhaztlLnB1c2gobiksdCs9TmUobil9bGV0IG49RmUoZSk7cmV0dXJuIG49PT12b2lkIDA/e3RvdGFsV2lkdGg6dH06e3RvdGFsV2lkdGg6dCxkZWNpbWFsUHJlZml4V2lkdGg6bn19LExlPW51bGw7Zm9yKEcobmU/bz8ucGFyYWdyYXBoTWFya0xpbmVTdGFydFdpZHRoPz9XKCk6VygpKTtYLmxlbmd0aD4wOyl7bGV0IHQ9WC5zaGlmdCgpO2lmKGBsaW5lQnJlYWtgaW4gdCl7b2UodC5mb250U2l6ZSwhMCksTGU9dC5mb250U2l6ZTtjb250aW51ZX1pZihMZT1udWxsLGBpc1RhYmBpbiB0KXtpZihwJiYhdC5wdGFiKXt0Lm1lYXN1cmVkV2lkdGg9MCxmZSh0LDAsdC5mb250U2l6ZSx0LmZvbnRTaXplKmkqLjgsdC5mb250U2l6ZSppKi4yKTtjb250aW51ZX1sZXQgZT1UKyhWP3I6MCk7aWYodC5wdGFiKXt0LnJlc29sdmVkQWxpZ25tZW50PXQucHRhYi5hbGlnbm1lbnQ7bGV0IHI9dC5wdGFiLnJlbGF0aXZlVG89PT1gaW5kZW50YD8wOi1jLGE9dC5wdGFiLnJlbGF0aXZlVG89PT1gaW5kZW50YD9uOmYsbz10LnB0YWIuYWxpZ25tZW50PT09YGxlZnRgP3I6dC5wdGFiLmFsaWdubWVudD09PWBjZW50ZXJgPyhyK2EpLzI6YSxzPTA7Zm9yKGxldCBlIG9mIFgpe2lmKGBpc1RhYmBpbiBlfHxgbGluZUJyZWFrYGluIGUpYnJlYWs7cys9TmUoZSl9bGV0IGw9dC5wdGFiLmFsaWdubWVudD09PWBjZW50ZXJgPy41OisodC5wdGFiLmFsaWdubWVudD09PWByaWdodGApLGQ9by1lLXMqbDtpZihkPD0wKXtpZih3Lmxlbmd0aD4wKXtvZSh2b2lkIDAsITEsdC5zcmMpLFgudW5zaGlmdCh0KTtjb250aW51ZX1kPTB9aWYodC5tZWFzdXJlZFdpZHRoPWQsZmUodCxkLHQuZm9udFNpemUsdC5mb250U2l6ZSppKi44LHQuZm9udFNpemUqaSouMiksdC5wdGFiLmFsaWdubWVudCE9PWBsZWZ0YClmb3IoO1gubGVuZ3RoPjA7KXtsZXQgZT1YWzBdO2lmKGBpc1RhYmBpbiBlfHxgbGluZUJyZWFrYGluIGUpYnJlYWs7aWYoWC5zaGlmdCgpLGBpbWFnZVBhdGhgaW4gZSl7bGV0IHQ9ZS53aWR0aFB0Kmk7ZS5tZWFzdXJlZFdpZHRoPXQsZmUoZSx0LGUuaGVpZ2h0UHQsZS5oZWlnaHRQdCppLDApfWVsc2UgaWYoYG1hdGhgaW4gZSlmZShlLGUubWVhc3VyZWRXaWR0aHx8MCxlLmZvbnRTaXplLGUubWF0aEFzY2VudHx8MCxlLm1hdGhEZXNjZW50fHwwKTtlbHNle2xldCB0PXZlKGUpLG49WXgoZSx0LndpZHRoK3llKGUsZS50ZXh0KSx1LGkpO2UubWVhc3VyZWRXaWR0aD1uO2xldCByPXQuZm9udEJvdW5kaW5nQm94QXNjZW50Pz90LmFjdHVhbEJvdW5kaW5nQm94QXNjZW50Pz9lLmZvbnRTaXplKmkqLjgsYT10LmZvbnRCb3VuZGluZ0JveERlc2NlbnQ/P3QuYWN0dWFsQm91bmRpbmdCb3hEZXNjZW50Pz9lLmZvbnRTaXplKmkqLjI7ZmUoZSxuLGUuZm9udFNpemUscixhKX19Y29udGludWV9bGV0IG89RXYoZStjLGEubWFwKGU9Pih7cG9zOmUucG9zKmksYWxpZ25tZW50OmUuYWxpZ25tZW50LGxlYWRlcjplLmxlYWRlcn0pKSxkKmkpO3QucmVzb2x2ZWRBbGlnbm1lbnQ9bz8uYWxpZ25tZW50Pz9gbGVmdGA7bGV0IHM9bz9vLnBvcy1jOmUsbD1vP1RTKG8uYWxpZ25tZW50KTpgbGVhZGluZ2A7aWYobyYmbCE9PWBsZWFkaW5nYCl7bGV0IG49czt0LmxlYWRlcj1vLmxlYWRlcjtsZXQgcj1JZSgpLGE9bD09PWBjZW50ZXJgP3IudG90YWxXaWR0aC8yOmw9PT1gZGVjaW1hbGA/ci5kZWNpbWFsUHJlZml4V2lkdGg/P3IudG90YWxXaWR0aDpyLnRvdGFsV2lkdGgsYz1uLWUtYTtmb3IoYzw9MCYmKGM9MCksdC5tZWFzdXJlZFdpZHRoPWMsZmUodCxjLHQuZm9udFNpemUsdC5mb250U2l6ZSppKi44LHQuZm9udFNpemUqaSouMik7WC5sZW5ndGg+MDspe2xldCBlPVhbMF07aWYoYGlzVGFiYGluIGV8fGBsaW5lQnJlYWtgaW4gZSlicmVhaztpZihYLnNoaWZ0KCksYGltYWdlUGF0aGBpbiBlKXtsZXQgdD1lLndpZHRoUHQqaTtlLm1lYXN1cmVkV2lkdGg9dCxmZShlLHQsZS5oZWlnaHRQdCxlLmhlaWdodFB0KmksMCl9ZWxzZSBpZihgbWF0aGBpbiBlKWZlKGUsZS5tZWFzdXJlZFdpZHRofHwwLGUuZm9udFNpemUsZS5tYXRoQXNjZW50fHwwLGUubWF0aERlc2NlbnR8fDApO2Vsc2V7bGV0IHQ9dmUoZSksbj1ZeChlLHQud2lkdGgreWUoZSxlLnRleHQpLHUsaSk7ZS5tZWFzdXJlZFdpZHRoPW47bGV0IHI9dC5mb250Qm91bmRpbmdCb3hBc2NlbnQ/P3QuYWN0dWFsQm91bmRpbmdCb3hBc2NlbnQ/P2UuZm9udFNpemUqaSouOCxhPXQuZm9udEJvdW5kaW5nQm94RGVzY2VudD8/dC5hY3R1YWxCb3VuZGluZ0JveERlc2NlbnQ/P2UuZm9udFNpemUqaSouMjtmZShlLG4sZS5mb250U2l6ZSxyLGEpfX1jb250aW51ZX1sZXQgbT1zLWU7aWYobyYmKHQubGVhZGVyPW8ubGVhZGVyKSxtPD0wKXtvZSh2b2lkIDAsITEsdC5zcmMpLFgudW5zaGlmdCh0KTtjb250aW51ZX1pZihUK20+SygpJiZ3Lmxlbmd0aD4wKXtvZSh2b2lkIDAsITEsdC5zcmMpLFgudW5zaGlmdCh0KTtjb250aW51ZX10Lm1lYXN1cmVkV2lkdGg9bSxmZSh0LG0sdC5mb250U2l6ZSx0LmZvbnRTaXplKmkqLjgsdC5mb250U2l6ZSppKi4yKTtjb250aW51ZX1pZihgaW1hZ2VQYXRoYGluIHQpe2lmKHQuYW5jaG9yKXt0Lm1lYXN1cmVkV2lkdGg9MDtjb250aW51ZX1sZXQgZT10LndpZHRoUHQqaSxuPXQuaGVpZ2h0UHQscj10LmhlaWdodFB0Kmk7dC5tZWFzdXJlZFdpZHRoPWUsdy5sZW5ndGg+MCYmVCtlPksoKSYmb2Uodm9pZCAwLCExLHQuc3JjKSxmZSh0LGUsbixyLDApO2NvbnRpbnVlfWlmKGBtYXRoYGluIHQpe2xldCBuPXQubWF0aE1ldGFkYXRhO2lmKCFufHxuLmF2YWlsYWJsZT09PSExKXtsZXQgbj10LmZvbnRTaXplKmk7aGUoRHgoITEsITEsbixudWxsLHMpKTtsZXQgcj1lLm1lYXN1cmVUZXh0KHQuZmFsbGJhY2tUZXh0KSxhPXIud2lkdGgsbz1yLmZvbnRCb3VuZGluZ0JveEFzY2VudD8/ci5hY3R1YWxCb3VuZGluZ0JveEFzY2VudD8/biouOCxjPXIuZm9udEJvdW5kaW5nQm94RGVzY2VudD8/ci5hY3R1YWxCb3VuZGluZ0JveERlc2NlbnQ/P24qLjI7dC5tZWFzdXJlZFdpZHRoPWEsdC5tYXRoQXNjZW50PW8sdC5tYXRoRGVzY2VudD1jLHcubGVuZ3RoPjAmJlQrYT5LKCkmJm9lKHZvaWQgMCwhMSx0LnNyYyksZmUodCxhLHQuZm9udFNpemUsTWF0aC5tYXgobyxuKi44KSxNYXRoLm1heChjLG4qLjIpKTtjb250aW51ZX1sZXQgcj10LmZvbnRTaXplKmksYT1uLndpZHRoRW0qcixvPW4uYXNjZW50RW0qcixjPW4uZGVzY2VudEVtKnI7dC5tZWFzdXJlZFdpZHRoPWEsdC5tYXRoQXNjZW50PW8sdC5tYXRoRGVzY2VudD1jO2xldCBsPU1hdGgubWF4KG8sciouOCksdT1NYXRoLm1heChjLHIqLjIpO3cubGVuZ3RoPjAmJlQrYT5LKCkmJm9lKHZvaWQgMCwhMSx0LnNyYyksZmUodCxhLHQuZm9udFNpemUsbCx1KTtjb250aW51ZX1sZXQgbz10LGc9amUobyksXz1nLndpZHRoLGI9ZGUobyxfKSx4PWcuaGVpZ2h0LFM9Zy5hc2NlbnQsQz1nLmRlc2NlbnQsRT1vLnBhcmFncmFwaEZpbmFsSWRlb2dyYXBoaWNTcGFjZVRhaWw9PT0hMCxEPW8ucGFyYWdyYXBoRmluYWxJZGVvZ3JhcGhpY1NwYWNlQ291bnQ/PzAsaz1vLnBhcmFncmFwaEZpbmFsSWRlb2dyYXBoaWNTcGFjZUxvY2FsQ291bnQ/PzAsQT1FP28udGV4dC5zbGljZSgwLE1hdGgubWF4KDAsby50ZXh0Lmxlbmd0aC1rKSk6by50ZXh0O2lmKEUmJkQ+MSYmQS5sZW5ndGg+MCl7bGV0IGU9ey4uLm8sdGV4dDpBLHBhcmFncmFwaEZpbmFsSWRlb2dyYXBoaWNTcGFjZVRhaWw6dm9pZCAwLHBhcmFncmFwaEZpbmFsSWRlb2dyYXBoaWNTcGFjZUxvY2FsQ291bnQ6dm9pZCAwLHBhcmFncmFwaEZpbmFsSWRlb2dyYXBoaWNTcGFjZUNvdW50OnZvaWQgMCxwYXJhZ3JhcGhGaW5hbElkZW9ncmFwaGljU3BhY2VUYWlsU3RhcnQ6dm9pZCAwLG1lYXN1cmVkV2lkdGg6MCxwdW5jdHVhdGlvbkNvbXByZXNzaW9uczpIeChvLDAsQS5sZW5ndGgpfSx0PXsuLi5vLHRleHQ6by50ZXh0LnNsaWNlKEEubGVuZ3RoKSxwYXJhZ3JhcGhGaW5hbElkZW9ncmFwaGljU3BhY2VMb2NhbENvdW50Omssam9pblByZXY6dm9pZCAwLHBhcmFncmFwaEZpbmFsSWRlb2dyYXBoaWNTcGFjZVRhaWxTdGFydDohMCxtZWFzdXJlZFdpZHRoOjAscHVuY3R1YXRpb25Db21wcmVzc2lvbnM6SHgobyxBLmxlbmd0aCxvLnRleHQubGVuZ3RoKSxzcmM6by5zcmM/e3NlZ0luZGV4Om8uc3JjLnNlZ0luZGV4LGNoYXJPZmZzZXQ6by5zcmMuY2hhck9mZnNldCtBLmxlbmd0aH06dm9pZCAwfTtYLnVuc2hpZnQodCksWC51bnNoaWZ0KGUpO2NvbnRpbnVlfWlmKEUmJi9eXHUzMDAwKyQvdS50ZXN0KG8udGV4dCkmJm8ucGFyYWdyYXBoRmluYWxJZGVvZ3JhcGhpY1NwYWNlVGFpbFN0YXJ0PT09ITAmJncuc29tZShlPT5gdGV4dGBpbiBlJiYvW15cdTMwMDBdL3UudGVzdChlLnRleHQpKSl7bGV0IGU9Xztmb3IobGV0IHQgb2YgWCl7aWYoIShgdGV4dGBpbiB0KXx8dC5wYXJhZ3JhcGhGaW5hbElkZW9ncmFwaGljU3BhY2VUYWlsIT09ITApYnJlYWs7ZSs9RGUodCl9aWYoVCtlPksoKSl7b2Uodm9pZCAwLCExLG8uc3JjKSxYLnVuc2hpZnQobyk7Y29udGludWV9fWlmKG8uZml0VGV4dFJlZ2lvbkluZGV4IT09dm9pZCAwKXtpZihvLmZpdFRleHRSZWdpb25TdGFydCl7bGV0IGU9Xztmb3IobGV0IHQgb2YgWCl7aWYoIShgdGV4dGBpbiB0KXx8dC5maXRUZXh0UmVnaW9uSW5kZXghPT1vLmZpdFRleHRSZWdpb25JbmRleClicmVhaztlKz1EZSh0KX13Lmxlbmd0aD4wJiZUK2U+SygpJiZvZSh2b2lkIDAsITEsby5zcmMpfW8ubWVhc3VyZWRXaWR0aD1fLGZlKG8sXyx4LFMsQyk7Y29udGludWV9bGV0IE09by50ZXh0LnJlcGxhY2UoLyArJC8sYGApLE49WHgobyx1KT8wOm8udGV4dC5lbmRzV2l0aChgIGApP18tQWUobyxNKTowLFA9ZT0+e2xldCB0PWU9PT12b2lkIDB8fGBsaW5lQnJlYWtgaW4gZTtyZXR1cm4gbSYmKCF0fHxoKX0sRj0oZSx0LHIpPT5RYih7d2lkdGhQeDplLHRyYWlsaW5nU3BhY2VQeDp0LGxpbmVXaWxsSnVzdGlmeTpQKHIpLHdyYXBOYXJyb3dlZDpIIT09bnx8VSE9PTB9KSxJPUYoYixOLFhbMF0pLEw9by5zZWFCcmVha3MhPT12b2lkIDAmJnhtKG8udGV4dCksUj1uZXcgU2V0O2xlKFIsbyxNKTtsZXQgej0oZSx0LG4pPT5QKGUpPyRiKHtiaWFzQnVkZ2V0UHg6dCxyZXNvbHZlZE1lYXN1cmVtZW50Um91dGVDb3VudDp1ZShuKX0pOmFlfHxMPzA6TyouMjU7aWYoIW8uam9pblByZXYmJncubGVuZ3RoPjAmJlhbMF0/LmpvaW5QcmV2JiYhZFMoby50ZXh0KSYmIShvLnNlYUJyZWFrcyYmby5zZWFCcmVha3MubGVuZ3RoPjApKXtsZXQgZT1fLHQ9TixuPTAscj1qLGk9bmV3IFNldChSKSxhPW8scz1vLnRleHQsYz0oZSx0PWUudGV4dCk9PntyKz1zZShhLHMpLGE9ZSxzPXR9O2Zvcig7bjxYLmxlbmd0aCYmWFtuXS5qb2luUHJldjtuKyspe2xldCByPVhbbl07aWYoZFMoci50ZXh0KSl7bGV0IG49Wy4uLnIudGV4dF0sYT0wO2Zvcig7YTxuLmxlbmd0aCYmcm0ubGluZVN0YXJ0Rm9yYmlkZGVuLmhhcyhuW2FdLmNvZGVQb2ludEF0KDApKTspYSsrO2lmKGE8bi5sZW5ndGgpe2xldCBvPW4uc2xpY2UoMCxhKS5qb2luKGBgKSxzPUFlKHIsbyk7ZSs9cyxvLmxlbmd0aD4wJiYoYyhyLG8pLGxlKGkscixvKSksdD0wO2JyZWFrfX1sZXQgYT1EZShyKTtlKz1hLGMociksbGUoaSxyKTtsZXQgbz1yLnRleHQucmVwbGFjZSgvICskLyxgYCkscz1yLnRleHQuZW5kc1dpdGgoYCBgKT9hLUFlKHIsbyk6MDt0PW8ubGVuZ3RoPT09MCYmdD4wP3QrczpzfXIrPXNlKGEscy5yZXBsYWNlKC8gKyQvLGBgKSksVCtGKGUsdCxYW25dKT5LKCkreihYW25dLHIsaSkmJm9lKHZvaWQgMCwhMSxvLnNyYyl9aWYoTCYmdy5sZW5ndGg+MCYmKCgpPT57bGV0IGU9d1t3Lmxlbmd0aC0xXTtyZXR1cm4hKGB0ZXh0YGluIGUpfHxlLnRleHQuZW5kc1dpdGgoYCBgKX0pKCkpe2xldCBlPV8sdD1OLG49MCxyPWorc2UobyxNKSxpPW5ldyBTZXQoUik7aWYoIW8udGV4dC5lbmRzV2l0aChgIGApKWZvcig7bjxYLmxlbmd0aDtuKyspe2xldCBhPVhbbl07aWYoIShgdGV4dGBpbiBhKXx8YS5zZWFCcmVha3M9PT12b2lkIDB8fCF4bShhLnRleHQpKWJyZWFrO2xldCBvPWEscz1EZShvKSxjPW8udGV4dC5yZXBsYWNlKC8gKyQvLGBgKTtpZihlKz1zLHQ9by50ZXh0LmVuZHNXaXRoKGAgYCk/cy1BZShvLGMpOjAscis9c2UobyxjKSxsZShpLG8sYyksby50ZXh0LmVuZHNXaXRoKGAgYCkpe24rKzticmVha319bGV0IGE9RihlLHQsWFtuXSk7VCthPksoKSt6KFhbbl0scixpKSYmYTw9SCYmb2Uodm9pZCAwLCExLG8uc3JjKX1sZXQgZWU9eihYWzBdLGorc2UobyxNKSxSKSxCPVsuLi5NXSx0ZT1CLmF0KC0xKSxXPUIuc2xpY2UoMCwtMSkuam9pbihgYCksbmU9eSYmdGUhPT12b2lkIDAmJih3Lmxlbmd0aD4wfHxXLmxlbmd0aD4wKSYmWmIodGUsby5lYXN0QXNpYUxhbmd1YWdlKSYmVCtBZShvLFcpPD1LKCkrZWU7aWYoVCtJPD1LKCkrZWUpby5tZWFzdXJlZFdpZHRoPV8sZmUobyxfLHgsUyxDLE4pLE1lKG8pO2Vsc2UgaWYobmUpby5tZWFzdXJlZFdpZHRoPV8sZmUobyxfLHgsUyxDLE4pLE1lKG8pO2Vsc2UgaWYoZFMoby50ZXh0KSYmby5zZWFCcmVha3M9PT12b2lkIDApe2xldCB0PUsoKS1UO2hlKER4KG8uYm9sZCxvLml0YWxpYyxwZShvKSxvLmZvbnRGYW1pbHkscyxvLmZvbnRSb3V0ZSkpO2xldCBuPWdlKG8pLHI9YGAsYT1FP1diKF9TKG8udGV4dCksby5wYXJhZ3JhcGhGaW5hbElkZW9ncmFwaGljU3BhY2VDb3VudD8/MCk6MS8wO3RyeXtyPXQ+MD92UyhlLG8udGV4dCx0LEl4KG8sdSxpKSxLeChvKSxMeChvLGkpLG8udmVydGljYWxSdW49PT0hMCx2LGU9PkFlKG8sZSksYSk6YGB9ZmluYWxseXtfZShuKX1sZXQgYz1bLi4uby50ZXh0XSxkPVsuLi5yXS5sZW5ndGgsZj13Lmxlbmd0aD4wPzA6MSxwPWdTKGMsKHkmJmQ8Yy5sZW5ndGgmJih3Lmxlbmd0aD4wfHxkPjApJiZaYihjW2RdLG8uZWFzdEFzaWFMYW5ndWFnZSk/ZCsxOm51bGwpPz9pbShjLGQsbCxmKSxFJiZhPT09MD8wOmEpLG09Yy5zbGljZSgwLHApLmpvaW4oYGApO2lmKG0ubGVuZ3RoPjApe2xldCBlPU9lKG8sbSk7ZmUoey4uLm8sdGV4dDptLG1lYXN1cmVkV2lkdGg6ZSxwdW5jdHVhdGlvbkNvbXByZXNzaW9uczpIeChvLDAsbS5sZW5ndGgpfSxlLHgsUyxDKTtsZXQgdD1vLnRleHQuc2xpY2UobS5sZW5ndGgpO3Q/WC51bnNoaWZ0KHsuLi5vLHRleHQ6dCxwdW5jdHVhdGlvbkNvbXByZXNzaW9uczpIeChvLG0ubGVuZ3RoLG8udGV4dC5sZW5ndGgpLG1lYXN1cmVkV2lkdGg6MCxzcmM6e3NlZ0luZGV4Om8uc3JjLnNlZ0luZGV4LGNoYXJPZmZzZXQ6by5zcmMuY2hhck9mZnNldCttLmxlbmd0aH19KTpNZShvKX1lbHNlIGlmKHcubGVuZ3RoPjApe2xldCBlPW51bGwsdD1vLnRleHQuY29kZVBvaW50QXQoMCksbj13W3cubGVuZ3RoLTFdO2lmKHQhPT12b2lkIDAmJmwubGluZVN0YXJ0Rm9yYmlkZGVuLmhhcyh0KSYmYHRleHRgaW4gbil7bGV0IHQ9bixyPVsuLi50LnRleHRdLGk9YW0ocixsLHcubGVuZ3RoPjE/MDoxKTtpZihpPjApe2xldCBuPXIuc2xpY2UoMCxyLmxlbmd0aC1pKS5qb2luKGBgKSxhPXIuc2xpY2Uoci5sZW5ndGgtaSkuam9pbihgYCk7aWYoZT17Li4udCx0ZXh0OmEscHVuY3R1YXRpb25Db21wcmVzc2lvbnM6SHgodCxuLmxlbmd0aCx0LnRleHQubGVuZ3RoKSxtZWFzdXJlZFdpZHRoOkFlKHQsYSwhMCksc3JjOntzZWdJbmRleDp0LnNyYy5zZWdJbmRleCxjaGFyT2Zmc2V0OnQuc3JjLmNoYXJPZmZzZXQrbi5sZW5ndGh9fSxuKXtsZXQgZT1BZSh0LG4pO1QtPXQubWVhc3VyZWRXaWR0aC1lLHdbdy5sZW5ndGgtMV09ey4uLnQsdGV4dDpuLG1lYXN1cmVkV2lkdGg6ZSxwdW5jdHVhdGlvbkNvbXByZXNzaW9uczpIeCh0LDAsbi5sZW5ndGgpfX1lbHNlIFQtPXQubWVhc3VyZWRXaWR0aCx3LnBvcCgpfX1vZSh2b2lkIDAsITEsZT8uc3JjPz9vLnNyYyksWC51bnNoaWZ0KG8pLGUmJlgudW5zaGlmdChlKX1lbHNle2xldCBlPVsuLi5vLnRleHRdLHQ9ZS5sZW5ndGg+MD9nUyhlLDEsby5wYXJhZ3JhcGhGaW5hbElkZW9ncmFwaGljU3BhY2VUYWlsPT09ITA/V2IoVHYudGVzdChlWzBdPz9gYCksby5wYXJhZ3JhcGhGaW5hbElkZW9ncmFwaGljU3BhY2VDb3VudD8/MCk6MS8wKTowLG49ZS5zbGljZSgwLHQpLmpvaW4oYGApO2lmKG4pe2xldCBlPU9lKG8sbik7ZmUoey4uLm8sdGV4dDpuLG1lYXN1cmVkV2lkdGg6ZSxwdW5jdHVhdGlvbkNvbXByZXNzaW9uczpIeChvLDAsbi5sZW5ndGgpfSxlLHgsUyxDKTtsZXQgdD1vLnRleHQuc2xpY2Uobi5sZW5ndGgpO3Q/WC51bnNoaWZ0KHsuLi5vLHRleHQ6dCxwdW5jdHVhdGlvbkNvbXByZXNzaW9uczpIeChvLG4ubGVuZ3RoLG8udGV4dC5sZW5ndGgpLG1lYXN1cmVkV2lkdGg6MCxzcmM6e3NlZ0luZGV4Om8uc3JjLnNlZ0luZGV4LGNoYXJPZmZzZXQ6by5zcmMuY2hhck9mZnNldCtuLmxlbmd0aH19KTpNZShvKX19fWVsc2UgaWYoby5zZWFCcmVha3MhPT12b2lkIDApe2xldCBlPUsoKS1ULHQ9ZT0+QWUobyxlKSxuPWJtKG8udGV4dCkscj1BbShvLnRleHQsby5zZWFCcmVha3MsMCxlLHQsbik7aWYocj4wKXtsZXQgZT1vLnRleHQuc2xpY2UoMCxyKSx0PU9lKG8sZSk7ZmUoey4uLm8sdGV4dDplLG1lYXN1cmVkV2lkdGg6dCxwdW5jdHVhdGlvbkNvbXByZXNzaW9uczpIeChvLDAsZS5sZW5ndGgpfSx0LHgsUyxDKTtsZXQgbj1vLnRleHQuc2xpY2Uocik7biYmWC51bnNoaWZ0KHsuLi5vLHRleHQ6bixwdW5jdHVhdGlvbkNvbXByZXNzaW9uczpIeChvLHIsby50ZXh0Lmxlbmd0aCksbWVhc3VyZWRXaWR0aDowLHNyYzp7c2VnSW5kZXg6by5zcmMuc2VnSW5kZXgsY2hhck9mZnNldDpvLnNyYy5jaGFyT2Zmc2V0K3J9LHNlYUJyZWFrczpoUyhvLnNlYUJyZWFrcyxyKX0pfWVsc2UgaWYody5sZW5ndGg+MCl7bGV0IGU9bnVsbCx0PW8udGV4dC5jb2RlUG9pbnRBdCgwKSxuPXdbdy5sZW5ndGgtMV07aWYodCE9PXZvaWQgMCYmbC5saW5lU3RhcnRGb3JiaWRkZW4uaGFzKHQpJiZgdGV4dGBpbiBuKXtsZXQgdD1uLHI9Wy4uLnQudGV4dF0saT1hbShyLGwsdy5sZW5ndGg+MT8wOjEpO2lmKGk+MCl7bGV0IG49ci5zbGljZSgwLHIubGVuZ3RoLWkpLmpvaW4oYGApLGE9ci5zbGljZShyLmxlbmd0aC1pKS5qb2luKGBgKTtpZihlPXsuLi50LHRleHQ6YSxwdW5jdHVhdGlvbkNvbXByZXNzaW9uczpIeCh0LG4ubGVuZ3RoLHQudGV4dC5sZW5ndGgpLG1lYXN1cmVkV2lkdGg6QWUodCxhLCEwKSxzcmM6e3NlZ0luZGV4OnQuc3JjLnNlZ0luZGV4LGNoYXJPZmZzZXQ6dC5zcmMuY2hhck9mZnNldCtuLmxlbmd0aH0sc2VhQnJlYWtzOmhTKHQuc2VhQnJlYWtzLG4ubGVuZ3RoKX0sbil7bGV0IGU9QWUodCxuKTtULT10Lm1lYXN1cmVkV2lkdGgtZSx3W3cubGVuZ3RoLTFdPXsuLi50LHRleHQ6bixtZWFzdXJlZFdpZHRoOmUscHVuY3R1YXRpb25Db21wcmVzc2lvbnM6SHgodCwwLG4ubGVuZ3RoKX19ZWxzZSBULT10Lm1lYXN1cmVkV2lkdGgsdy5wb3AoKX19b2Uodm9pZCAwLCExLGU/LnNyYz8/by5zcmMpLFgudW5zaGlmdChvKSxlJiZYLnVuc2hpZnQoZSl9ZWxzZXtsZXQgcj1vLnNlYUJyZWFrc1swXT8/by50ZXh0Lmxlbmd0aCxpPW8udGV4dC5zbGljZSgwLHIpLGE9Tm0oaSkscz1BbShpLGEsMCxlLHQsbik7czw9MCYmKHM9YS5sZW5ndGg+MD9hWzBdOmkubGVuZ3RoKTtsZXQgYz1vLnRleHQuc2xpY2UoMCxzKSxsPU9lKG8sYyk7ZmUoey4uLm8sdGV4dDpjLG1lYXN1cmVkV2lkdGg6bCxwdW5jdHVhdGlvbkNvbXByZXNzaW9uczpIeChvLDAsYy5sZW5ndGgpfSxsLHgsUyxDKTtsZXQgdT1vLnRleHQuc2xpY2Uocyk7dSYmWC51bnNoaWZ0KHsuLi5vLHRleHQ6dSxwdW5jdHVhdGlvbkNvbXByZXNzaW9uczpIeChvLHMsby50ZXh0Lmxlbmd0aCksbWVhc3VyZWRXaWR0aDowLHNyYzp7c2VnSW5kZXg6by5zcmMuc2VnSW5kZXgsY2hhck9mZnNldDpvLnNyYy5jaGFyT2Zmc2V0K3N9LHNlYUJyZWFrczpoUyhvLnNlYUJyZWFrcyxzKX0pfX1lbHNlIGlmKHcubGVuZ3RoPT09MCl7bGV0IHQ9SygpO2hlKER4KG8uYm9sZCxvLml0YWxpYyxwZShvKSxvLmZvbnRGYW1pbHkscyxvLmZvbnRSb3V0ZSkpO2xldCBuPWdlKG8pLHI9MDt0cnl7cj10PjA/dlMoZSxvLnRleHQsdCxJeChvLHUsaSksS3gobyksTHgobyxpKSxvLnZlcnRpY2FsUnVuPT09ITAsdixlPT5BZShvLGUpKS5sZW5ndGg6MH1maW5hbGx5e19lKG4pfWxldCBhPVswLC4uLk5tKG8udGV4dCksby50ZXh0Lmxlbmd0aF0sYz1hLmZpbHRlcihlPT5lPD1yKS5hdCgtMSk/PzA7Zm9yKGM8PTAmJihjPWFbMV0/P28udGV4dC5sZW5ndGgpO28udGV4dC5zdGFydHNXaXRoKGDjgIBgLGMpOyljKz0xO2lmKGM+PW8udGV4dC5sZW5ndGgpby5tZWFzdXJlZFdpZHRoPV8sZmUobyxfLHgsUyxDKTtlbHNle2xldCBlPW8udGV4dC5zbGljZSgwLGMpLHQ9T2UobyxlKTtmZSh7Li4ubyx0ZXh0OmUsbWVhc3VyZWRXaWR0aDp0LHB1bmN0dWF0aW9uQ29tcHJlc3Npb25zOkh4KG8sMCxlLmxlbmd0aCl9LHQseCxTLEMpLFgudW5zaGlmdCh7Li4ubyx0ZXh0Om8udGV4dC5zbGljZShjKSxwdW5jdHVhdGlvbkNvbXByZXNzaW9uczpIeChvLGMsby50ZXh0Lmxlbmd0aCksbWVhc3VyZWRXaWR0aDowLHNyYzp7c2VnSW5kZXg6by5zcmMuc2VnSW5kZXgsY2hhck9mZnNldDpvLnNyYy5jaGFyT2Zmc2V0K2UubGVuZ3RofX0pfX1lbHNle2lmKG8uam9pblByZXYpe28ubWVhc3VyZWRXaWR0aD1fLGZlKG8sXyx4LFMsQyxOKTtjb250aW51ZX1vZSh2b2lkIDAsITEsby5zcmMpLFgudW5zaGlmdChvKX19aWYody5sZW5ndGg+MD9vZSgpOkxlIT09bnVsbCYmb2UoTGUpLF89PT1gYm91bmRlZGApZm9yKGxldCBlIG9mIEMpZm9yKGxldCB0IG9mIGUuc2VnbWVudHMpIShgdGV4dGBpbiB0KXx8dC5tZXRyaWNPbmx5fHx0LnRleHQubGVuZ3RoPT09MHx8KHQuc2hhcGVkQ2x1c3RlcnM9dm9pZCAwLHQudGV4dExheW91dFNlcnZpY2UmJnQudGV4dFNoYXBlUmVxdWVzdCYmdmUodCwhMCkpO3JldHVybiBDfWNvbnN0IEFTPWU9PntsZXQgdD1lLnRleHQ7cmV0dXJuIHR5cGVvZiB0PT1gc3RyaW5nYD90OnZvaWQgMH0salM9ZT0+ZS5ydGw9PT0hMCxNUz1lPT5lLmRpZ2l0c0FzQU49PT0hMCxOUz1lPT5gaXNUYWJgaW4gZTtmdW5jdGlvbiBQUyhlKXtmb3IobGV0IHQgb2YgZSl7aWYoalModCkpcmV0dXJuITA7bGV0IGU9QVModCk7aWYoZSE9PXZvaWQgMCYmJHAoZSkpcmV0dXJuITB9cmV0dXJuITF9ZnVuY3Rpb24gRlMoZSx0KXtsZXQgbj1lLmxlbmd0aDtpZihuPT09MClyZXR1cm57b3JkZXI6W10scnRsOltdfTtsZXQgcj1gYCxpPUFycmF5KG4pLGE9QXJyYXkobiksbyxzPSgpPT57Zm9yKG98fD1bXTtvLmxlbmd0aDxyLmxlbmd0aDspby5wdXNoKG51bGwpO3JldHVybiBvfTtmb3IobGV0IHQ9MDt0PG47dCsrKXtsZXQgbj1BUyhlW3RdKT8/YGA7aWYoaVt0XT1yLmxlbmd0aCxyKz1uLmxlbmd0aD4wP246YO+/vGAsYVt0XT1yLmxlbmd0aCxOUyhlW3RdKSlzKClbaVt0XV09YFNgO2Vsc2UgaWYobi5sZW5ndGg+MCYmKE1TKGVbdF0pfHxqUyhlW3RdKSkpe2xldCBuPXMoKSxvPU1TKGVbdF0pLGM9alMoZVt0XSk7Zm9yKGxldCBlPWlbdF07ZTxhW3RdO2UrKyl7bGV0IHQ9ci5jaGFyQ29kZUF0KGUpO28mJnQ+PTQ4JiZ0PD01Nz9uW2VdPWBBTmA6YyYmZHgocltlXSkmJihuW2VdPWBSYCl9fX1pZihvKWZvcig7by5sZW5ndGg8ci5sZW5ndGg7KW8ucHVzaChudWxsKTtsZXR7bGV2ZWxzOmMscGFyYWdyYXBoTGV2ZWw6bH09WnAoKS5jb21wdXRlTGV2ZWxzKHIsdD9gcnRsYDpgbHRyYCxvKSx1PUFycmF5KG4pLGQ9QXJyYXkobik7Zm9yKGxldCBlPTA7ZTxuO2UrKyl7bGV0IHQ9YVtlXTtmb3IoO3Q+aVtlXSYmclt0LTFdPT09YCBgOyl0LS07bGV0IG49ITE7Zm9yKGxldCByPWlbZV07cjx0O3IrKyl7bGV0IGU9Y1tyXTtpZihlIT09MjU1JiYoZSYxKT09MSl7bj0hMDticmVha319dVtlXT1uLGRbZV09aVtlXTtmb3IobGV0IHI9aVtlXTtyPHQ7cisrKXtsZXQgdD1jW3JdO2lmKHQhPT0yNTUmJih0JjEpPT0xPT09bil7ZFtlXT1yO2JyZWFrfX19bGV0e29yZGVyOmZ9PWVtKGMsbCxkKTtyZXR1cm57b3JkZXI6ZixydGw6dX19ZnVuY3Rpb24gSVMoZSx0KXtzd2l0Y2goZSl7Y2FzZWBjZW50ZXJgOnJldHVybmBjZW50ZXJgO2Nhc2VgYm90aGA6Y2FzZWBqdXN0aWZ5YDpjYXNlYGRpc3RyaWJ1dGVgOmNhc2VgbG93S2FzaGlkYWA6Y2FzZWBtZWRpdW1LYXNoaWRhYDpjYXNlYGhpZ2hLYXNoaWRhYDpjYXNlYHRoYWlEaXN0cmlidXRlYDpyZXR1cm5ganVzdGlmeWA7Y2FzZWBlbmRgOmNhc2VgcmlnaHRgOnJldHVybiB0P2BsZWZ0YDpgcmlnaHRgO2Nhc2Vgc3RhcnRgOmNhc2VgbGVmdGA6Y2FzZSB2b2lkIDA6ZGVmYXVsdDpyZXR1cm4gdD9gcmlnaHRgOmBsZWZ0YH19ZnVuY3Rpb24gTFMoZSl7c3dpdGNoKGUpe2Nhc2VgYm90aGA6Y2FzZWBqdXN0aWZ5YDpjYXNlYGRpc3RyaWJ1dGVgOmNhc2VgbG93S2FzaGlkYWA6Y2FzZWBtZWRpdW1LYXNoaWRhYDpjYXNlYGhpZ2hLYXNoaWRhYDpjYXNlYHRoYWlEaXN0cmlidXRlYDpyZXR1cm4hMDtkZWZhdWx0OnJldHVybiExfX1mdW5jdGlvbiBSUyhlKXtyZXR1cm4gZT09PWBkaXN0cmlidXRlYH1mdW5jdGlvbiB6UyhlLHQpe2xldCBuPWUubWFwKGU9Pk9iamVjdC5mcmVlemUoey4uLmV9KSkscj1zYihuKTtyZXR1cm57bGluZVdpbmRvdzooe3RvcFlQdDplLG1pbmltdW1TdGFydFdpZHRoUHQ6bixzcXVhcmVNaW5pbXVtU3RhcnRXaWR0aFB0OmkscHJvYmVIZWlnaHRQdDphLHBhcmFncmFwaFhQdDpvLG1heGltdW1XaWR0aFB0OnMsY29sdW1uWFB0OmMsY29sdW1uV2lkdGhQdDpsfSk9PntsZXQgdT1UYihlLG4sYSxvLHMscixjLGMrbCx0Pz97eExlZnRQdDpvLHhSaWdodFB0Om8rcyxyZWFkaW5nRGlyZWN0aW9uOmBsdHJgfSxpPz9uKTtyZXR1cm57dG9wWVB0OnUudG9wWSx4T2Zmc2V0UHQ6dS54T2Zmc2V0LG1heGltdW1XaWR0aFB0OnUubWF4V2lkdGh9fSxza2lwVG9wQW5kQm90dG9tQmFuZHM6KHt5UHQ6ZSxjb2x1bW5YUHQ6dCxjb2x1bW5XaWR0aFB0OnJ9KT0+RWIoZSxuLHQsdCtyKX19ZnVuY3Rpb24gQlMoZSl7aWYoZS5jaGFyYWN0ZXJHcmlkLmFjdGl2ZSlyZXR1cm57dHlwZTplLmNoYXJhY3RlckdyaWQua2luZCxsaW5lUGl0Y2hQdDpudWxsLGNoYXJhY3RlclBpdGNoUHQ6ZS5jaGFyYWN0ZXJHcmlkLnBpdGNoUHQsY2hhclNwYWNlUHQ6ZS5jaGFyYWN0ZXJHcmlkLmRlbHRhUHR9fWZ1bmN0aW9uIFZTKGUpe2xldCB0PUJTKGUpO3JldHVybnt0eXBlOnQ/dC50eXBlOmUubGluZUdyaWQuYWN0aXZlP2BsaW5lc2A6bnVsbCxsaW5lUGl0Y2hQdDplLmxpbmVHcmlkLmFjdGl2ZT9lLmxpbmVHcmlkLnBpdGNoUHQ6bnVsbCxjaGFyYWN0ZXJQaXRjaFB0OmUuY2hhcmFjdGVyR3JpZC5hY3RpdmU/ZS5jaGFyYWN0ZXJHcmlkLnBpdGNoUHQ6bnVsbCxjaGFyU3BhY2VQdDplLmNoYXJhY3RlckdyaWQuYWN0aXZlP2UuY2hhcmFjdGVyR3JpZC5kZWx0YVB0Om51bGx9fWZ1bmN0aW9uIEhTKGUsdCl7aWYoIVF4KHQpKXJldHVybiBlO2xldCBuPXQubGluZVBpdGNoUHQ7cmV0dXJuIG48PTA/ZTplPD1uP246TWF0aC5jZWlsKGUvbikqbn1mdW5jdGlvbiBVUyhlLHQsbixyLGksYSl7bGV0IG89VlModCkscz1qQyh0LG4uYXZhaWxhYmxlV2lkdGhQdCksYz1NYXRoLm1heCgxLG4uYXZhaWxhYmxlV2lkdGhQdC10LnBoeXNpY2FsSW5kZW50TGVmdFB0LXQucGh5c2ljYWxJbmRlbnRSaWdodFB0LXMpLGw9bi5wYXJhZ3JhcGhYUHQrdC5waHlzaWNhbEluZGVudExlZnRQdCx1PXQuc3BhY2VCZWZvcmVQdCxkPXQuc3BhY2VBZnRlclB0LGY9T2JqZWN0LmZyZWV6ZSh7Li4ubn0pLHA9ci5mb250RmFtaWx5Q2xhc3NlcyxtPWkuZG9jdW1lbnRIYXNFYXN0QXNpYW5UZXh0PT09ITB8fGkudXNlRmVMYXlvdXQ9PT0hMCxoPW4uc3RhcnRZUHQrKG4uc3VwcHJlc3NTcGFjZUJlZm9yZT8wOnUpO24ud3JhcCYmKGg9bi53cmFwLnNraXBUb3BBbmRCb3R0b21CYW5kcyh7eVB0OmgsY29sdW1uWFB0Om4ucGFyYWdyYXBoWFB0LGNvbHVtbldpZHRoUHQ6bi5hdmFpbGFibGVXaWR0aFB0fSkpO2xldCBnPSgpPT57bGV0IGE9aCxzPWFTKGUsMSxvLHQuaGFzUnVieSxtLHIuY29udGV4dCxwLHQubGluZVNwYWNpbmcsaS5yZXNvbHZlZExvY2FsRm9udHMsaS5sYXlvdXRTZXJ2aWNlcz8udGV4dCxpLnBhcmFncmFwaE1hcmtTaGFwZUlucHV0LGkudXNlRmVMYXlvdXQ9PT0hMCk7cmV0dXJuIG4ud3JhcCYmKGE9bi53cmFwLmxpbmVXaW5kb3coe3RvcFlQdDphLG1pbmltdW1TdGFydFdpZHRoUHQ6QXgoZSksc3F1YXJlTWluaW11bVN0YXJ0V2lkdGhQdDpNeShBeChlKSwxKSxwcm9iZUhlaWdodFB0OnMscGFyYWdyYXBoWFB0OmwsbWF4aW11bVdpZHRoUHQ6Yyxjb2x1bW5YUHQ6bi5wYXJhZ3JhcGhYUHQsY29sdW1uV2lkdGhQdDpuLmF2YWlsYWJsZVdpZHRoUHR9KS50b3BZUHQpLHtsaW5lczpbXSxtYXJrT25seTohMCxyZXF1ZXN0ZWRTcGFjZUJlZm9yZVB0OnUscmVxdWVzdGVkU3BhY2VBZnRlclB0OmQsdW5pZm9ybVJ1YnlBZHZhbmNlUHQ6MCxjb250ZW50U3RhcnRZUHQ6YSxjb250ZW50RW5kWVB0OmErcyxsYXN0TGluZUJlbG93QmFzZWxpbmVQdDpzUyhlLG8sdC5oYXNSdWJ5LG0sci5jb250ZXh0LHAsdC5saW5lU3BhY2luZyxpLnJlc29sdmVkTG9jYWxGb250cyxpLmxheW91dFNlcnZpY2VzPy50ZXh0LGkucGFyYWdyYXBoTWFya1NoYXBlSW5wdXQsaS51c2VGZUxheW91dD09PSEwKSxwbGFjZW1lbnQ6Zn19LF89T1MoZS5ydW5zLGkpO2lmKF8ubGVuZ3RoPT09MClyZXR1cm4gZygpO2xldCB2PW4ud3JhcD97c3RhcnRQYWdlWTpoLHBhcmFYOmwsY29sdW1uWFB0Om4ucGFyYWdyYXBoWFB0LGNvbHVtbldpZHRoUHQ6bi5hdmFpbGFibGVXaWR0aFB0LGZsb2F0czpbXSxwYXJhZ3JhcGhNYXJrTGluZVN0YXJ0V2lkdGg6TXkoQXgoZSksMSksbGluZVdpbmRvdzplPT5uLndyYXAubGluZVdpbmRvdyhlKSxsaW5lQm94SDooZSxuLHIsaSxhLHMpPT50Uyh0LmxpbmVTcGFjaW5nLGUsbiwxLG8sdC5oYXNSdWJ5LGk/PzAsdC5oYXNSdWJ5P3QuaGFzRWFzdEFzaWFuVGV4dDphPz8hMSxzKSxwYWdlSDpuLm1heGltdW1ZUHR9OnZvaWQgMCx5PWtTKHIuY29udGV4dCxfLGMsYT8wOnQuZmlyc3RJbmRlbnRQdCwxLFsuLi50LnRhYlN0b3BzXSx2LHAsdC5waHlzaWNhbEluZGVudExlZnRQdCx0LmtpbnNva3Usbyx0LmRlZmF1bHRUYWJQdCxjK3QucGh5c2ljYWxJbmRlbnRSaWdodFB0K3MsdC5iYXNlUnRsLHQuaXNKdXN0aWZpZWQsdC5zdHJldGNoTGFzdExpbmUsYT8uYm91bmRhcnksdm9pZCAwLGkudmVydGljYWxHbHlwaE1lYXN1cmVtZW50LHQub3ZlcmZsb3dQdW5jdCE9PSExKTtpZih5Lmxlbmd0aD09PTApcmV0dXJuIGcoKTtsZXQgYj10Lmhhc1J1Ynk/SFMoTWF0aC5tYXgoMCwuLi55Lm1hcChlPT50Uyh0LmxpbmVTcGFjaW5nLGUuYXNjZW50LGUuZGVzY2VudCwxLG8sITAsZS5pbnRlbmRlZFNpbmdsZSx0Lmhhc0Vhc3RBc2lhblRleHQpKSksbyk6MDt0Lmhhc1J1YnkmJmE/LnVuaWZvcm1SdWJ5QWR2YW5jZVB0IT09dm9pZCAwJiYoYj1NYXRoLm1heChiLGEudW5pZm9ybVJ1YnlBZHZhbmNlUHQpKTtsZXQgeD1bXTtmb3IobGV0IGUgb2YgeSl7bGV0IG49ZS50b3BZIT09dm9pZCAwJiZlLnRvcFk+aD9lLnRvcFk6aCxyPXQuaGFzUnVieT9iOnRTKHQubGluZVNwYWNpbmcsZS5hc2NlbnQsZS5kZXNjZW50LDEsbywhMSxlLmludGVuZGVkU2luZ2xlLGUuZWFzdEFzaWFuPz8hMSxlLmdyaWRDb3VudFNpbmdsZSk7eC5wdXNoKHtsYXlvdXQ6ZSx0b3BZUHQ6bixhZHZhbmNlUHQ6cn0pLGg9bityfWxldCBTPXhbeC5sZW5ndGgtMV07cmV0dXJue2xpbmVzOngsbWFya09ubHk6ITEscmVxdWVzdGVkU3BhY2VCZWZvcmVQdDp1LHJlcXVlc3RlZFNwYWNlQWZ0ZXJQdDpkLHVuaWZvcm1SdWJ5QWR2YW5jZVB0OmIsY29udGVudFN0YXJ0WVB0OnhbMF0udG9wWVB0LGNvbnRlbnRFbmRZUHQ6aCxsYXN0TGluZUJlbG93QmFzZWxpbmVQdDpvUyhTLmFkdmFuY2VQdCxTLmxheW91dC5hc2NlbnQsUy5sYXlvdXQuZGVzY2VudCkscGxhY2VtZW50OmZ9fWZ1bmN0aW9uIFdTKGUpe2xldCB0PWUubGVhZGluZ0luZGVudFB0K2UuYXV0aG9yZWRGaXJzdEluZGVudFB0K2UubWFya2VyU2hpZnRQdDtyZXR1cm57c3RhcnRQdDp0LGVuZFB0OnQrZS5tYXJrZXJXaWR0aFB0fX1mdW5jdGlvbiBHUyhlKXtsZXQgdD1lLmF1dGhvcmVkRmlyc3RJbmRlbnRQdCtlLm1hcmtlclNoaWZ0UHQ7cmV0dXJuIGUuYmFzZVJ0bD9lLmFsaWduZWRMZWFkaW5nRWRnZVB0LXQtZS5tYXJrZXJXaWR0aFB0OmUuYWxpZ25lZExlYWRpbmdFZGdlUHQrdH1mdW5jdGlvbiBLUyhlLHQpe2xldHtudW1iZXJpbmc6bixtYXJrZXJJbnB1dDpyLHNlcnZpY2U6aX09dCxhPW4hPW51bGwmJihuLnRleHQhPT1gYHx8bi5waWNCdWxsZXRJbWFnZVBhdGghPW51bGwpJiYoIWUuYmFzZVJ0bHx8KG4/LnN1ZmZ8fGB0YWJgKT09PWB0YWJgJiZ0LmF1dGhvcmVkRmlyc3RJbmRlbnRQdDwwKTtpZighbnx8IXJ8fCFpfHwhYSlyZXR1cm4gZTtsZXQgbz1ZUyhuLHIse2F1dGhvcmVkRmlyc3RJbmRlbnRQdDp0LmF1dGhvcmVkRmlyc3RJbmRlbnRQdCxwaHlzaWNhbEluZGVudExlZnRQdDplLnBoeXNpY2FsSW5kZW50TGVmdFB0LHRhYlN0b3BzOnQudGFiU3RvcHMsZGVmYXVsdFRhYlB0OnQuZGVmYXVsdFRhYlB0Pz9lLmRlZmF1bHRUYWJQdH0saSx0LmNsdXN0ZXJHZW9tZXRyeT8/ITApO3JldHVybnsuLi5lLGZpcnN0SW5kZW50UHQ6by5ib2R5T2Zmc2V0UHQsbnVtYmVyaW5nTWFya2VyR2VvbWV0cnk6b319ZnVuY3Rpb24gcVMoZSx0LG4scixpPSEwKXtyZXR1cm4gcj97c2hhcGU6ci5zaGFwZSh7dGV4dDp0LGZvbnRTaXplUHQ6ZS5mb250U2l6ZVB0Km4sZm9udHM6ZS5mb250cyx0aGVtZUZvbnRzOmUudGhlbWVGb250cyx0aGVtZUZvbnRQcmVzZW5jZTplLnRoZW1lRm9udFByZXNlbmNlLHdlaWdodDplLndlaWdodCxzdHlsZTplLnN0eWxlLGNvbXBsZXhTY3JpcHQ6ZS5jb21wbGV4U2NyaXB0LGZvbnRIaW50OmUuZm9udEhpbnQsZWFzdEFzaWFMYW5ndWFnZTplLmVhc3RBc2lhTGFuZ3VhZ2Usa2VybmluZzplLmtlcm5pbmcsbWVhc3VyZTohMCxjbHVzdGVyR2VvbWV0cnk6aX0pLGZvbnRTaXplUHg6ZS5mb250U2l6ZVB0Km59Om51bGx9ZnVuY3Rpb24gSlMoZSx0LG4pe3JldHVybiB0LmZpbmQodD0+ZXgoZSx0KSk/P0V2KGUsWy4uLnRdLG4pfWZ1bmN0aW9uIFlTKGUsdCxuLHIsaT0hMCl7bGV0IGE9ZS5waWNCdWxsZXRJbWFnZVBhdGg/YGA6ZGUoZS50ZXh0LGUuZm9udEZhbWlseT8/bnVsbCksbz1hP3FTKHQsYSwxLHIsaSk/LnNoYXBlPz9udWxsOm51bGwscz1lLnBpY0J1bGxldEltYWdlUGF0aD9lLnBpY0J1bGxldFdpZHRoUHQ/P3QuZm9udFNpemVQdDpvPy5hZHZhbmNlUHQ/PzAsYz1lLmpjPT09YHJpZ2h0YD8tczplLmpjPT09YGNlbnRlcmA/LXMvMjowLGw9bi5hdXRob3JlZEZpcnN0SW5kZW50UHQrYytzLHU9ZS5zdWZmfHxgdGFiYCxkPWw7aWYodT09PWBzcGFjZWApZCs9cVModCxgIGAsMSxyLGkpPy5zaGFwZS5hZHZhbmNlUHQ/PzA7ZWxzZSBpZih1PT09YHRhYmAmJihkPTAsbD4wKSl7bGV0IGU9SlMobi5waHlzaWNhbEluZGVudExlZnRQdCtsLG4udGFiU3RvcHMsbi5kZWZhdWx0VGFiUHQpO2Q9ZT9lLnBvcy1uLnBoeXNpY2FsSW5kZW50TGVmdFB0Omx9cmV0dXJue2JvZHlPZmZzZXRQdDpkLG1hcmtlclRleHQ6YSxtYXJrZXJXaWR0aFB0OnMsbWFya2VyU2hpZnRQdDpjLHNoYXBlOm99fWZ1bmN0aW9uIFhTKGUsdCxuKXtsZXQgcj0wLGk9MDtmb3IobGV0IHQgb2YgZS5jb250ZW50KXtsZXQgZT10LnR5cGU9PT1gcGFyYWdyYXBoYD9uLnBhcmFncmFwaCh0KTpuLm5lc3RlZFRhYmxlKHQpO3I9TWF0aC5tYXgocixlLm1pbldpZHRoUHQpLGk9TWF0aC5tYXgoaSxlLm1heFdpZHRoUHQpfWxldCBhPU1hdGgubWF4KDAsdC5sZWZ0KStNYXRoLm1heCgwLHQucmlnaHQpO3JldHVybnttaW5XaWR0aFB0OnIrYSxtYXhXaWR0aFB0Ok1hdGgubWF4KHIsaSkrYX19ZnVuY3Rpb24gWlMoZSl7bGV0IHQ9ZS50ZXh0U2hhcGVSZXF1ZXN0LG49ZT0+ZT9bZS5hc2NpaT8/bnVsbCxlLmhpZ2hBbnNpPz9udWxsLGUuZWFzdEFzaWE/P251bGwsZS5jb21wbGV4U2NyaXB0Pz9udWxsXTpudWxsO3JldHVybiBEZyhgcGFyYWdyYXBoLWludHJpbnNpYy10ZXh0YCxbZS50ZXh0TGF5b3V0U2VydmljZT8uZmluZ2VycHJpbnQ/P251bGwsdD9bbih0LmZvbnRzKSxuKHQudGhlbWVGb250cyksdC50aGVtZUZvbnRQcmVzZW5jZT9bdC50aGVtZUZvbnRQcmVzZW5jZS5hc2NpaT8/ITEsdC50aGVtZUZvbnRQcmVzZW5jZS5oaWdoQW5zaT8/ITEsdC50aGVtZUZvbnRQcmVzZW5jZS5lYXN0QXNpYT8/ITEsdC50aGVtZUZvbnRQcmVzZW5jZS5jb21wbGV4U2NyaXB0Pz8hMV06bnVsbCx0LmZvbnRIaW50Pz9udWxsLHQuZm9udFNpemVQdCx0LndlaWdodD8/bnVsbCx0LnN0eWxlPz9udWxsLHQuY29tcGxleFNjcmlwdD8/ITEsdC5lYXN0QXNpYUxhbmd1YWdlPz9udWxsLHQuZWFzdEFzaWFGb250Q2hhcnNldD8/bnVsbCx0LmdlbmVyaWNGYW1pbHk/P251bGwsdC5sZXR0ZXJTcGFjaW5nUHQ/P251bGwsdC5rZXJuaW5nPz9udWxsXTpudWxsLGUuYm9sZCxlLml0YWxpYyx3dihlLDEpLGUuZm9udEZhbWlseSxlLmZvbnRSb3V0ZT8/bnVsbCxlLmNoYXJTY2FsZT8/MSxlLmNoYXJTcGFjaW5nPz8wLGUuZml0VGV4dFBlckdhcFB4Pz9udWxsLGUuZml0VGV4dFRyYWlsaW5nUGFkUHg/P251bGwsZS5maXRUZXh0UmVnaW9uSW5kZXg/P251bGwsZS5zbmFwVG9DaGFyYWN0ZXJHcmlkIT09ITEsZS53aWR0aEJhbGFuY2VHcmlkRGVsdGFGYWN0b3I/P251bGwsZS53aWR0aEJhbGFuY2VTcGFjZVNlcXVlbmNlPz8hMSxlLndpZHRoQmFsYW5jZVNwYWNlQWRqdXN0bWVudFB0Pz9udWxsLGUuc2NyaXB0LGUudGF0ZUNodVlva28/PyExLGUudGF0ZUNodVlva28/ZS5zb3VyY2VSdW5JbmRleD8/bnVsbDpudWxsLGUucnVieT9bZS5zb3VyY2VSdW5JbmRleD8/bnVsbCxlLnJ1YnkudGV4dCxlLnJ1YnkuZm9udFNpemVQdCxlLnJ1YnkuaHBzUmFpc2VQdD8/bnVsbF06bnVsbCxlLnZlcnRpY2FsUnVuPz8hMV0pfWZ1bmN0aW9uIFFTKGUpe2xldCB0PVtdO2ZvcihsZXQgbiBvZiBlKXtsZXQgZT10LmF0KC0xKTtpZihlJiZgdGV4dGBpbiBlJiZgdGV4dGBpbiBuJiZaUyhlKT09PVpTKG4pKXtsZXQgcj1lLnRleHQubGVuZ3RoLGk9ZS50ZXh0K24udGV4dCxhPVsuLi5lLnB1bmN0dWF0aW9uQ29tcHJlc3Npb25zPz9bXSwuLi4obi5wdW5jdHVhdGlvbkNvbXByZXNzaW9ucz8/W10pLm1hcChlPT4oe2VuZDpyK2UuZW5kLGFkanVzdG1lbnRQdDplLmFkanVzdG1lbnRQdH0pKV07dFt0Lmxlbmd0aC0xXT17Li4uZSx0ZXh0OmkscHVuY3R1YXRpb25Db21wcmVzc2lvbnM6YS5sZW5ndGg+MD9hOnZvaWQgMCx0ZXh0U2hhcGVSZXF1ZXN0OmUudGV4dFNoYXBlUmVxdWVzdD97Li4uZS50ZXh0U2hhcGVSZXF1ZXN0LHRleHQ6aX06dm9pZCAwfTtjb250aW51ZX10LnB1c2goey4uLm59KX1yZXR1cm4gdH1mdW5jdGlvbiAkUyhlLHQsbixyLGksYSl7bGV0IG89MCxzPW51bGwsYz1hPy50eXBlPT09YHNuYXBUb0NoYXJzYCYmYS5jaGFyYWN0ZXJQaXRjaFB0IT1udWxsJiZhLmNoYXJhY3RlclBpdGNoUHQ+MD9hLmNoYXJhY3RlclBpdGNoUHQ6bnVsbCxsPSgpPT57IXN8fGM9PW51bGx8fChvKz1aeChzLm5hdHVyYWxXaWR0aFB0LHMua2luZCxjKSxzPW51bGwpfTtmb3IobGV0IHUgb2YgZSl7bGV0IGU9TWF0aC5tYXgobix1LnN0YXJ0KSxkPU1hdGgubWluKHIsdS5lbmQpO2lmKGU+PWQpY29udGludWU7bGV0IGY9dC5zbGljZShlLGQpLHA9ZS11LnN0YXJ0LG09ZC11LnN0YXJ0LGg9ey4uLnUuc2VnbWVudCx0ZXh0OmYscHVuY3R1YXRpb25Db21wcmVzc2lvbnM6SHgodS5zZWdtZW50LHAsbSl9LGc9ZT0+ZS50ZXh0TGF5b3V0U2VydmljZSYmZS50ZXh0U2hhcGVSZXF1ZXN0P1l4KGUsZS50ZXh0TGF5b3V0U2VydmljZS5zaGFwZSh7Li4uZS50ZXh0U2hhcGVSZXF1ZXN0LHRleHQ6ZS50ZXh0LGZvbnRTaXplUHQ6d3YoZSwxKSxtZWFzdXJlOiEwLGNsdXN0ZXJHZW9tZXRyeTohMX0pLmFkdmFuY2VQdCxhLDEpOihpLmNvbnRleHQuZm9udD1EeChlLmJvbGQsZS5pdGFsaWMsd3YoZSwxKSxlLmZvbnRGYW1pbHksaS5mb250RmFtaWx5Q2xhc3NlcyxlLmZvbnRSb3V0ZSksWXgoZSxpLmNvbnRleHQubWVhc3VyZVRleHQoZS50ZXh0KS53aWR0aCxhLDEpKSxfPVh4KGgsYSk7aWYoXz09PWBlYXN0QXNpYWAmJmMhPW51bGwpe2woKTtsZXQgZT1oLnRleHRMYXlvdXRTZXJ2aWNlJiZoLnRleHRTaGFwZVJlcXVlc3Q/aC50ZXh0TGF5b3V0U2VydmljZS5zaGFwZSh7Li4uaC50ZXh0U2hhcGVSZXF1ZXN0LHRleHQ6Zixmb250U2l6ZVB0Ond2KGgsMSksbWVhc3VyZTohMCxjbHVzdGVyR2VvbWV0cnk6ITB9KS5jbHVzdGVyczp2b2lkIDAsdD1lPy5sZW5ndGg/bnVsbDpbLi4ubmV3IFNldChbMCwuLi5ObShmKSxmLmxlbmd0aF0pXS5zb3J0KChlLHQpPT5lLXQpLG49ZT8ubWFwKGU9Pih7c3RhcnQ6ZS5yYW5nZS5zdGFydCxlbmQ6ZS5yYW5nZS5lbmQsbmF0dXJhbFdpZHRoUHQ6WXgoey4uLmgsdGV4dDpmLnNsaWNlKGUucmFuZ2Uuc3RhcnQsZS5yYW5nZS5lbmQpLHB1bmN0dWF0aW9uQ29tcHJlc3Npb25zOkh4KGgsZS5yYW5nZS5zdGFydCxlLnJhbmdlLmVuZCl9LGUuYWR2YW5jZVB0LGEsMSl9KSk/P3Quc2xpY2UoMCwtMSkubWFwKChlLG4pPT57bGV0IHI9dFtuKzFdO3JldHVybntzdGFydDplLGVuZDpyLG5hdHVyYWxXaWR0aFB0Omcoey4uLmgsdGV4dDpmLnNsaWNlKGUscikscHVuY3R1YXRpb25Db21wcmVzc2lvbnM6SHgoaCxlLHIpfSl9fSkscj0wO2ZvcihsZXQgZSBvZiBuKWUuZW5kPD1lLnN0YXJ0fHwocis9TGIoZS5uYXR1cmFsV2lkdGhQdCxjKSk7bys9Wngobi5yZWR1Y2UoKGUsdCk9PmUrdC5uYXR1cmFsV2lkdGhQdCwwKSxfLGMsTWF0aC5tYXgoMSxyKSl9ZWxzZXtsZXQgZT1nKGgpO2lmKChfPT09YGxhdGluYHx8Xz09PWBjb21wbGV4U2NyaXB0YCkmJmMhPW51bGwpe2xldCB0PXM7dD8ua2luZD09PV8/cz17a2luZDpfLG5hdHVyYWxXaWR0aFB0OnQubmF0dXJhbFdpZHRoUHQrZX06KGwoKSxzPXtraW5kOl8sbmF0dXJhbFdpZHRoUHQ6ZX0pfWVsc2UgbCgpLG8rPWV9fXJldHVybiBsKCksb31mdW5jdGlvbiBlQyhlLHQsbil7bGV0IHI9QlModCksaT0wO2ZvcihsZXQgYT0wO2E8ZS5sZW5ndGg7YSs9MSl7bGV0IG89ZVthXTtpZighKGB0ZXh0YGluIG8pfHxvLnRleHQubGVuZ3RoPT09MCljb250aW51ZTtsZXQgcz1bXSxjPWBgLGw9ZT0+e2xldCB0PWMubGVuZ3RoO2MrPWUudGV4dCxzLnB1c2goe3NlZ21lbnQ6ZSxzdGFydDp0LGVuZDpjLmxlbmd0aH0pfTtmb3IobChvKTthKzE8ZS5sZW5ndGg7KXtsZXQgdD1lW2ErMV07aWYoIShgdGV4dGBpbiB0KXx8dC5qb2luUHJldiE9PSEwKWJyZWFrO2wodCksYSs9MX1sZXQgdT0wO2ZvcihsZXQgZSBvZiBDUyhjKSl7bGV0IGE9ZS5yZXBsYWNlKC9ccyskL3UsYGApLG89dSxsPXUrYS5sZW5ndGg7aWYodSs9ZS5sZW5ndGgsIWEpY29udGludWU7aWYoIWRTKGEpKXtpPU1hdGgubWF4KGksJFMocyxjLG8sbCxuLHIpKTtjb250aW51ZX1sZXQgZD1bMCwuLi5ObShhKSxhLmxlbmd0aF0sZj1bXTtmb3IobGV0IGU9MTtlPGQubGVuZ3RoO2UrPTEpZi5wdXNoKHt0ZXh0OmEuc2xpY2UoZFtlLTFdLGRbZV0pLHN0YXJ0Om8rZFtlLTFdLGVuZDpvK2RbZV19KTtsZXQgcD1bXSxtPWZbMF07Zm9yKGxldCBlPTE7ZTxmLmxlbmd0aDtlKz0xKXtsZXQgbj1bLi4ubS50ZXh0XS5hdCgtMSk/LmNvZGVQb2ludEF0KDApLHI9ZltlXS50ZXh0LmNvZGVQb2ludEF0KDApO24hPT12b2lkIDAmJnIhPT12b2lkIDAmJiF0LmtpbnNva3UubGluZUVuZEZvcmJpZGRlbi5oYXMobikmJiF0LmtpbnNva3UubGluZVN0YXJ0Rm9yYmlkZGVuLmhhcyhyKT8ocC5wdXNoKG0pLG09ZltlXSk6bT17dGV4dDptLnRleHQrZltlXS50ZXh0LHN0YXJ0Om0uc3RhcnQsZW5kOmZbZV0uZW5kfX1tJiZwLnB1c2gobSk7Zm9yKGxldCBlIG9mIHApaT1NYXRoLm1heChpLCRTKHMsYyxlLnN0YXJ0LGUuZW5kLG4scikpfX1yZXR1cm4gaX1mdW5jdGlvbiB0QyhlLHQsbil7bGV0IHI9KG4uYmFzZVJ0bD9uLnBoeXNpY2FsSW5kZW50UmlnaHRQdDpuLnBoeXNpY2FsSW5kZW50TGVmdFB0KSsodD09PTA/bi5maXJzdEluZGVudFB0OjApK2UueE9mZnNldDtyZXR1cm57c3RhcnRQdDpyLGVuZFB0OnIrZS5zZWdtZW50cy5yZWR1Y2UoKGUsdCk9PmUrdC5tZWFzdXJlZFdpZHRoLDApfX1mdW5jdGlvbiBuQyhlLHQsbixyLGksYSl7aWYoIU51bWJlci5pc0Zpbml0ZShuKXx8bjwwKXRocm93IFJhbmdlRXJyb3IoYG1heGltdW1XaWR0aFB0IG11c3QgYmUgZmluaXRlIGFuZCBub24tbmVnYXRpdmVgKTtpZihuPT09MClyZXR1cm57bWluV2lkdGhQdDowLG1heFdpZHRoUHQ6MH07bGV0IG89UVMoT1MoZS5ydW5zLGkpKSxzPU1hdGgubWF4KDEsbi10LnBoeXNpY2FsSW5kZW50TGVmdFB0LXQucGh5c2ljYWxJbmRlbnRSaWdodFB0KSxjPW8ubGVuZ3RoPT09MD9bXTprUyhyLmNvbnRleHQsbyxzLHQuZmlyc3RJbmRlbnRQdCwxLFsuLi50LnRhYlN0b3BzXSx2b2lkIDAsci5mb250RmFtaWx5Q2xhc3Nlcyx0LnBoeXNpY2FsSW5kZW50TGVmdFB0LHQua2luc29rdSxCUyh0KSx0LmRlZmF1bHRUYWJQdCxzK3QucGh5c2ljYWxJbmRlbnRSaWdodFB0LHQuYmFzZVJ0bCx0LmlzSnVzdGlmaWVkLHQuc3RyZXRjaExhc3RMaW5lLHZvaWQgMCxgaW50cmluc2ljYCxpLnZlcnRpY2FsR2x5cGhNZWFzdXJlbWVudCx0Lm92ZXJmbG93UHVuY3QhPT0hMSksbD10LmJhc2VSdGw/dC5waHlzaWNhbEluZGVudExlZnRQdDp0LnBoeXNpY2FsSW5kZW50UmlnaHRQdCx1PTAsZD0wO2MuZm9yRWFjaCgoZSxuKT0+e2xldCByPXRDKGUsbix0KTt1PU1hdGgubWluKHUsci5zdGFydFB0KSxkPU1hdGgubWF4KGQsci5lbmRQdCl9KTtsZXQgZj1hP1dTKHtsZWFkaW5nSW5kZW50UHQ6dC5iYXNlUnRsP3QucGh5c2ljYWxJbmRlbnRSaWdodFB0OnQucGh5c2ljYWxJbmRlbnRMZWZ0UHQsYXV0aG9yZWRGaXJzdEluZGVudFB0OmUuaW5kZW50Rmlyc3QsbWFya2VyU2hpZnRQdDphLm1hcmtlclNoaWZ0UHQsbWFya2VyV2lkdGhQdDphLm1hcmtlcldpZHRoUHR9KTp2b2lkIDA7ZiYmKHU9TWF0aC5taW4odSxmLnN0YXJ0UHQpLGQ9TWF0aC5tYXgoZCxmLmVuZFB0KSk7bGV0IHA9TWF0aC5taW4obixNYXRoLm1heCgwLGQtdStsKSksbT1lQyhvLHQscik7Zm9yKGxldCBlIG9mIGMpe2xldCB0PTAsbj1lLnNlZ21lbnRzLnJlZHVjZSgoZSx0KT0+ZSt0Lm1lYXN1cmVkV2lkdGgsMCk7Zm9yKGxldCByIG9mIGUuc2VnbWVudHMpdCs9ci5tZWFzdXJlZFdpZHRoLGBpbWFnZVBhdGhgaW4gciYmIXIuYW5jaG9yfHxgbWF0aGBpbiByP209TWF0aC5tYXgobSxyLm1lYXN1cmVkV2lkdGgpOmBpc1RhYmBpbiByJiYobT1NYXRoLm1heChtLHIucmVzb2x2ZWRBbGlnbm1lbnQ9PT1gbGVmdGA/dDpuKSl9bGV0IGg9dC5iYXNlUnRsP3QucGh5c2ljYWxJbmRlbnRSaWdodFB0OnQucGh5c2ljYWxJbmRlbnRMZWZ0UHQsZz1oLF89TWF0aC5taW4oMCxnKSx2PU1hdGgubWF4KDAsZyttKSx5PWgrdC5maXJzdEluZGVudFB0O3JldHVybiBfPU1hdGgubWluKF8seSksdj1NYXRoLm1heCh2LHkrbSksZiYmKF89TWF0aC5taW4oXyxmLnN0YXJ0UHQpLHY9TWF0aC5tYXgodixmLmVuZFB0KSkse21pbldpZHRoUHQ6TWF0aC5taW4obixNYXRoLm1heCgwLHYtXytsKSksbWF4V2lkdGhQdDpwfX1mdW5jdGlvbiByQyhlLHQpe2lmKCFlfHx0Py5zdXBwcmVzc0JvdHRvbSlyZXR1cm4gMDtsZXQgbj1lLmJvdHRvbTtyZXR1cm4hbnx8bi5zdHlsZT09PWBub25lYD8wOihuLnNwYWNlPz8wKSsobi53aWR0aD8/MCkvMn1mdW5jdGlvbiBpQyhlKXtyZXR1cm4gZT09bnVsbHx8ZS5zdHlsZT09PWBub25lYD9udWxsOmV9ZnVuY3Rpb24gYUMoZSx0KXtsZXQgbj1pQyhlKSxyPWlDKHQpO3JldHVybiBuPT1udWxsfHxyPT1udWxsP249PW51bGwmJnI9PW51bGw6bi5zdHlsZT09PXIuc3R5bGUmJm4ud2lkdGg9PT1yLndpZHRoJiYobi5zcGFjZT8/MCk9PT0oci5zcGFjZT8/MCkmJihuLmNvbG9yPz9udWxsKT09PShyLmNvbG9yPz9udWxsKX1mdW5jdGlvbiBvQyhlLHQpe3JldHVybiFlfHwhdD8hMTphQyhlLnRvcCx0LnRvcCkmJmFDKGUuYm90dG9tLHQuYm90dG9tKSYmYUMoZS5sZWZ0LHQubGVmdCkmJmFDKGUucmlnaHQsdC5yaWdodCkmJmFDKGUuYmV0d2Vlbix0LmJldHdlZW4pfWZ1bmN0aW9uIHNDKGUpe3JldHVybiBlP1tlLnRvcCxlLnJpZ2h0LGUuYm90dG9tLGUubGVmdCxlLmJldHdlZW5dLnNvbWUoZT0+ZSE9bnVsbCYmZS5zdHlsZSE9PWBub25lYCk6ITF9ZnVuY3Rpb24gY0MoZSx0KXtyZXR1cm4hZXx8IXR8fGUuZnJhbWVQcnx8dC5mcmFtZVByPyExOnNDKGUuYm9yZGVycykmJnNDKHQuYm9yZGVycykmJm9DKGUuYm9yZGVycyx0LmJvcmRlcnMpfWZ1bmN0aW9uIGxDKGUsdCxuLHI9ITEpe2xldCBpPShlLHQpPT5yPyEhZSYmISF0JiYhIWUuZnJhbWVQciYmISF0LmZyYW1lUHImJnNDKGUuYm9yZGVycykmJnNDKHQuYm9yZGVycykmJm9DKGUuYm9yZGVycyx0LmJvcmRlcnMpOmNDKGUsdCksYT1pKGUsdCksbz1pKHQsbikscz10LmJvcmRlcnM/LmJldHdlZW47cmV0dXJuIE9iamVjdC5mcmVlemUoe3RvcDphP3MmJnMuc3R5bGUhPT1gbm9uZWA/YGJldHdlZW5gOmBub25lYDpgdG9wYCxib3R0b206bz9gbm9uZWA6YGJvdHRvbWB9KX1mdW5jdGlvbiB1QyhlLHQsbixyLGksYSl7cmV0dXJuIG5DKGUsdCxuLHIsaSxhKS5tYXhXaWR0aFB0fWZ1bmN0aW9uIGRDKGUpe2xldCB0PWU7cmV0dXJuIERnKGB3OmZyYW1lUHJgLFt0LmRyb3BDYXAsdC5saW5lcyx0LndyYXAsdC5oQW5jaG9yLHQudkFuY2hvcix0LmhSdWxlLHQuaFNwYWNlLHQudlNwYWNlLHQudz8/bnVsbCx0Lmg/P251bGwsdC54Pz9udWxsLHQueT8/bnVsbCx0LnhBbGlnbj8/bnVsbCx0LnlBbGlnbj8/bnVsbCx0Ll9fYW5jaG9yTG9jaz09PSEwXSl9ZnVuY3Rpb24gZkMoZSl7bGV0IHQ9bmV3IFdlYWtNYXA7Zm9yKGxldCBuPTA7bjxlLmxlbmd0aDspe2xldCByPWVbbl07aWYocj8udHlwZSE9PWBwYXJhZ3JhcGhgfHwhci5mcmFtZVByKXtuKz0xO2NvbnRpbnVlfWxldCBpPWRDKHIuZnJhbWVQciksYT1bcl0sbz1bbl0scz1uKzE7Zm9yKDtzPGUubGVuZ3RoOyl7bGV0IHQ9ZVtzXTtpZih0Py50eXBlIT09YHBhcmFncmFwaGB8fCF0LmZyYW1lUHJ8fGRDKHQuZnJhbWVQcikhPT1pKWJyZWFrO2EucHVzaCh0KSxvLnB1c2gocykscys9MX1sZXQgYz1PYmplY3QuZnJlZXplKHtpZDpgJHtpfToke259YCxvd25lcjpyLG1lbWJlcnM6T2JqZWN0LmZyZWV6ZShhKSxzb3VyY2VJbmRpY2VzOk9iamVjdC5mcmVlemUobyksZnJhbWVQcjpyLmZyYW1lUHJ9KTtmb3IobGV0IGUgb2YgYSl0LnNldChlLGMpO249c31yZXR1cm4gdH1jb25zdCBwQz1uZXcgV2Vha01hcCxtQz1uZXcgV2Vha01hcDtmdW5jdGlvbiBoQyhlKXtsZXQgdD1mQyhlKTtmb3IobGV0IG49MDtuPGUubGVuZ3RoO24rPTEpe2xldCByPWVbbl07aWYoci50eXBlIT09YHBhcmFncmFwaGApY29udGludWU7bGV0IGk9dC5nZXQocik7aSYmcEMuc2V0KHIsaSk7bGV0IGE9ZVtuLTFdLG89ZVtuKzFdLHM9YT8udHlwZT09PWBwYXJhZ3JhcGhgJiZ0LmdldChhKT09PWk/YTpudWxsLGM9bz8udHlwZT09PWBwYXJhZ3JhcGhgJiZ0LmdldChvKT09PWk/bzpudWxsO21DLnNldChyLGxDKGk/czphPy50eXBlPT09YHBhcmFncmFwaGA/YTpudWxsLHIsaT9jOm8/LnR5cGU9PT1gcGFyYWdyYXBoYD9vOm51bGwsaSE9PXZvaWQgMCkpfX1jb25zdCBnQz1lPT5wQy5nZXQoZSksX0M9ZT0+bUMuZ2V0KGUpO2Z1bmN0aW9uIHZDKGUpe3JldHVybntzdG9yeTplLnN0b3J5LGNvbnRhaW5lcnM6Wy4uLmUuY29udGFpbmVycyx7a2luZDpgdGFibGVDZWxsYH1dLGxpbmVOdW1iZXJpbmdFbGlnaWJsZTohMX19ZnVuY3Rpb24geUMoZSl7cmV0dXJuIGUucnVucy5zb21lKGU9PmUudHlwZT09PWB0ZXh0YCYmISFlLnJ1YnkpfWZ1bmN0aW9uIGJDKGUpe3JldHVybiBlLnJ1bnMuc29tZShlPT5lLnR5cGU9PT1gdGV4dGAmJlR2LnRlc3QoZS50ZXh0KSl9ZnVuY3Rpb24geEMoZSl7Zm9yKGxldCB0IG9mIGUpe2lmKHQudHlwZT09PWBwYXJhZ3JhcGhgKXtpZihiQyh0KSlyZXR1cm4hMDtjb250aW51ZX1pZih0LnR5cGU9PT1gdGFibGVgKXtmb3IobGV0IGUgb2YgdC5yb3dzKWZvcihsZXQgdCBvZiBlLmNlbGxzKWlmKHhDKHQuY29udGVudCkpcmV0dXJuITB9fXJldHVybiExfWZ1bmN0aW9uIFNDKGUsdD17bm9ybWFsU3R5bGVGb250U2l6ZVB0OjEwfSl7cmV0dXJuIGhDKGUuYm9keSkse2tpbnNva3U6bm0oZS5zZXR0aW5ncyksZGVmYXVsdFRhYlB0OndTKGUuc2V0dGluZ3MpLGNoYXJhY3RlclNwYWNpbmdDb250cm9sOmUuc2V0dGluZ3M/LmNoYXJhY3RlclNwYWNpbmdDb250cm9sLG1hdGhEZWZKYzplLnNldHRpbmdzPy5tYXRoRGVmSmMsZG9jdW1lbnRIYXNFYXN0QXNpYW5UZXh0OnhDKGUuYm9keSksbm9ybWFsU3R5bGVGb250U2l6ZVB0OnQubm9ybWFsU3R5bGVGb250U2l6ZVB0LGNvbXBhdDp7YWRqdXN0TGluZUhlaWdodEluVGFibGU6ZS5zZXR0aW5ncz8uYWRqdXN0TGluZUhlaWdodEluVGFibGU/PyExLHVzZUZlTGF5b3V0OmUuc2V0dGluZ3M/LnVzZUZlTGF5b3V0Pz8hMSxiYWxhbmNlU2luZ2xlQnl0ZURvdWJsZUJ5dGVXaWR0aDplLnNldHRpbmdzPy5iYWxhbmNlU2luZ2xlQnl0ZURvdWJsZUJ5dGVXaWR0aD8/ITF9fX1mdW5jdGlvbiBDQyhlKXtsZXQgdD1lLnBhZ2VXaWR0aC1lLm1hcmdpbkxlZnQtZS5tYXJnaW5SaWdodCxuPWUuY29sdW1ucztpZighbnx8bi5jb3VudDw9MSlyZXR1cm5be3hQdDplLm1hcmdpbkxlZnQsd1B0Ok1hdGgubWF4KDEsdCl9XTtpZighbi5lcXVhbFdpZHRoJiZuLmNvbHMubGVuZ3RoPjApe2xldCB0PVtdLHI9ZS5tYXJnaW5MZWZ0O2ZvcihsZXQgZSBvZiBuLmNvbHMpdC5wdXNoKHt4UHQ6cix3UHQ6TWF0aC5tYXgoMSxlLndpZHRoUHQpfSkscis9ZS53aWR0aFB0K2Uuc3BhY2VQdDtyZXR1cm4gdH1sZXQgcj1NYXRoLm1heCgxLCh0LShuLmNvdW50LTEpKm4uc3BhY2VQdCkvbi5jb3VudCk7cmV0dXJuIEFycmF5LmZyb20oe2xlbmd0aDpuLmNvdW50fSwodCxpKT0+KHt4UHQ6ZS5tYXJnaW5MZWZ0K2kqKHIrbi5zcGFjZVB0KSx3UHQ6cn0pKX1mdW5jdGlvbiB3QyhlKXtzd2l0Y2goZSl7Y2FzZWBsaW5lc2A6Y2FzZWBsaW5lc0FuZENoYXJzYDpjYXNlYHNuYXBUb0NoYXJzYDpyZXR1cm4gZTtkZWZhdWx0OnJldHVybmBub25lYH19ZnVuY3Rpb24gVEMoZSl7cmV0dXJuIGU9PT1gbGluZXNgfHxlPT09YGxpbmVzQW5kQ2hhcnNgfHxlPT09YHNuYXBUb0NoYXJzYH1mdW5jdGlvbiBFQyhlKXtyZXR1cm4gZT09PWBsaW5lc0FuZENoYXJzYHx8ZT09PWBzbmFwVG9DaGFyc2B9ZnVuY3Rpb24gREMoZSx0KXtyZXR1cm57Z2VvbWV0cnk6e3BhZ2VXaWR0aDp0LnBhZ2VXaWR0aCxwYWdlSGVpZ2h0OnQucGFnZUhlaWdodCxtYXJnaW5Ub3A6dC5tYXJnaW5Ub3AsbWFyZ2luUmlnaHQ6dC5tYXJnaW5SaWdodCxtYXJnaW5Cb3R0b206dC5tYXJnaW5Cb3R0b20sbWFyZ2luTGVmdDp0Lm1hcmdpbkxlZnQsaGVhZGVyRGlzdGFuY2U6dC5oZWFkZXJEaXN0YW5jZSxmb290ZXJEaXN0YW5jZTp0LmZvb3RlckRpc3RhbmNlfSxjb2x1bW5zOkNDKHQpLGNvbHVtblNlcGFyYXRvcjp0LmNvbHVtbnM/LnNlcD09PSEwLGdyaWQ6e2tpbmQ6d0ModC5kb2NHcmlkVHlwZSksbGluZVBpdGNoUHQ6dC5kb2NHcmlkTGluZVBpdGNoPz9udWxsLGNoYXJTcGFjZVB0OnQuZG9jR3JpZENoYXJTcGFjZT09bnVsbD9udWxsOnQuZG9jR3JpZENoYXJTcGFjZS80MDk2fSx0ZXh0RGlyZWN0aW9uOnQudGV4dERpcmVjdGlvbj8/YGxyVGJgLHNlY3Rpb25CaWRpOiExLHZlcnRpY2FsQWxpZ25tZW50OnQudkFsaWduPz9gdG9wYCxsaW5lTnVtYmVyaW5nOnQubGluZU51bWJlcmluZz8/dm9pZCAwfX1mdW5jdGlvbiBPQyhlKXtyZXR1cm4gZS5jb250YWluZXJzLnNvbWUoZT0+ZS5raW5kPT09YHRhYmxlQ2VsbGApfWZ1bmN0aW9uIGtDKGUsdCxuLHIpe2xldCBpPVRDKHQuZ3JpZC5raW5kKSYmdC5ncmlkLmxpbmVQaXRjaFB0IT1udWxsJiZ0LmdyaWQubGluZVBpdGNoUHQ+MCYmci5zbmFwVG9HcmlkIT09ITEmJnIubGluZVNwYWNpbmc/LnJ1bGUhPT1gZXhhY3RgJiYoIU9DKG4pfHxlLmNvbXBhdC5hZGp1c3RMaW5lSGVpZ2h0SW5UYWJsZSksYT1FQyh0LmdyaWQua2luZCksbz1yLmJpZGk9PT0hMCxzPU9DKG4pLGM9YT9lLm5vcm1hbFN0eWxlRm9udFNpemVQdCsodC5ncmlkLmNoYXJTcGFjZVB0Pz8wKTpudWxsLGw9dC5ncmlkLmtpbmQ9PT1gbGluZXNBbmRDaGFyc2A/YzpudWxsLHU9ci5udW1iZXJpbmcsZD11IT1udWxsJiYodS50ZXh0IT09YGB8fHUucGljQnVsbGV0SW1hZ2VQYXRoIT1udWxsKSxmPW8mJmQmJih1LnN1ZmZ8fGB0YWJgKT09PWB0YWJgJiZyLmluZGVudEZpcnN0PDA7cmV0dXJue2xpbmVHcmlkOnthY3RpdmU6aSxwaXRjaFB0Omk/dC5ncmlkLmxpbmVQaXRjaFB0Om51bGx9LGNoYXJhY3RlckdyaWQ6e2FjdGl2ZTphLGtpbmQ6YT90LmdyaWQua2luZDpudWxsLGRlbHRhUHQ6YT90LmdyaWQuY2hhclNwYWNlUHQ/PzA6MCxwaXRjaFB0OmMhPW51bGwmJmM+MD9jOm51bGx9LHJpZ2h0SW5kZW50R3JpZDp7cGl0Y2hQdDpsIT1udWxsJiZsPjA/bDpudWxsLHBhcmFncmFwaEFsbG93c0FkanVzdG1lbnQ6ci5hZGp1c3RSaWdodEluZCE9PSExJiZSYihzKX0scGh5c2ljYWxJbmRlbnRMZWZ0UHQ6bz9yLmluZGVudFJpZ2h0OnIuaW5kZW50TGVmdCxwaHlzaWNhbEluZGVudFJpZ2h0UHQ6bz9yLmluZGVudExlZnQ6ci5pbmRlbnRSaWdodCxmaXJzdEluZGVudFB0OmY/MDpyLmluZGVudEZpcnN0LGxpbmVTcGFjaW5nOnIubGluZVNwYWNpbmcsc3BhY2VCZWZvcmVQdDpyLnNwYWNlQmVmb3JlLHNwYWNlQWZ0ZXJQdDpyLnNwYWNlQWZ0ZXIsYmFzZVJ0bDpvLGlzSnVzdGlmaWVkOkxTKHIuYWxpZ25tZW50KSxzdHJldGNoTGFzdExpbmU6UlMoci5hbGlnbm1lbnQpLHRhYlN0b3BzOkFDKHIpLGhhc1J1Ynk6eUMociksaGFzRWFzdEFzaWFuVGV4dDpiQyhyKSxraW5zb2t1OmUua2luc29rdSxkZWZhdWx0VGFiUHQ6ZS5kZWZhdWx0VGFiUHQsb3ZlcmZsb3dQdW5jdDpyLm92ZXJmbG93UHVuY3QhPT0hMSxtYXRoRGVmSmM6ZS5tYXRoRGVmSmN9fWZ1bmN0aW9uIEFDKGUpe2xldCB0PWUudGFiU3RvcHMuZmlsdGVyKGU9PmUuYWxpZ25tZW50IT09YGNsZWFyYCkubWFwKGU9Pih7Li4uZX0pKSxuPWUuaW5kZW50TGVmdCxyPXQuc29tZShlPT5lLnBvcz09PW4mJkJiKGUuYWxpZ25tZW50KSk7cmV0dXJuKGUuaW5kZW50Rmlyc3Q8MCYmIXI/W3twb3M6bixhbGlnbm1lbnQ6YGxlZnRgLGxlYWRlcjpgbm9uZWB9LC4uLnRdOnQpLnNvcnQoKGUsdCk9PmUucG9zLXQucG9zKX1mdW5jdGlvbiBqQyhlLHQpe2xldHtwaXRjaFB0Om4scGFyYWdyYXBoQWxsb3dzQWRqdXN0bWVudDpyfT1lLnJpZ2h0SW5kZW50R3JpZDtyZXR1cm4hcnx8bj09bnVsbD8wOnpiKHQsbil9JCh7aWQ6YHdvcmQtZGVmYXVsdC1saW5lLW51bWJlci1kaXN0YW5jZWAsZXZpZGVuY2U6e2tpbmQ6YHJlZ3Jlc3Npb24tdGVzdGAscmVmZXJlbmNlOmBwYWNrYWdlcy9kb2N4L3NyYy9sYXlvdXQvY29tcGF0aWJpbGl0eS50ZXN0LnRzI3VzZXMgV29yZCdzIG9ic2VydmVkIDE4cHQgbGluZS1udW1iZXIgZGlzdGFuY2Ugb25seSB3aGVuIG9taXR0ZWRgfSxkZXNjcmlwdGlvbjpgRUNNQS0zNzYgwqcxNy42LjggbGVhdmVzIGFuIG9taXR0ZWQgbGluZS1udW1iZXIgZGlzdGFuY2UgaW1wbGVtZW50YXRpb24tZGVmaW5lZC4gUHJlc2VydmUgV29yZC1jb21wYXRpYmxlIDE4cHQgcGxhY2VtZW50IG9ubHkgd2hlbiB0aGUgYXV0aG9yZWQgZGlzdGFuY2UgaXMgYWJzZW50LmB9KSwkKHtpZDpgd29yZC1jb250aW51b3VzLXNlY3Rpb24tcGFnZS1udW1iZXItcmVzdGFydGAsZXZpZGVuY2U6e2tpbmQ6YHJlZ3Jlc3Npb24tdGVzdGAscmVmZXJlbmNlOmBwYWNrYWdlcy9kb2N4L3NyYy9wYWdlLW51bWJlci1maWVsZC1yZW5kZXIudGVzdC50cyNyZXN0YXJ0cyBhIHNwaWxsaW5nIGNvbnRpbnVvdXMgc2VjdGlvbiBhZnRlciBpdHMgc2hhcmVkIGZpcnN0IHBhZ2VgfSxkZXNjcmlwdGlvbjpgSXNzdWUgIzgwNCByZWNvcmRzIHRoYXQgV29yZCBhbmNob3JzIGEgY29udGludW91cyBzZWN0aW9uIHBhZ2UtbnVtYmVyIHJlc3RhcnQgdG8gdGhlIHNlY3Rpb24gZmlyc3QgYXBwZWFyYW5jZSBvbiB0aGUgc2hhcmVkIHBoeXNpY2FsIHBhZ2UsIHNvIGl0cyBuZXh0IG93bmVkIHBhZ2UgYWR2YW5jZXMgZnJvbSB0aGF0IGFwcGVhcmFuY2UuYH0pLCQoe2lkOmB3b3JkLXRyYWlsaW5nLWVtcHR5LW1hcmstYmFzZWxpbmUtYWRtaXNzaW9uYCxldmlkZW5jZTp7a2luZDpgcmVncmVzc2lvbi10ZXN0YCxyZWZlcmVuY2U6YHBhY2thZ2VzL2RvY3gvc3JjL3BhZ2luYXRlLXRyYWlsaW5nLWVtcHR5LW1hcmstZml0LnRlc3QudHMjS0VFUFMgYW4gaW5rbGVzcyBlbXB0eSBwYXJhZ3JhcGggb24gdGhlIHBhZ2Ugd2hlbiBpbmstYmVhcmluZyBjb250ZW50IGZvbGxvd3MgYW5kIG9ubHkgaXRzIGJlbG93LWJhc2VsaW5lIHdoaXRlc3BhY2Ugb3ZlcmZsb3dzYH0sZGVzY3JpcHRpb246YEF0IHRoZSB1bnJlc2VydmVkIHBoeXNpY2FsIGJvZHkgZWRnZSwgV29yZCBhZG1pdHMgYW4gdW5kZWNvcmF0ZWQgbm9uLXRlcm1pbmFsIGVtcHR5IHBhcmFncmFwaCBtYXJrIGJ5IGl0cyBiYXNlbGluZSB3aGVuIGxhdGVyIGluayBmb2xsb3dzIGluIHRoZSBzYW1lIGZsb3cuYH0pLCQoe2lkOmB3b3JkLXNlY3Rpb24tbWFyay1ibGFuay1wYWdlLXN1cHByZXNzaW9uYCxldmlkZW5jZTp7a2luZDpgb2ZmaWNlLW9ic2VydmF0aW9uYCxzeW50aGV0aWNGaXh0dXJlSWQ6YG5leHQtcGFnZS1zZWN0aW9uLW1hcmstYm90dG9tLWVkZ2UtYWRtaXNzaW9uYCxhcHBsaWNhdGlvbjpgTWljcm9zb2Z0IFdvcmRgLHZlcnNpb246YDE2LjExMS4xYCxwbGF0Zm9ybTpgbWFjT1MgMjYuNS4yYH0sZGVzY3JpcHRpb246YEZvciB0aGUgb2JzZXJ2ZWQgbmV4dFBhZ2UgYm91bmRhcnksIFdvcmQgY29uc3VtZXMgYW4gdW5kZWNvcmF0ZWQgaW5rbGVzcyBwYXJhZ3JhcGggdGhhdCBjYXJyaWVzIHRoZSBzZWN0aW9uIGJvdW5kYXJ5IG9uIHRoZSBvdXRnb2luZyBwYWdlIGluc3RlYWQgb2YgY3JlYXRpbmcgYW4gb3RoZXJ3aXNlIGVtcHR5IGludGVybWVkaWF0ZSBwYWdlIHNvbGVseSBmb3IgdGhhdCBub24tcGFpbnRpbmcgbWFyay4gVGhlIGZvbGxvd2luZyBzZWN0aW9uIHN0aWxsIHN0YXJ0cyBpdHMgcmVxdWVzdGVkIHBhZ2UuIE90aGVyIHNlY3Rpb24tc3RhcnQga2luZHMgcmVtYWluIG91dHNpZGUgdGhpcyBvYnNlcnZhdGlvbi5gfSksJCh7aWQ6YHdvcmQtYm9vay1mb2xkLWd1dHRlci1yaWdodC1lZGdlYCxldmlkZW5jZTp7a2luZDpgbWljcm9zb2Z0LW5vdGVgLHJlZmVyZW5jZTpgW01TLU9JMjk1MDBdIMKnwqcyLjEuMzg5LCAyLjEuMzkxYH0sZGVzY3JpcHRpb246YEZvciBib29rLWZvbGQgcHJpbnRpbmcgV29yZCBwbGFjZXMgdGhlIGF1dG9tYXRpYyBndXR0ZXIgYXQgdGhlIHJpZ2h0LW1hcmdpbiBiaXNlY3RvciBlZGdlLCBpbmNsdWRpbmcgcmV2ZXJzZSBib29rLWZvbGQgbW9kZS5gfSk7ZnVuY3Rpb24gTUMoZSl7cmV0dXJuIGU/PzE4fWZ1bmN0aW9uIE5DKGUsdCxuKXtyZXR1cm4gZSt0LW59ZnVuY3Rpb24gUEMoZSl7cmV0dXJuIWUuaGFzQ29udGludWF0aW9uQm91bmRhcnkmJmUuaW5rbGVzcyYmZS51bmRlY29yYXRlZCYmIWUua2VlcE5leHQmJmUubWFya1Jlc2VydmVQdD09PTAmJmUucGFnZUJvdHRvbUlzVW5yZXNlcnZlZCYmZS5waHlzaWNhbFJlZ2lvbkJvdHRvbUlzQWN0aXZlP2UuZm9sbG93c05leHRQYWdlU2VjdGlvbkJvdW5kYXJ5P01hdGgubWF4KDAsZS5tYXJrRXh0ZW50UHQpOmUuaGFzRm9sbG93aW5nSW5rP2UubWFya0JlbG93QmFzZWxpbmVQdDowOjB9ZnVuY3Rpb24gRkMoKXtyZXR1cm5gcmlnaHRgfWZ1bmN0aW9uIElDKGUpe2lmKGUuc2VjdGlvbk9jY3VycmVuY2VJZC5sZW5ndGg9PT0wKXRocm93IFJhbmdlRXJyb3IoYFNlY3Rpb24gb2NjdXJyZW5jZSBpZCBtdXN0IG5vdCBiZSBlbXB0eWApO2lmKGUuY29sdW1ucy5sZW5ndGg9PT0wKXRocm93IFJhbmdlRXJyb3IoYEEgcGFnZS1mbG93IHNlY3Rpb24gcmVxdWlyZXMgYXQgbGVhc3Qgb25lIGNvbHVtbmApO3JldHVybiBPYmplY3QuZnJlZXplKHtzZWN0aW9uT2NjdXJyZW5jZUlkOmUuc2VjdGlvbk9jY3VycmVuY2VJZCxnZW9tZXRyeTpPYmplY3QuZnJlZXplKHsuLi5lLmdlb21ldHJ5fSksY29sdW1uczpPYmplY3QuZnJlZXplKGUuY29sdW1ucy5tYXAoZT0+T2JqZWN0LmZyZWV6ZSh7Li4uZX0pKSksdGV4dERpcmVjdGlvbjplLnRleHREaXJlY3Rpb24sc2VjdGlvbkJpZGk6ZS5zZWN0aW9uQmlkaT8/ITEsZ3JpZDpPYmplY3QuZnJlZXplKGUuZ3JpZD8/e2tpbmQ6YG5vbmVgLGxpbmVQaXRjaFB0Om51bGwsY2hhclNwYWNlUHQ6bnVsbH0pfSl9ZnVuY3Rpb24gTEMoZSl7cmV0dXJuIHpDKGUuZ2VvbWV0cnkubWFyZ2luVG9wKX1mdW5jdGlvbiBSQyhlKXtyZXR1cm4gZS5nZW9tZXRyeS5wYWdlSGVpZ2h0LXpDKGUuZ2VvbWV0cnkubWFyZ2luQm90dG9tKX1mdW5jdGlvbiB6QyhlKXtyZXR1cm4gTWF0aC5hYnMoZSl9ZnVuY3Rpb24gQkMoZSl7cmV0dXJue3BhZ2VXaWR0aDplLnBhZ2VIZWlnaHQscGFnZUhlaWdodDplLnBhZ2VXaWR0aCxtYXJnaW5MZWZ0OmUubWFyZ2luVG9wLG1hcmdpblRvcDplLm1hcmdpblJpZ2h0LG1hcmdpblJpZ2h0OmUubWFyZ2luQm90dG9tLG1hcmdpbkJvdHRvbTplLm1hcmdpbkxlZnQsaGVhZGVyRGlzdGFuY2U6ZS5oZWFkZXJEaXN0YW5jZSxmb290ZXJEaXN0YW5jZTplLmZvb3RlckRpc3RhbmNlfX1mdW5jdGlvbiBWQyhlKXtyZXR1cm57cGFnZVdpZHRoOmUucGFnZUhlaWdodCxwYWdlSGVpZ2h0OmUucGFnZVdpZHRoLG1hcmdpblRvcDplLm1hcmdpbkxlZnQsbWFyZ2luUmlnaHQ6ZS5tYXJnaW5Ub3AsbWFyZ2luQm90dG9tOmUubWFyZ2luUmlnaHQsbWFyZ2luTGVmdDplLm1hcmdpbkJvdHRvbSxoZWFkZXJEaXN0YW5jZTplLmhlYWRlckRpc3RhbmNlLGZvb3RlckRpc3RhbmNlOmUuZm9vdGVyRGlzdGFuY2V9fWZ1bmN0aW9uIEhDKGUpe3JldHVybiBlPT09YHRiUmxgfHxlPT09YHRiUmxWYHx8ZT09PWB0YkxyVmB8fGU9PT1gYnRMcmB9ZnVuY3Rpb24gVUMoZSx0KXtpZighTnVtYmVyLmlzSW50ZWdlcih0KXx8dDwwKXRocm93IFJhbmdlRXJyb3IoYFBoeXNpY2FsIHBhZ2UgaW5kZXggbXVzdCBiZSBhIG5vbi1uZWdhdGl2ZSBpbnRlZ2VyYCk7bGV0e3BhZ2VXaWR0aDpuLHBhZ2VIZWlnaHQ6cn09ZS5waHlzaWNhbEdlb21ldHJ5LHttYXJnaW5Ub3A6aSxtYXJnaW5SaWdodDphLG1hcmdpbkJvdHRvbTpvLG1hcmdpbkxlZnQ6c309ZS5waHlzaWNhbEdlb21ldHJ5LGM9ZS5ib29rRm9sZFByaW50aW5nfHxlLmJvb2tGb2xkUmV2UHJpbnRpbmc7cmV0dXJuIGM/KG4vPTIsRkMoKT09PWByaWdodGAmJihhKz1lLmd1dHRlclB0KSk6ZS5wcmludFR3b09uT25lPyhyLz0yLGkrPWUuZ3V0dGVyUHQpOmUuZ3V0dGVyQXRUb3AmJiFlLm1pcnJvck1hcmdpbnM/aSs9ZS5ndXR0ZXJQdDplLnJ0bEd1dHRlcj9hKz1lLmd1dHRlclB0OnMrPWUuZ3V0dGVyUHQsIWMmJiFlLnByaW50VHdvT25PbmUmJmUubWlycm9yTWFyZ2lucyYmdCUyPT0xJiYoW3MsYV09W2Esc10pLHsuLi5lLnBoeXNpY2FsR2VvbWV0cnkscGFnZVdpZHRoOm4scGFnZUhlaWdodDpyLG1hcmdpblRvcDppLG1hcmdpblJpZ2h0OmEsbWFyZ2luQm90dG9tOm8sbWFyZ2luTGVmdDpzfX1mdW5jdGlvbiBXQyhlLHQsbil7bGV0IHI9VUModCxuKSxpPUhDKHQudGV4dERpcmVjdGlvbik/QkMocik6cjtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Li4uZSxnZW9tZXRyeTpPYmplY3QuZnJlZXplKGkpLGNvbHVtbnM6T2JqZWN0LmZyZWV6ZShDQyh7Li4uaSx0aXRsZVBhZ2U6ITEsZXZlbkFuZE9kZEhlYWRlcnM6ITEsY29sdW1uczp0LmNvbHVtbnN9KS5tYXAoZT0+T2JqZWN0LmZyZWV6ZShlKSkpfSl9ZnVuY3Rpb24gR0MoZSl7cmV0dXJue3BhZ2VXaWR0aDplLnBhZ2VXaWR0aCxwYWdlSGVpZ2h0OmUucGFnZUhlaWdodCxtYXJnaW5Ub3A6ZS5tYXJnaW5Ub3AsbWFyZ2luUmlnaHQ6ZS5tYXJnaW5SaWdodCxtYXJnaW5Cb3R0b206ZS5tYXJnaW5Cb3R0b20sbWFyZ2luTGVmdDplLm1hcmdpbkxlZnQsaGVhZGVyRGlzdGFuY2U6ZS5oZWFkZXJEaXN0YW5jZSxmb290ZXJEaXN0YW5jZTplLmZvb3RlckRpc3RhbmNlfX1mdW5jdGlvbiBLQygpe3JldHVybntwYWdlV2lkdGg6NjEyLHBhZ2VIZWlnaHQ6NzkyLG1hcmdpblRvcDo3MixtYXJnaW5SaWdodDo3MixtYXJnaW5Cb3R0b206NzIsbWFyZ2luTGVmdDo3MixoZWFkZXJEaXN0YW5jZTozNixmb290ZXJEaXN0YW5jZTozNn19ZnVuY3Rpb24gcUMoZSx0PSExKXtsZXQgbj1lLmRvY0dyaWRUeXBlPT09YGxpbmVzYHx8ZS5kb2NHcmlkVHlwZT09PWBsaW5lc0FuZENoYXJzYHx8ZS5kb2NHcmlkVHlwZT09PWBzbmFwVG9DaGFyc2A/ZS5kb2NHcmlkVHlwZTpgbm9uZWA7cmV0dXJuIE9iamVjdC5mcmVlemUoe2dlb21ldHJ5Ok9iamVjdC5mcmVlemUoR0MoZSkpLGNvbHVtbnM6T2JqZWN0LmZyZWV6ZShDQyhlKS5tYXAoZT0+T2JqZWN0LmZyZWV6ZShlKSkpLGNvbHVtblNlcGFyYXRvcjplLmNvbHVtbnM/LnNlcD09PSEwLGdyaWQ6T2JqZWN0LmZyZWV6ZSh7a2luZDpuLGxpbmVQaXRjaFB0OmUuZG9jR3JpZExpbmVQaXRjaD8/bnVsbCxjaGFyU3BhY2VQdDplLmRvY0dyaWRDaGFyU3BhY2U9PW51bGw/bnVsbDplLmRvY0dyaWRDaGFyU3BhY2UvNDA5Nn0pLHRleHREaXJlY3Rpb246ZS50ZXh0RGlyZWN0aW9uPz9gbHJUYmAsc2VjdGlvbkJpZGk6dCx2ZXJ0aWNhbEFsaWdubWVudDplLnZBbGlnbj8/YHRvcGAsLi4uZS5saW5lTnVtYmVyaW5nPT09bnVsbHx8ZS5saW5lTnVtYmVyaW5nPT09dm9pZCAwP3t9OntsaW5lTnVtYmVyaW5nOk9iamVjdC5mcmVlemUoey4uLmUubGluZU51bWJlcmluZ30pfX0pfWZ1bmN0aW9uIEpDKGUsdCl7c3dpdGNoKGUuZGlzcGxheSl7Y2FzZWBmaXJzdFBhZ2VgOnJldHVybiB0O2Nhc2Vgbm90Rmlyc3RQYWdlYDpyZXR1cm4hdDtkZWZhdWx0OnJldHVybiEwfX1mdW5jdGlvbiBZQyhlKXtyZXR1cm4gZSE9PXZvaWQgMCYmL15bMC05YS1mQS1GXXs2fSQvLnRlc3QoZSk/YCMke2V9YDpgIzAwMDAwMGB9ZnVuY3Rpb24gWEMoZSl7cmV0dXJuIGUhPT12b2lkIDAmJk51bWJlci5pc0Zpbml0ZShlLnNwYWNlKT9lLnNwYWNlOjB9ZnVuY3Rpb24gWkMoZSx0LG4scil7bGV0IGk9TnVtYmVyLmlzRmluaXRlKGUud2lkdGgpP2Uud2lkdGg6LjU7cmV0dXJuIE9iamVjdC5mcmVlemUoe2VkZ2U6dCxmcm9tOk9iamVjdC5mcmVlemUobiksdG86T2JqZWN0LmZyZWV6ZShyKSxjb2xvcjpZQyhlLmNvbG9yKSx3aWR0aFB0OmksLi4uQ3YoZS5zdHlsZSxpKX0pfWZ1bmN0aW9uIFFDKGUsdCxuLHIpe2lmKCFlfHwhSkMoZSxyKSlyZXR1cm4gbnVsbDtsZXR7Z2VvbWV0cnk6aX09dCxhPWUub2Zmc2V0RnJvbT09PWB0ZXh0YCxvPWE/aS5tYXJnaW5MZWZ0OjAscz1hP2kucGFnZVdpZHRoLWkubWFyZ2luUmlnaHQ6aS5wYWdlV2lkdGgsYz1hP3pDKGkubWFyZ2luVG9wKTowLGw9YT9pLnBhZ2VIZWlnaHQtekMoaS5tYXJnaW5Cb3R0b20pOmkucGFnZUhlaWdodCx1PWMrWEMoZS50b3ApLGQ9bC1YQyhlLmJvdHRvbSksZj1vK1hDKGUubGVmdCkscD1zLVhDKGUucmlnaHQpLG09W107aWYoZS50b3AmJm0ucHVzaChaQyhlLnRvcCxgdG9wYCx7eFB0OmYseVB0OnV9LHt4UHQ6cCx5UHQ6dX0pKSxlLmJvdHRvbSYmbS5wdXNoKFpDKGUuYm90dG9tLGBib3R0b21gLHt4UHQ6Zix5UHQ6ZH0se3hQdDpwLHlQdDpkfSkpLGUubGVmdCYmbS5wdXNoKFpDKGUubGVmdCxgbGVmdGAse3hQdDpmLHlQdDp1fSx7eFB0OmYseVB0OmR9KSksZS5yaWdodCYmbS5wdXNoKFpDKGUucmlnaHQsYHJpZ2h0YCx7eFB0OnAseVB0OnV9LHt4UHQ6cCx5UHQ6ZH0pKSxtLmxlbmd0aD09PTApcmV0dXJuIG51bGw7bGV0IGg9YnYoY3YodC50ZXh0RGlyZWN0aW9uKSxuKTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7ek9yZGVyOmUuek9yZGVyPT09YGJhY2tgP2BiYWNrYDpgZnJvbnRgLGxvZ2ljYWxUb1BoeXNpY2FsOk9iamVjdC5mcmVlemUoey4uLmgubG9naWNhbFRvUGh5c2ljYWx9KSxzZWdtZW50czpPYmplY3QuZnJlZXplKG0pfSl9ZnVuY3Rpb24gJEMoZSx0LG4pe3JldHVybmBwYWdlOiR7ZX06cmVnaW9uOiR7ZW5jb2RlVVJJQ29tcG9uZW50KHQpfTpjb2x1bW46JHtufWB9ZnVuY3Rpb24gZXcoZSl7cmV0dXJuIHR3KGUpLHt4UHQ6MCx5UHQ6MCx3aWR0aFB0OmUud2lkdGhQdCxoZWlnaHRQdDplLmhlaWdodFB0LGNvbnRlbnRUb3BQdDplLmNvbnRlbnRUb3BQdCxjb250ZW50Qm90dG9tUHQ6ZS5jb250ZW50Qm90dG9tUHR9fWZ1bmN0aW9uIHR3KGUpe2lmKCFOdW1iZXIuaXNGaW5pdGUoZS53aWR0aFB0KXx8IU51bWJlci5pc0Zpbml0ZShlLmhlaWdodFB0KXx8IU51bWJlci5pc0Zpbml0ZShlLmNvbnRlbnRUb3BQdCl8fCFOdW1iZXIuaXNGaW5pdGUoZS5jb250ZW50Qm90dG9tUHQpfHxlLndpZHRoUHQ8PTB8fGUuaGVpZ2h0UHQ8PTB8fGUuY29udGVudFRvcFB0PDB8fGUuY29udGVudFRvcFB0PmUuY29udGVudEJvdHRvbVB0fHxlLmNvbnRlbnRCb3R0b21QdD5lLmhlaWdodFB0KXRocm93IFJhbmdlRXJyb3IoYEVmZmVjdGl2ZSBwYWdlIGVkZ2VzIG11c3Qgc2F0aXNmeSAwIDw9IGNvbnRlbnRUb3BQdCA8PSBjb250ZW50Qm90dG9tUHQgPD0gaGVpZ2h0UHRgKX1mdW5jdGlvbiBudyhlLHQpe2lmKGUubGVuZ3RoPT09MCl0aHJvdyBSYW5nZUVycm9yKGAke3R9IG11c3Qgbm90IGJlIGVtcHR5YCl9ZnVuY3Rpb24gcncoZSx0KXtpZihlJiZ0PT09dm9pZCAwKXRocm93IFJhbmdlRXJyb3IoYFBhZ2UtYm9yZGVyIGZpbmFsaXphdGlvbiByZXF1aXJlcyBleHBsaWNpdCBzZWN0aW9uLW93bmVkIHBhZ2UgaWRlbnRpdHlgKTtyZXR1cm4gdD8/ITF9ZnVuY3Rpb24gaXcoZSx0KXtyZXR1cm4gZS5sZW5ndGg9PT10Lmxlbmd0aCYmZS5ldmVyeSgoZSxuKT0+e2xldCByPXRbbl07cmV0dXJuIHIhPT12b2lkIDAmJmUueFB0PT09ci54UHQmJmUud1B0PT09ci53UHR9KX1mdW5jdGlvbiBhdyhlLHQpe3JldHVybiBlPT09dHx8ZSE9PXZvaWQgMCYmdCE9PXZvaWQgMCYmZS5zdGFydD09PXQuc3RhcnQmJmUuY291bnRCeT09PXQuY291bnRCeSYmZS5kaXN0YW5jZT09PXQuZGlzdGFuY2UmJmUucmVzdGFydD09PXQucmVzdGFydH1mdW5jdGlvbiBvdyhlLHQpe3JldHVybiBlLmdlb21ldHJ5LnBhZ2VXaWR0aD09PXQuZ2VvbWV0cnkucGFnZVdpZHRoJiZlLmdlb21ldHJ5LnBhZ2VIZWlnaHQ9PT10Lmdlb21ldHJ5LnBhZ2VIZWlnaHQmJmUuZ2VvbWV0cnkubWFyZ2luVG9wPT09dC5nZW9tZXRyeS5tYXJnaW5Ub3AmJmUuZ2VvbWV0cnkubWFyZ2luUmlnaHQ9PT10Lmdlb21ldHJ5Lm1hcmdpblJpZ2h0JiZlLmdlb21ldHJ5Lm1hcmdpbkJvdHRvbT09PXQuZ2VvbWV0cnkubWFyZ2luQm90dG9tJiZlLmdlb21ldHJ5Lm1hcmdpbkxlZnQ9PT10Lmdlb21ldHJ5Lm1hcmdpbkxlZnQmJmUuZ2VvbWV0cnkuaGVhZGVyRGlzdGFuY2U9PT10Lmdlb21ldHJ5LmhlYWRlckRpc3RhbmNlJiZlLmdlb21ldHJ5LmZvb3RlckRpc3RhbmNlPT09dC5nZW9tZXRyeS5mb290ZXJEaXN0YW5jZSYmaXcoZS5jb2x1bW5zLHQuY29sdW1ucykmJmUuY29sdW1uU2VwYXJhdG9yPT09dC5jb2x1bW5TZXBhcmF0b3ImJmUudGV4dERpcmVjdGlvbj09PXQudGV4dERpcmVjdGlvbiYmZS5zZWN0aW9uQmlkaT09PSEwPT0odC5zZWN0aW9uQmlkaT09PSEwKSYmZS5ncmlkLmtpbmQ9PT10LmdyaWQua2luZCYmZS5ncmlkLmxpbmVQaXRjaFB0PT09dC5ncmlkLmxpbmVQaXRjaFB0JiZlLmdyaWQuY2hhclNwYWNlUHQ9PT10LmdyaWQuY2hhclNwYWNlUHQmJmUudmVydGljYWxBbGlnbm1lbnQ9PT10LnZlcnRpY2FsQWxpZ25tZW50JiZhdyhlLmxpbmVOdW1iZXJpbmcsdC5saW5lTnVtYmVyaW5nKX1mdW5jdGlvbiBzdyhlKXtpZihjdihlLnNlY3Rpb24udGV4dERpcmVjdGlvbikhPT1lLndyaXRpbmdNb2RlKXRocm93IFJhbmdlRXJyb3IoYFNlY3Rpb24gcmVnaW9uIHdyaXRpbmcgbW9kZSBtdXN0IGFncmVlIHdpdGggaXRzIHNlY3Rpb24gdGV4dCBkaXJlY3Rpb25gKTtsZXQgdD1lLnNlY3Rpb24uc2VjdGlvbkJpZGk9PT0hMD9gcnRsYDpgbHRyYDtpZihlLmNvbHVtbkZsb3dEaXJlY3Rpb24hPT12b2lkIDAmJmUuY29sdW1uRmxvd0RpcmVjdGlvbiE9PXQpdGhyb3cgUmFuZ2VFcnJvcihgU2VjdGlvbiByZWdpb24gY29sdW1uIGZsb3cgZGlyZWN0aW9uIG11c3QgYWdyZWUgd2l0aCBzZWN0UHIgYmlkaWApO2xldCBuPWUuY29sdW1uSW5kZXhlcz8/ZS5zZWN0aW9uLmNvbHVtbnMubWFwKChlLHQpPT50KTtpZihlLmNvbHVtbnMubGVuZ3RoIT09bi5sZW5ndGh8fG4uc29tZSgodCxyKT0+IU51bWJlci5pc0ludGVnZXIodCl8fHQ8MHx8dD49ZS5zZWN0aW9uLmNvbHVtbnMubGVuZ3RofHxyPjAmJnQ8PW5bci0xXSl8fGUuY29sdW1ucy5zb21lKCh0LHIpPT57bGV0IGk9ZS5zZWN0aW9uLmNvbHVtbnNbbltyXV07cmV0dXJuIGk9PT12b2lkIDB8fHQuaW5saW5lU3RhcnRQdCE9PWkueFB0fHx0LmlubGluZUV4dGVudFB0IT09aS53UHR9KSl0aHJvdyBSYW5nZUVycm9yKGBTZWN0aW9uIHJlZ2lvbiBjb2x1bW5zIG11c3QgZXF1YWwgaXRzIG5vcm1hbGl6ZWQgc2VjdGlvbiBjb2x1bW5zYCl9ZnVuY3Rpb24gY3coZSl7aWYoIU51bWJlci5pc0ludGVnZXIoZSl8fGU8MCl0aHJvdyBSYW5nZUVycm9yKGBMYXlvdXQgcGFnZSBpbmRleCBtdXN0IGJlIGEgbm9uLW5lZ2F0aXZlIGludGVnZXJgKX1mdW5jdGlvbiBsdyhlLHQsbil7bGV0IHI9W10saT1bXSxhPW5ldyBNYXAsbz1uZXcgU2V0LHM9bmV3IFNldCxjLGw9W107Zm9yKGxldCB1IG9mIG4pe2lmKG53KHUuaWQsYFNlY3Rpb24gcmVnaW9uIGlkYCksbncodS5zZWN0aW9uT2NjdXJyZW5jZUlkLGBTZWN0aW9uIG9jY3VycmVuY2UgaWRgKSxvLmhhcyh1LmlkKXx8cy5oYXModS5zZWN0aW9uT2NjdXJyZW5jZUlkKSl0aHJvdyBSYW5nZUVycm9yKGBTZWN0aW9uIHJlZ2lvbiBhbmQgb2NjdXJyZW5jZSBpZGVudGl0aWVzIG11c3QgYmUgdW5pcXVlYCk7aWYoby5hZGQodS5pZCkscy5hZGQodS5zZWN0aW9uT2NjdXJyZW5jZUlkKSxjIT09dm9pZCAwJiZjIT09dS53cml0aW5nTW9kZSl0aHJvdyBSYW5nZUVycm9yKGBPbmUgcGh5c2ljYWwgcGFnZSBjYW5ub3QgbWl4IHdyaXRpbmcgbW9kZXNgKTtjPXUud3JpdGluZ01vZGUsc3codSk7bGV0IG49bXYoe3dpZHRoUHQ6dS5zZWN0aW9uLmdlb21ldHJ5LnBhZ2VXaWR0aCxoZWlnaHRQdDp1LnNlY3Rpb24uZ2VvbWV0cnkucGFnZUhlaWdodH0sdS53cml0aW5nTW9kZSk7aWYobi53aWR0aFB0IT09dC53aWR0aFB0fHxuLmhlaWdodFB0IT09dC5oZWlnaHRQdCl0aHJvdyBSYW5nZUVycm9yKGBTZWN0aW9uIHJlZ2lvbnMgb24gb25lIHBoeXNpY2FsIHBhZ2UgbXVzdCB1c2UgdGhlIHNhbWUgcGFnZSBib3g6IGV4cGVjdGVkICR7bi53aWR0aFB0fXgke24uaGVpZ2h0UHR9LCBnb3QgJHt0LndpZHRoUHR9eCR7dC5oZWlnaHRQdH1gKTtsZXQgZD1wdih0LHUud3JpdGluZ01vZGUpLGY9ZC53aWR0aFB0LHA9ZC5oZWlnaHRQdDtpZighTnVtYmVyLmlzRmluaXRlKHUuYmxvY2tTdGFydFB0KXx8IU51bWJlci5pc0Zpbml0ZSh1LmJsb2NrRW5kUHQpfHx1LmJsb2NrU3RhcnRQdDwwfHx1LmJsb2NrRW5kUHQ8dS5ibG9ja1N0YXJ0UHR8fHUuYmxvY2tFbmRQdD5wKXRocm93IFJhbmdlRXJyb3IoYFNlY3Rpb24gcmVnaW9ucyBtdXN0IGJlIGluc2lkZSB0aGUgbG9naWNhbCBwYWdlYCk7aWYodS5jb2x1bW5zLmxlbmd0aD09PTApdGhyb3cgUmFuZ2VFcnJvcihgU2VjdGlvbiByZWdpb24gbXVzdCBjb250YWluIGEgY29sdW1uYCk7bGV0IG09dS5jb2x1bW5JbmRleGVzPz91LnNlY3Rpb24uY29sdW1ucy5tYXAoKGUsdCk9PnQpLGg9MCxnPWJ2KHUud3JpdGluZ01vZGUsdCksXz11LmNvbHVtbnMubWFwKCh0LG4pPT57bGV0IHI9bVtuXTtpZighTnVtYmVyLmlzRmluaXRlKHQuaW5saW5lU3RhcnRQdCl8fCFOdW1iZXIuaXNGaW5pdGUodC5pbmxpbmVFeHRlbnRQdCl8fHQuaW5saW5lU3RhcnRQdDwwfHx0LmlubGluZUV4dGVudFB0PD0wfHx0LmlubGluZVN0YXJ0UHQrdC5pbmxpbmVFeHRlbnRQdD5mfHx0LmlubGluZVN0YXJ0UHQ8aCl0aHJvdyBSYW5nZUVycm9yKGBDb2x1bW5zIG11c3QgYmUgb3JkZXJlZCwgZGlzam9pbnQsIGFuZCBpbnNpZGUgdGhlIGxvZ2ljYWwgcGFnZWApO2g9dC5pbmxpbmVTdGFydFB0K3QuaW5saW5lRXh0ZW50UHQ7bGV0IG89JEMoZSx1LmlkLHIpO2lmKGEuaGFzKG8pKXRocm93IFJhbmdlRXJyb3IoYER1cGxpY2F0ZSBmbG93IGRvbWFpbiAke299YCk7bGV0IHM9e3hQdDp0LmlubGluZVN0YXJ0UHQseVB0OnUuYmxvY2tTdGFydFB0LHdpZHRoUHQ6dC5pbmxpbmVFeHRlbnRQdCxoZWlnaHRQdDp1LmJsb2NrRW5kUHQtdS5ibG9ja1N0YXJ0UHR9LGM9dnYoZy5sb2dpY2FsVG9QaHlzaWNhbCxzKTtpZihsLnNvbWUoZT0+Yy54UHQ8ZS54UHQrZS53aWR0aFB0JiZlLnhQdDxjLnhQdCtjLndpZHRoUHQmJmMueVB0PGUueVB0K2UuaGVpZ2h0UHQmJmUueVB0PGMueVB0K2MuaGVpZ2h0UHQpKXRocm93IFJhbmdlRXJyb3IoYFNlY3Rpb24gZmxvdyBkb21haW5zIG9uIG9uZSBwYWdlIG11c3QgYmUgcGh5c2ljYWxseSBkaXNqb2ludGApO3JldHVybiBsLnB1c2goYyksaS5wdXNoKHtpZDpvLGtpbmQ6YGJvZHlgLGxvZ2ljYWxCb3VuZHM6cyxwaHlzaWNhbEJvdW5kczpjfSksYS5zZXQobyx1LnNlY3Rpb25PY2N1cnJlbmNlSWQpLG99KTtyLnB1c2goe2lkOnUuaWQsc2VjdGlvbk9jY3VycmVuY2VJZDp1LnNlY3Rpb25PY2N1cnJlbmNlSWQsY29vcmRpbmF0ZVNwYWNlOmcsYmxvY2tTdGFydFB0OnUuYmxvY2tTdGFydFB0LGJsb2NrRW5kUHQ6dS5ibG9ja0VuZFB0LGNvbHVtbkZsb3dEaXJlY3Rpb246dS5jb2x1bW5GbG93RGlyZWN0aW9uPz8odS5zZWN0aW9uLnNlY3Rpb25CaWRpPT09ITA/YHJ0bGA6YGx0cmApLGNvbHVtbkluZGV4ZXM6T2JqZWN0LmZyZWV6ZShbLi4ubV0pLGZsb3dEb21haW5JZHM6XyxzZWN0aW9uOnUuc2VjdGlvbn0pfXJldHVybntyZWdpb25zOnIsZG9tYWluczppLHNlY3Rpb25CeURvbWFpbjphfX1mdW5jdGlvbiB1dyhlLHQpe2lmKGUua2luZD09PWBwYXJhZ3JhcGhgKXt0KGUpLGUuZHJhd2luZ3MuZm9yRWFjaChlPT51dyhlLHQpKSxlLnRleHRCb3hlcy5mb3JFYWNoKGU9PnV3KGUsdCkpO3JldHVybn1pZihlLmtpbmQ9PT1gdGFibGVgKXtkdyhlLHQpO3JldHVybn1lLmtpbmQ9PT1gdGV4dGJveGAmJmZ3KGUsdCl9ZnVuY3Rpb24gZHcoZSx0KXtmb3IobGV0IG4gb2YgZS5yb3dzKWZvcihsZXQgZSBvZiBuLmNlbGxzKWZvcihsZXQgbiBvZiBlLmJsb2Nrcyl1dyhuLmxheW91dCx0KX1mdW5jdGlvbiBmdyhlLHQpe2Uuc3RvcnkuYmxvY2tzLmZvckVhY2goZT0+dXcoZSx0KSl9ZnVuY3Rpb24gcHcoZSx0LG4pe2xldCByPVtdLGk9bmV3IFNldDtmb3IobGV0IGEgb2YgZSl7bGV0IGU9bi5nZXQoYS5mbG93RG9tYWluSWQpPz90O3V3KGEsdD0+e2ZvcihsZXQgbiBvZiB0LmJvb2ttYXJrU3RhcnRzPz9bXSkhbnx8aS5oYXMobil8fChpLmFkZChuKSxyLnB1c2goe25hbWU6bixub2RlSWQ6dC5pZCxzZWN0aW9uT2NjdXJyZW5jZUlkOmV9KSl9KX1yZXR1cm4gcn1mdW5jdGlvbiBtdyhlKXtsZXQgdD1lLnNlY3Rpb25SZWdpb25zPz9bXSxuPW5ldyBNYXAodC5tYXAoZT0+W2UuaWQsZV0pKSxyPW5ldyBNYXA7Zm9yKGxldCBlIG9mIHQpZm9yKGxldCB0IG9mIGUuZmxvd0RvbWFpbklkcylyLnNldCh0LGUuc2VjdGlvbk9jY3VycmVuY2VJZCk7Zm9yKGxldCBpIG9mIGUuZmxvd0RvbWFpbnMpe2lmKGkua2luZCE9PWBmb290bm90ZWAmJmkua2luZCE9PWBlbmRub3RlYCljb250aW51ZTtsZXQgZT1pLnNlY3Rpb25SZWdpb25JZD9uLmdldChpLnNlY3Rpb25SZWdpb25JZCk6dFswXTtlJiZyLnNldChpLmlkLGUuc2VjdGlvbk9jY3VycmVuY2VJZCl9cmV0dXJuIHJ9ZnVuY3Rpb24gaHcoZSx0PW13KGUpKXtyZXR1cm4gcHcoWV8oZSksZS5zZWN0aW9uT2NjdXJyZW5jZUlkPz9gYCx0KX1mdW5jdGlvbiBndyhlKXtyZXR1cm4gZS5wYXJpdHlCbGFuaz9lOk9iamVjdC5mcmVlemUoey4uLmUsYm9va21hcmtTdGFydHM6T2JqZWN0LmZyZWV6ZShbLi4uaHcoZSldKX0pfWZ1bmN0aW9uIF93KGUpe2N3KGUucGFnZUluZGV4KSxudyhlLnNlY3Rpb25PY2N1cnJlbmNlSWQsYFBhZ2Utc3RhcnQgc2VjdGlvbiBvY2N1cnJlbmNlIGlkYCk7bGV0e3JlZ2lvbnM6dCxkb21haW5zOm4sc2VjdGlvbkJ5RG9tYWluOnJ9PWx3KGUucGFnZUluZGV4LGUucGh5c2ljYWxQYWdlLGUuc2VjdGlvblJlZ2lvbnMpLGk9ZS5zZWN0aW9uUmVnaW9uc1swXSxhPWk/LnBhZ2VCb3JkZXJzPz9lLnBhZ2VCb3JkZXJzO2lmKGkhPT12b2lkIDAmJihlLnNlY3Rpb25PY2N1cnJlbmNlSWQhPT1pLnNlY3Rpb25PY2N1cnJlbmNlSWR8fCFvdyhlLnNlY3Rpb24saS5zZWN0aW9uKSkpdGhyb3cgUmFuZ2VFcnJvcihgUGFnZS1zdGFydCBzZWN0aW9uIGNvbnRleHQgbXVzdCBlcXVhbCB0aGUgZmlyc3Qgc2VjdGlvbiByZWdpb25gKTtyZXR1cm57cGFnZUluZGV4OmUucGFnZUluZGV4LGdlb21ldHJ5OmV3KGUucGh5c2ljYWxQYWdlKSxmbG93RG9tYWluczpuLHNlY3Rpb246ZS5zZWN0aW9uLHNlY3Rpb25PY2N1cnJlbmNlSWQ6ZS5zZWN0aW9uT2NjdXJyZW5jZUlkLHBhcml0eUJsYW5rOiExLGJvb2ttYXJrU3RhcnRzOnB3KGUucGFpbnQubWFwKCh7bm9kZTplfSk9PmUpLGUuc2VjdGlvbk9jY3VycmVuY2VJZCxyKSxwYWdlTnVtYmVyOmUucGFnZU51bWJlcixzZWN0aW9uUmVnaW9uczp0LGNvbHVtblNlcGFyYXRvcnM6U3YodCkscGFnZUJvcmRlcjpRQyhhLGUuc2VjdGlvbixlLnBoeXNpY2FsUGFnZSxydyhhLGUuZmlyc3RTZWN0aW9uT3duZWRQYWdlKSksbGF5ZXJzOktfKGUucGFpbnQpLHJlYWRpbmdPcmRlcjplLnJlYWRpbmdPcmRlci5tYXAoZT0+ZS5pZCl9fWZ1bmN0aW9uIHZ3KGUpe3JldHVybiBjdyhlLnBhZ2VJbmRleCksbncoZS5zZWN0aW9uT2NjdXJyZW5jZUlkLGBQYWdlLXN0YXJ0IHNlY3Rpb24gb2NjdXJyZW5jZSBpZGApLHR3KGUucGh5c2ljYWxQYWdlKSxPYmplY3QuZnJlZXplKHsuLi5lLHNlY3Rpb25SZWdpb25zOk9iamVjdC5mcmVlemUoW10pLHBhaW50Ok9iamVjdC5mcmVlemUoW10pLHJlYWRpbmdPcmRlcjpPYmplY3QuZnJlZXplKFtdKX0pfWZ1bmN0aW9uIHl3KGUsdCl7cmV0dXJuIE9iamVjdC5mcmVlemUoey4uLmUsc2VjdGlvblJlZ2lvbnM6T2JqZWN0LmZyZWV6ZShbLi4uZS5zZWN0aW9uUmVnaW9ucyx0XSl9KX1mdW5jdGlvbiBidyhlLHQsbil7cmV0dXJuIE9iamVjdC5mcmVlemUoey4uLmUscGFpbnQ6T2JqZWN0LmZyZWV6ZShbLi4uZS5wYWludCx0XSkscmVhZGluZ09yZGVyOm4/T2JqZWN0LmZyZWV6ZShbLi4uZS5yZWFkaW5nT3JkZXIsdC5ub2RlXSk6ZS5yZWFkaW5nT3JkZXJ9KX1mdW5jdGlvbiB4dyhlLHQsbil7cmV0dXJuIF93KHsuLi5lLHBhZ2VOdW1iZXI6dCxmaXJzdFNlY3Rpb25Pd25lZFBhZ2U6bn0pfWZ1bmN0aW9uIFN3KGUpe3JldHVybiBjdyhlLnBhZ2VJbmRleCksbncoZS5zZWN0aW9uT2NjdXJyZW5jZUlkLGBQYWdlLXN0YXJ0IHNlY3Rpb24gb2NjdXJyZW5jZSBpZGApLHtwYWdlSW5kZXg6ZS5wYWdlSW5kZXgsZ2VvbWV0cnk6ZXcoZS5waHlzaWNhbFBhZ2UpLGZsb3dEb21haW5zOltdLHNlY3Rpb246ZS5zZWN0aW9uLHNlY3Rpb25PY2N1cnJlbmNlSWQ6ZS5zZWN0aW9uT2NjdXJyZW5jZUlkLHBhcml0eUJsYW5rOiEwLGJvb2ttYXJrU3RhcnRzOltdLHBhZ2VOdW1iZXI6ZS5wYWdlTnVtYmVyLHNlY3Rpb25SZWdpb25zOltdLGNvbHVtblNlcGFyYXRvcnM6W10scGFnZUJvcmRlcjpRQyhlLnBhZ2VCb3JkZXJzLGUuc2VjdGlvbixlLnBoeXNpY2FsUGFnZSxydyhlLnBhZ2VCb3JkZXJzLGUuZmlyc3RTZWN0aW9uT3duZWRQYWdlKSksbGF5ZXJzOktfKFtdKSxyZWFkaW5nT3JkZXI6W119fWZ1bmN0aW9uIEN3KGUpe2lmKGUubGVuZ3RoPT09MClyZXR1cm4gbnVsbDtsZXQgdD1NYXRoLm1pbiguLi5lLm1hcChlPT5lLnhQdCkpLG49TWF0aC5taW4oLi4uZS5tYXAoZT0+ZS55UHQpKSxyPU1hdGgubWF4KC4uLmUubWFwKGU9PmUueFB0K2Uud2lkdGhQdCkpLGk9TWF0aC5tYXgoLi4uZS5tYXAoZT0+ZS55UHQrZS5oZWlnaHRQdCkpO3JldHVybnt4UHQ6dCx5UHQ6bix3aWR0aFB0OnItdCxoZWlnaHRQdDppLW59fWNvbnN0IHd3PXtGTE9XX09WRVJMQVA6ITAsQk9UVE9NX01BUkdJTl9JTlZBU0lPTjohMCxGTE9XX0RPTUFJTl9JTlZBU0lPTjohMCxJTlZBTElEX1JFRkVSRU5DRTohMCxJTlZBTElEX0dFT01FVFJZOiEwLElOVkFMSURfVkFMVUU6ITAsTUlTU0lOR19SRVNPVVJDRTohMCxOT05fQ09OVkVSR0VOQ0U6ITAsVU5TVVBQT1JURURfRkVBVFVSRTohMH0sVHc9e2JvZHk6ITAsaGVhZGVyOiEwLGZvb3RlcjohMCxmb290bm90ZTohMCxlbmRub3RlOiEwLHRleHRib3g6ITB9LEV3PW5ldyBTZXQoT2JqZWN0LmtleXMod3cpKSxEdz1uZXcgU2V0KE9iamVjdC5rZXlzKFR3KSk7ZnVuY3Rpb24gT3coZSx0LG49bmV3IFdlYWtTZXQpe2lmKCEoZT09PW51bGx8fHR5cGVvZiBlPT1gc3RyaW5nYHx8dHlwZW9mIGU9PWBib29sZWFuYCkpe2lmKHR5cGVvZiBlPT1gbnVtYmVyYCl7aWYoIU51bWJlci5pc0Zpbml0ZShlKSl0aHJvdyBuZXcgWihgSU5WQUxJRF9HRU9NRVRSWWAsYCR7dH0gaXMgbm90IGZpbml0ZWApO3JldHVybn1pZih0eXBlb2YgZSE9YG9iamVjdGApdGhyb3cgbmV3IFooYElOVkFMSURfR0VPTUVUUllgLGAke3R9IGNvbnRhaW5zICR7dHlwZW9mIGV9YCk7aWYobi5oYXMoZSkpdGhyb3cgbmV3IFooYElOVkFMSURfR0VPTUVUUllgLGAke3R9IGNvbnRhaW5zIGEgY3ljbGVgKTtuLmFkZChlKTt0cnl7aWYoQXJyYXkuaXNBcnJheShlKSl7bGV0IHI9MDtmb3IobGV0IGkgb2YgUmVmbGVjdC5vd25LZXlzKGUpKXtpZihpPT09YGxlbmd0aGApY29udGludWU7aWYodHlwZW9mIGkhPWBzdHJpbmdgKXRocm93IG5ldyBaKGBJTlZBTElEX0dFT01FVFJZYCxgJHt0fSBoYXMgYSBzeW1ib2wga2V5YCk7bGV0IGE9TnVtYmVyKGkpO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKGEpfHxhPDB8fFN0cmluZyhhKSE9PWl8fGE+PWUubGVuZ3RoKXRocm93IG5ldyBaKGBJTlZBTElEX0dFT01FVFJZYCxgJHt0fS4ke2l9IGlzIG5vdCBhbiBhcnJheSBpbmRleGApO2xldCBvPU9iamVjdC5nZXRPd25Qcm9wZXJ0eURlc2NyaXB0b3IoZSxpKTtpZighbz8uZW51bWVyYWJsZXx8IShgdmFsdWVgaW4gbykpdGhyb3cgbmV3IFooYElOVkFMSURfR0VPTUVUUllgLGAke3R9WyR7aX1dIGlzIG5vdCBwbGFpbiBkYXRhYCk7T3coby52YWx1ZSxgJHt0fVske2l9XWAsbikscis9MX1pZihyIT09ZS5sZW5ndGgpdGhyb3cgbmV3IFooYElOVkFMSURfR0VPTUVUUllgLGAke3R9IGlzIHNwYXJzZWApO3JldHVybn1sZXQgcj1PYmplY3QuZ2V0UHJvdG90eXBlT2YoZSk7aWYociE9PU9iamVjdC5wcm90b3R5cGUmJnIhPT1udWxsKXRocm93IG5ldyBaKGBJTlZBTElEX0dFT01FVFJZYCxgJHt0fSBpcyBub3QgYSBwbGFpbiByZWNvcmRgKTtmb3IobGV0IHIgb2YgUmVmbGVjdC5vd25LZXlzKGUpKXtpZih0eXBlb2YgciE9YHN0cmluZ2ApdGhyb3cgbmV3IFooYElOVkFMSURfR0VPTUVUUllgLGAke3R9IGhhcyBhIHN5bWJvbCBrZXlgKTtsZXQgaT1PYmplY3QuZ2V0T3duUHJvcGVydHlEZXNjcmlwdG9yKGUscik7aWYoIWk/LmVudW1lcmFibGV8fCEoYHZhbHVlYGluIGkpKXRocm93IG5ldyBaKGBJTlZBTElEX0dFT01FVFJZYCxgJHt0fS4ke3J9IGlzIG5vdCBwbGFpbiBkYXRhYCk7T3coaS52YWx1ZSxgJHt0fS4ke3J9YCxuKX19ZmluYWxseXtuLmRlbGV0ZShlKX19fWZ1bmN0aW9uIGt3KGUsdCl7aWYoIU51bWJlci5pc0Zpbml0ZShlKSl0aHJvdyBuZXcgWihgSU5WQUxJRF9HRU9NRVRSWWAsYCR7dH0gaXMgbm90IGZpbml0ZWApfWZ1bmN0aW9uIEF3KGUpe3JldHVybiB0eXBlb2YgZT09YG9iamVjdGAmJiEhZSYmIUFycmF5LmlzQXJyYXkoZSl9ZnVuY3Rpb24gancoZSx0KXtpZighQXcoZSkpdGhyb3cgbmV3IFooYElOVkFMSURfR0VPTUVUUllgLGAke3R9IGlzIG5vdCBhIHBvaW50YCk7a3coZS54UHQsYCR7dH0ueFB0YCksa3coZS55UHQsYCR7dH0ueVB0YCl9ZnVuY3Rpb24gTXcoZSx0KXtpZihqdyhlLHQpLGt3KGUud2lkdGhQdCxgJHt0fS53aWR0aFB0YCksa3coZS5oZWlnaHRQdCxgJHt0fS5oZWlnaHRQdGApLGUud2lkdGhQdDwwfHxlLmhlaWdodFB0PDApdGhyb3cgbmV3IFooYElOVkFMSURfR0VPTUVUUllgLGAke3R9IGhhcyBhIG5lZ2F0aXZlIGV4dGVudGApfWZ1bmN0aW9uIE53KGUsdCl7aWYoIUF3KGUpKXRocm93IG5ldyBaKGBJTlZBTElEX0dFT01FVFJZYCxgJHt0fSBpcyBub3QgYSBtYXRyaXhgKTtmb3IobGV0IG4gb2ZbYGFgLGBiYCxgY2AsYGRgLGBlYCxgZmBdKWt3KGVbbl0sYCR7dH0uJHtufWApfWZ1bmN0aW9uIFB3KGUsdCl7aWYoZSE9PWBob3Jpem9udGFsLXRiYCYmZSE9PWB2ZXJ0aWNhbC1ybGAmJmUhPT1gdmVydGljYWwtbHJgKXRocm93IG5ldyBaKGBJTlZBTElEX0dFT01FVFJZYCxgJHt0fSBpcyB1bnN1cHBvcnRlZGApfWZ1bmN0aW9uIEZ3KGUsdCl7aWYoIUF3KGUpKXRocm93IG5ldyBaKGBJTlZBTElEX0dFT01FVFJZYCxgJHt0fSBpcyBub3QgYSBjb29yZGluYXRlIHNwYWNlYCk7UHcoZS53cml0aW5nTW9kZSxgJHt0fS53cml0aW5nTW9kZWApLE53KGUubG9naWNhbFRvUGh5c2ljYWwsYCR7dH0ubG9naWNhbFRvUGh5c2ljYWxgKSxOdyhlLnBoeXNpY2FsVG9Mb2dpY2FsLGAke3R9LnBoeXNpY2FsVG9Mb2dpY2FsYCl9ZnVuY3Rpb24gSXcoZSx0KXtsZXR7cGxhbjpufT1lO2lmKE93KG4sYCR7dH0ucGxhbmApLGt3KG4ucmVjdC54LGAke3R9LnBsYW4ucmVjdC54YCksa3cobi5yZWN0LnksYCR7dH0ucGxhbi5yZWN0LnlgKSxrdyhuLnJlY3QudyxgJHt0fS5wbGFuLnJlY3Qud2ApLGt3KG4ucmVjdC5oLGAke3R9LnBsYW4ucmVjdC5oYCksbi5yZWN0Lnc8MHx8bi5yZWN0Lmg8MCl0aHJvdyBuZXcgWihgSU5WQUxJRF9HRU9NRVRSWWAsYCR7dH0ucGxhbi5yZWN0IGhhcyBhIG5lZ2F0aXZlIGV4dGVudGApO2lmKGt3KG4udHJhbnNmb3JtLnJvdGF0aW9uRGVnLGAke3R9LnBsYW4udHJhbnNmb3JtLnJvdGF0aW9uRGVnYCksbi5nZW9tZXRyeS5raW5kPT09YHByZXNldGApe2lmKG4uZ2VvbWV0cnkubmFtZS5sZW5ndGg9PT0wKXRocm93IG5ldyBaKGBJTlZBTElEX0dFT01FVFJZYCxgJHt0fS5wbGFuLmdlb21ldHJ5Lm5hbWUgaXMgZW1wdHlgKTtuLmdlb21ldHJ5LmFkanVzdG1lbnRzLmZvckVhY2goKGUsbik9PntlIT09bnVsbCYma3coZSxgJHt0fS5wbGFuLmdlb21ldHJ5LmFkanVzdG1lbnRzWyR7bn1dYCl9KX1lbHNlIG4uZ2VvbWV0cnkuc3VicGF0aHMuZm9yRWFjaCgoZSxuKT0+e2UuZm9yRWFjaCgoZSxyKT0+e2lmKGUuY21kLmxlbmd0aD09PTApdGhyb3cgbmV3IFooYElOVkFMSURfR0VPTUVUUllgLGAke3R9LnBsYW4uZ2VvbWV0cnkuc3VicGF0aHNbJHtufV1bJHtyfV0uY21kIGlzIGVtcHR5YCl9KX0pO2lmKG4uc3Ryb2tlJiYoa3cobi5zdHJva2Uud2lkdGgsYCR7dH0ucGxhbi5zdHJva2Uud2lkdGhgKSxuLnN0cm9rZS53aWR0aDwwKSl0aHJvdyBuZXcgWihgSU5WQUxJRF9HRU9NRVRSWWAsYCR7dH0ucGxhbi5zdHJva2Uud2lkdGggaXMgbmVnYXRpdmVgKX1mdW5jdGlvbiBMdyhlLHQpe2lmKGU8PXQpcmV0dXJuITA7bGV0IG49MioqLTUyKk1hdGgubWF4KDEsTWF0aC5hYnMoZSksTWF0aC5hYnModCkpO3JldHVybiBlLXQ8PW59ZnVuY3Rpb24gUncoZSx0KXtyZXR1cm4gZTx0JiYhTHcodCxlKX1mdW5jdGlvbiB6dyhlLHQpe3JldHVybiBSdyhlLnhQdCx0LnhQdCt0LndpZHRoUHQpJiZSdyh0LnhQdCxlLnhQdCtlLndpZHRoUHQpJiZSdyhlLnlQdCx0LnlQdCt0LmhlaWdodFB0KSYmUncodC55UHQsZS55UHQrZS5oZWlnaHRQdCl9ZnVuY3Rpb24gQncoZSx0KXtyZXR1cm4gTHcoZS54UHQsdC54UHQpJiZMdyhlLnlQdCx0LnlQdCkmJkx3KHQueFB0K3Qud2lkdGhQdCxlLnhQdCtlLndpZHRoUHQpJiZMdyh0LnlQdCt0LmhlaWdodFB0LGUueVB0K2UuaGVpZ2h0UHQpfWZ1bmN0aW9uIFZ3KGUsdCl7cmV0dXJuIEx3KGUueFB0LHQueFB0KSYmTHcodC54UHQrdC53aWR0aFB0LGUueFB0K2Uud2lkdGhQdCl9ZnVuY3Rpb24gSHcoZSx0LG4pe3JldHVybiBMdyhlLG4ueVB0KSYmTHcobi55UHQrbi5oZWlnaHRQdCx0KX1mdW5jdGlvbiBVdyhlLHQpe3JldHVybiBMdyhlLnlQdCx0LnlQdCkmJkx3KHQueVB0K3QuaGVpZ2h0UHQsZS55UHQrZS5oZWlnaHRQdCl9ZnVuY3Rpb24gV3coZSx0KXtyZXR1cm4gZS54UHQ9PT10LnhQdCYmZS55UHQ9PT10LnlQdCYmZS53aWR0aFB0PT09dC53aWR0aFB0JiZlLmhlaWdodFB0PT09dC5oZWlnaHRQdH1mdW5jdGlvbiBHdyhlLHQpe3JldHVybiBlLmE9PT10LmEmJmUuYj09PXQuYiYmZS5jPT09dC5jJiZlLmQ9PT10LmQmJmUuZT09PXQuZSYmZS5mPT09dC5mfWZ1bmN0aW9uIEt3KGUsdCl7bGV0IG49ZS5wYWdlQm9yZGVyO2lmKG49PT1udWxsKXJldHVybjtpZihuLnpPcmRlciE9PWBmcm9udGAmJm4uek9yZGVyIT09YGJhY2tgKXRocm93IG5ldyBaKGBJTlZBTElEX1JFRkVSRU5DRWAsYCR7dH0uek9yZGVyIGlzIGludmFsaWRgKTtOdyhuLmxvZ2ljYWxUb1BoeXNpY2FsLGAke3R9LmxvZ2ljYWxUb1BoeXNpY2FsYCk7bGV0IHI9YnYoY3YoZS5zZWN0aW9uLnRleHREaXJlY3Rpb24pLGUuZ2VvbWV0cnkpLmxvZ2ljYWxUb1BoeXNpY2FsO2lmKCFHdyhuLmxvZ2ljYWxUb1BoeXNpY2FsLHIpKXRocm93IG5ldyBaKGBJTlZBTElEX0dFT01FVFJZYCxgJHt0fS5sb2dpY2FsVG9QaHlzaWNhbCBjb250cmFkaWN0cyB0aGUgcGFnZS1zdGFydCBzZWN0aW9uYCk7aWYoIUFycmF5LmlzQXJyYXkobi5zZWdtZW50cyl8fG4uc2VnbWVudHMubGVuZ3RoPT09MCl0aHJvdyBuZXcgWihgSU5WQUxJRF9HRU9NRVRSWWAsYCR7dH0uc2VnbWVudHMgaXMgZW1wdHlgKTtuLnNlZ21lbnRzLmZvckVhY2goKGUsbik9PntsZXQgcj1gJHt0fS5zZWdtZW50c1ske259XWA7aWYoancoZS5mcm9tLGAke3J9LmZyb21gKSxqdyhlLnRvLGAke3J9LnRvYCksa3coZS53aWR0aFB0LGAke3J9LndpZHRoUHRgKSxlLmZyb20ueFB0IT09ZS50by54UHQmJmUuZnJvbS55UHQhPT1lLnRvLnlQdCl0aHJvdyBuZXcgWihgSU5WQUxJRF9HRU9NRVRSWWAsYCR7cn0gaXMgbm90IGFuIGF4aXMtYWxpZ25lZCBwYWdlIGVkZ2VgKTtpZighL14jWzAtOWEtZkEtRl17Nn0kLy50ZXN0KGUuY29sb3IpKXRocm93IG5ldyBaKGBJTlZBTElEX1JFRkVSRU5DRWAsYCR7cn0uY29sb3IgaXMgaW52YWxpZGApfSl9ZnVuY3Rpb24gcXcoZSx0LG4pe2lmKG4uaGFzKGUpKXRocm93IG5ldyBaKGBJTlZBTElEX1JFRkVSRU5DRWAsYGR1cGxpY2F0ZSByZXRhaW5lZCBub2RlIGlkICR7ZX1gKTtuLmFkZChlKSx0LmFkZChlKX1mdW5jdGlvbiBKdyhlLHQsbil7aWYocXcoZS5pZCx0LG4pLGUua2luZD09PWBwYXJhZ3JhcGhgKXtlLmRyYXdpbmdzLmZvckVhY2goZT0+SncoZSx0LG4pKSxlLnRleHRCb3hlcy5mb3JFYWNoKGU9Pkp3KGUsdCxuKSk7cmV0dXJufWlmKGUua2luZD09PWB0YWJsZWApe2Uucm93cy5mb3JFYWNoKGU9PntxdyhlLmlkLHQsbiksZS5jZWxscy5mb3JFYWNoKGU9PntxdyhlLmlkLHQsbiksZS5ibG9ja3MuZm9yRWFjaChlPT5KdyhlLmxheW91dCx0LG4pKX0pfSk7cmV0dXJufWlmKGUua2luZD09PWBub3RlYCl7ZS5zdG9yeS5ibG9ja3MuZm9yRWFjaChlPT5KdyhlLHQsbikpO3JldHVybn1lLmtpbmQ9PT1gdGV4dGJveGAmJmUuc3RvcnkuYmxvY2tzLmZvckVhY2goZT0+SncoZSx0LG4pKX1mdW5jdGlvbiBZdyhlLHQpe2lmKGUua2luZD09PWBwYXJhZ3JhcGhgKXtsZXQgbj1DdyhlLmRyYXdpbmdzLmZpbHRlcihlPT5lLmFuY2hvckxheWVyPy5jZWxsQ29udGFpbm1lbnQ9PT0hMCkubWFwKGU9PmUuZmxvd0JvdW5kcykpO2lmKGUuY2VsbENvbnRhaW5tZW50Qm91bmRzJiZNdyhlLmNlbGxDb250YWlubWVudEJvdW5kcyxgJHt0fS5jZWxsQ29udGFpbm1lbnRCb3VuZHNgKSxuPT09bnVsbCE9KGUuY2VsbENvbnRhaW5tZW50Qm91bmRzPT09dm9pZCAwKXx8biYmZS5jZWxsQ29udGFpbm1lbnRCb3VuZHMmJiFXdyhuLGUuY2VsbENvbnRhaW5tZW50Qm91bmRzKSl0aHJvdyBuZXcgWihgSU5WQUxJRF9HRU9NRVRSWWAsYCR7dH0uY2VsbENvbnRhaW5tZW50Qm91bmRzIGRvZXMgbm90IG1hdGNoIGl0cyByZXRhaW5lZCBsYXlvdXRJbkNlbGwgZHJhd2luZ3NgKTtsZXQgcj1uZXcgU2V0OyhlLmFuY2hvckNvbGxpc2lvbnM/P1tdKS5mb3JFYWNoKChlLG4pPT57bGV0IGk9YCR7dH0uYW5jaG9yQ29sbGlzaW9uc1ske259XWA7aWYoZS5vY2N1cnJlbmNlSWQubGVuZ3RoPT09MHx8ci5oYXMoZS5vY2N1cnJlbmNlSWQpKXRocm93IG5ldyBaKGBJTlZBTElEX1JFRkVSRU5DRWAsYCR7aX0ub2NjdXJyZW5jZUlkIGlzIGVtcHR5IG9yIGR1cGxpY2F0ZWRgKTtpZihyLmFkZChlLm9jY3VycmVuY2VJZCksTXcoZS5ib3VuZHMsYCR7aX0uYm91bmRzYCksZS5ob3Jpem9udGFsT3duZXJzaGlwIT09YHBhZ2VgJiZlLmhvcml6b250YWxPd25lcnNoaXAhPT1gaG9zdGB8fGUudmVydGljYWxPd25lcnNoaXAhPT1gcGFnZWAmJmUudmVydGljYWxPd25lcnNoaXAhPT1gaG9zdGApdGhyb3cgbmV3IFooYElOVkFMSURfUkVGRVJFTkNFYCxgJHtpfSBoYXMgaW52YWxpZCBheGlzIG93bmVyc2hpcGApfSksZS50ZXh0Qm94ZXMuZm9yRWFjaCgoZSxuKT0+WXcoZSxgJHt0fS50ZXh0Qm94ZXNbJHtufV1gKSk7cmV0dXJufWlmKGUua2luZD09PWB0YWJsZWApe2Uucm93cy5mb3JFYWNoKChlLG4pPT5lLmNlbGxzLmZvckVhY2goKGUscik9PmUuYmxvY2tzLmZvckVhY2goKGUsaSk9Pll3KGUubGF5b3V0LGAke3R9LnJvd3NbJHtufV0uY2VsbHNbJHtyfV0uYmxvY2tzWyR7aX1dYCkpKSk7cmV0dXJufWUua2luZD09PWB0ZXh0Ym94YCYmZS5zdG9yeS5ibG9ja3MuZm9yRWFjaCgoZSxuKT0+WXcoZSxgJHt0fS5zdG9yeS5ibG9ja3NbJHtufV1gKSl9ZnVuY3Rpb24gWHcoZSx0KXtpZihlLm9yaWVudGF0aW9uPT09YHVwcmlnaHQtcGh5c2ljYWxgJiYhZS50cmFuc2Zvcm0pdGhyb3cgbmV3IFooYElOVkFMSURfR0VPTUVUUllgLGAke3R9IHVwcmlnaHQgcGh5c2ljYWwgZHJhd2luZyBpcyBtaXNzaW5nIGl0cyBsb2dpY2FsIHRyYW5zZm9ybWApO2lmKGUudHJhbnNmb3JtKWZvcihsZXQgbiBvZltgYWAsYGJgLGBjYCxgZGAsYGVgLGBmYF0pa3coZS50cmFuc2Zvcm1bbl0sYCR7dH0udHJhbnNmb3JtLiR7bn1gKTtlLmNsaXA/LmtpbmQ9PT1gcmVjdGAmJk13KGUuY2xpcC5yZWN0LGAke3R9LmNsaXAucmVjdGApLGUuY2xpcD8ua2luZD09PWBwb2x5Z29uYCYmZS5jbGlwLnBvaW50cy5mb3JFYWNoKChlLG4pPT5qdyhlLGAke3R9LmNsaXAucG9pbnRzWyR7bn1dYCkpLGUuY29tbWFuZHMuZm9yRWFjaCgoZSxuKT0+e2xldCByPWAke3R9LmNvbW1hbmRzWyR7bn1dYDtpZihlLmtpbmQhPT1gbm9vcGApe2lmKGUua2luZD09PWBkcmF3aW5nbWwtc2hhcGVgKXtJdyhlLHIpO3JldHVybn1pZihlLmtpbmQ9PT1gZHJhd2luZ21sLWltYWdlLWZpbGxgKXtpZihJdyhlLHIpLGUucmVzb3VyY2VLZXkubGVuZ3RoPT09MCl0aHJvdyBuZXcgWihgSU5WQUxJRF9HRU9NRVRSWWAsYCR7cn0ucmVzb3VyY2VLZXkgaXMgZW1wdHlgKTtpZihlLmZpbGxSZWN0KWZvcihsZXQgdCBvZltgbGAsYHRgLGByYCxgYmBdKWt3KGUuZmlsbFJlY3RbdF0sYCR7cn0uZmlsbFJlY3QuJHt0fWApO3JldHVybn1pZihNdyhlLnJlY3QsYCR7cn0ucmVjdGApLGUua2luZD09PWBzdHJva2UtcmVjdGAmJihrdyhlLmxpbmVXaWR0aFB0LGAke3J9LmxpbmVXaWR0aFB0YCksZS5kYXNoUHQuZm9yRWFjaCgoZSx0KT0+a3coZSxgJHtyfS5kYXNoUHRbJHt0fV1gKSkpLGUua2luZD09PWB0ZXh0YCYmKGt3KGUuZm9udFNpemVQdCxgJHtyfS5mb250U2l6ZVB0YCksa3coZS5mb250V2VpZ2h0LGAke3J9LmZvbnRXZWlnaHRgKSksZS5raW5kPT09YHdhdGVybWFyay10ZXh0YCl7aWYoTXcoZS5zb3VyY2VCb3VuZHMsYCR7cn0uc291cmNlQm91bmRzYCksZS5zb3VyY2VCb3VuZHMud2lkdGhQdDw9MHx8ZS5zb3VyY2VCb3VuZHMuaGVpZ2h0UHQ8PTApdGhyb3cgbmV3IFooYElOVkFMSURfR0VPTUVUUllgLGAke3J9LnNvdXJjZUJvdW5kcyBtdXN0IGhhdmUgcG9zaXRpdmUgZXh0ZW50c2ApO2lmKGt3KGUub3BhY2l0eSxgJHtyfS5vcGFjaXR5YCksa3coZS5yb3RhdGlvbkRlZyxgJHtyfS5yb3RhdGlvbkRlZ2ApLGt3KGUuZm9udFNpemVQdCxgJHtyfS5mb250U2l6ZVB0YCksZS5vcGFjaXR5PDB8fGUub3BhY2l0eT4xfHxlLmZvbnRTaXplUHQ8PTApdGhyb3cgbmV3IFooYElOVkFMSURfR0VPTUVUUllgLGAke3J9IGhhcyBpbnZhbGlkIHRleHRQYXRoIHBhaW50IG1ldHJpY3NgKTtlLnNwYW5zLmZvckVhY2goKGUsdCk9PntrdyhlLmFkdmFuY2VQdCxgJHtyfS5zcGFuc1ske3R9XS5hZHZhbmNlUHRgKSxrdyhlLmZvbnRXZWlnaHQsYCR7cn0uc3BhbnNbJHt0fV0uZm9udFdlaWdodGApfSl9fX0pfWZ1bmN0aW9uIFp3KGUpe093KGUsYGxheW91dGApLGUuZGlhZ25vc3RpY3MuZm9yRWFjaCgoZSx0KT0+e2xldCBuPWBkaWFnbm9zdGljc1ske3R9XWA7aWYoIUV3LmhhcyhlLmNvZGUpKXRocm93IG5ldyBaKGBJTlZBTElEX1JFRkVSRU5DRWAsYCR7bn0uY29kZSBpcyB1bmtub3duYCk7aWYoZS5zZXZlcml0eSE9PWB3YXJuaW5nYCYmZS5zZXZlcml0eSE9PWBlcnJvcmApdGhyb3cgbmV3IFooYElOVkFMSURfUkVGRVJFTkNFYCxgJHtufS5zZXZlcml0eSBpcyB1bmtub3duYCk7aWYodHlwZW9mIGUubWVzc2FnZSE9YHN0cmluZ2B8fGUubWVzc2FnZS5sZW5ndGg9PT0wKXRocm93IG5ldyBaKGBJTlZBTElEX1JFRkVSRU5DRWAsYCR7bn0ubWVzc2FnZSBpcyBlbXB0eWApO2lmKGUuc291cmNlIT09dm9pZCAwJiYoIUR3LmhhcyhlLnNvdXJjZS5zdG9yeSl8fHR5cGVvZiBlLnNvdXJjZS5zdG9yeUluc3RhbmNlIT1gc3RyaW5nYHx8ZS5zb3VyY2Uuc3RvcnlJbnN0YW5jZS5sZW5ndGg9PT0wfHwhQXJyYXkuaXNBcnJheShlLnNvdXJjZS5wYXRoKXx8ZS5zb3VyY2UucGF0aC5zb21lKGU9PiFOdW1iZXIuaXNTYWZlSW50ZWdlcihlKXx8ZTwwKSkpdGhyb3cgbmV3IFooYElOVkFMSURfUkVGRVJFTkNFYCxgJHtufS5zb3VyY2UgaXMgaW52YWxpZGApfSk7bGV0IHQ9bmV3IFNldDtlLnBhZ2VzLmZvckVhY2goKGUsbik9PntpZighTnVtYmVyLmlzSW50ZWdlcihlLnBhZ2VJbmRleCl8fGUucGFnZUluZGV4IT09bil0aHJvdyBuZXcgWihgSU5WQUxJRF9SRUZFUkVOQ0VgLGBwYWdlc1ske259XSBoYXMgaW52YWxpZCBwYWdlIGluZGV4ICR7ZS5wYWdlSW5kZXh9YCk7aWYoTXcoZS5nZW9tZXRyeSxgcGFnZXNbJHtufV0uZ2VvbWV0cnlgKSxrdyhlLmdlb21ldHJ5LmNvbnRlbnRUb3BQdCxgcGFnZXNbJHtufV0uZ2VvbWV0cnkuY29udGVudFRvcFB0YCksa3coZS5nZW9tZXRyeS5jb250ZW50Qm90dG9tUHQsYHBhZ2VzWyR7bn1dLmdlb21ldHJ5LmNvbnRlbnRCb3R0b21QdGApLGUuZ2VvbWV0cnkud2lkdGhQdDw9MHx8ZS5nZW9tZXRyeS5oZWlnaHRQdDw9MHx8ZS5nZW9tZXRyeS5jb250ZW50VG9wUHQ8MHx8ZS5nZW9tZXRyeS5jb250ZW50VG9wUHQ+ZS5nZW9tZXRyeS5jb250ZW50Qm90dG9tUHR8fGUuZ2VvbWV0cnkuY29udGVudEJvdHRvbVB0PmUuZ2VvbWV0cnkuaGVpZ2h0UHQpdGhyb3cgbmV3IFooYElOVkFMSURfR0VPTUVUUllgLGBwYWdlc1ske259XSBoYXMgaW52YWxpZCBlZmZlY3RpdmUgcGFnZSBlZGdlc2ApO0t3KGUsYHBhZ2VzWyR7bn1dLnBhZ2VCb3JkZXJgKTtsZXQgcj1uZXcgTWFwO2lmKGUuZmxvd0RvbWFpbnMuZm9yRWFjaCgoZSx0KT0+e2lmKE13KGUubG9naWNhbEJvdW5kcyxgcGFnZXNbJHtufV0uZmxvd0RvbWFpbnNbJHt0fV0ubG9naWNhbEJvdW5kc2ApLE13KGUucGh5c2ljYWxCb3VuZHMsYHBhZ2VzWyR7bn1dLmZsb3dEb21haW5zWyR7dH1dLnBoeXNpY2FsQm91bmRzYCksci5oYXMoZS5pZCkpdGhyb3cgbmV3IFooYElOVkFMSURfUkVGRVJFTkNFYCxgZHVwbGljYXRlIGZsb3cgZG9tYWluICR7ZS5pZH1gKTtyLnNldChlLmlkLGUpfSksZS5wYXJpdHlCbGFuayYmKGUuZmxvd0RvbWFpbnMubGVuZ3RoPjB8fChlLnNlY3Rpb25SZWdpb25zPy5sZW5ndGg/PzApPjB8fChlLmNvbHVtblNlcGFyYXRvcnM/Lmxlbmd0aD8/MCk+MHx8Sl8oZSkubGVuZ3RoPjB8fGUubGF5ZXJzLnJvb3RzLmxlbmd0aD4wfHxlLnJlYWRpbmdPcmRlci5sZW5ndGg+MHx8KGUuYm9va21hcmtTdGFydHM/Lmxlbmd0aD8/MCk+MCkpdGhyb3cgbmV3IFooYElOVkFMSURfUkVGRVJFTkNFYCxgcGFnZXNbJHtufV0gcGFyaXR5IGJsYW5rIHJldGFpbnMgcGFnZSBjb250ZW50YCk7bGV0IGk9bmV3IFNldDtpZihlLnNlY3Rpb25PY2N1cnJlbmNlSWQhPT12b2lkIDApe2lmKGUuc2VjdGlvbk9jY3VycmVuY2VJZC5sZW5ndGg9PT0wKXRocm93IG5ldyBaKGBJTlZBTElEX1JFRkVSRU5DRWAsYHBhZ2VzWyR7bn1dIGhhcyBhbiBlbXB0eSBzZWN0aW9uIG9jY3VycmVuY2UgaWRgKTtpLmFkZChlLnNlY3Rpb25PY2N1cnJlbmNlSWQpfWxldCBhPW5ldyBNYXA7aWYoZS5zZWN0aW9uUmVnaW9ucyl7bGV0IHQ9bmV3IFNldCxvPW5ldyBTZXQscz1uZXcgTWFwLGM9W10sbDtpZihlLnNlY3Rpb25SZWdpb25zLmZvckVhY2goKHUsZCk9PntsZXQgZj1gcGFnZXNbJHtufV0uc2VjdGlvblJlZ2lvbnNbJHtkfV1gO2lmKHUuaWQubGVuZ3RoPT09MHx8dC5oYXModS5pZCkpdGhyb3cgbmV3IFooYElOVkFMSURfUkVGRVJFTkNFYCxgJHtmfSBoYXMgYW4gaW52YWxpZCByZWdpb24gaWRgKTtpZih0LmFkZCh1LmlkKSx1LnNlY3Rpb25PY2N1cnJlbmNlSWQubGVuZ3RoPT09MCl0aHJvdyBuZXcgWihgSU5WQUxJRF9SRUZFUkVOQ0VgLGAke2Z9IGhhcyBhbiBlbXB0eSBzZWN0aW9uIG9jY3VycmVuY2UgaWRgKTtpZihvLmhhcyh1LnNlY3Rpb25PY2N1cnJlbmNlSWQpKXRocm93IG5ldyBaKGBJTlZBTElEX1JFRkVSRU5DRWAsYCR7Zn0gaGFzIGEgZHVwbGljYXRlIHNlY3Rpb24gb2NjdXJyZW5jZSBpZGApO28uYWRkKHUuc2VjdGlvbk9jY3VycmVuY2VJZCksaS5hZGQodS5zZWN0aW9uT2NjdXJyZW5jZUlkKSxGdyh1LmNvb3JkaW5hdGVTcGFjZSxgJHtmfS5jb29yZGluYXRlU3BhY2VgKTtsZXQgcD11LmNvb3JkaW5hdGVTcGFjZS53cml0aW5nTW9kZTtpZihsIT09dm9pZCAwJiZsIT09cCl0aHJvdyBuZXcgWihgSU5WQUxJRF9HRU9NRVRSWWAsYCR7Zn0gbWl4ZXMgY29vcmRpbmF0ZSBzeXN0ZW1zIG9uIG9uZSBwaHlzaWNhbCBwYWdlYCk7bD1wO2xldCBtO3RyeXttPWN2KHUuc2VjdGlvbi50ZXh0RGlyZWN0aW9uKX1jYXRjaChlKXt0aHJvdyBuZXcgWihgSU5WQUxJRF9HRU9NRVRSWWAsYCR7Zn0uc2VjdGlvbi50ZXh0RGlyZWN0aW9uIGlzIHVuc3VwcG9ydGVkOiAke2UubWVzc2FnZX1gKX1pZihwIT09bSl0aHJvdyBuZXcgWihgSU5WQUxJRF9HRU9NRVRSWWAsYCR7Zn0gd3JpdGluZyBtb2RlIGNvbnRyYWRpY3RzIGl0cyBzZWN0aW9uIHRleHQgZGlyZWN0aW9uYCk7bGV0IGg9cHYoZS5nZW9tZXRyeSxwKSxnPW12KHt3aWR0aFB0OnUuc2VjdGlvbi5nZW9tZXRyeS5wYWdlV2lkdGgsaGVpZ2h0UHQ6dS5zZWN0aW9uLmdlb21ldHJ5LnBhZ2VIZWlnaHR9LHApO2lmKGcud2lkdGhQdCE9PWUuZ2VvbWV0cnkud2lkdGhQdHx8Zy5oZWlnaHRQdCE9PWUuZ2VvbWV0cnkuaGVpZ2h0UHQpdGhyb3cgbmV3IFooYElOVkFMSURfR0VPTUVUUllgLGAke2Z9IHNlY3Rpb24gZ2VvbWV0cnkgZG9lcyBub3QgbWF0Y2ggdGhlIHVwcmlnaHQgcGh5c2ljYWwgcGFnZWApO2lmKGt3KHUuYmxvY2tTdGFydFB0LGAke2Z9LmJsb2NrU3RhcnRQdGApLGt3KHUuYmxvY2tFbmRQdCxgJHtmfS5ibG9ja0VuZFB0YCksdS5jb2x1bW5GbG93RGlyZWN0aW9uIT09YGx0cmAmJnUuY29sdW1uRmxvd0RpcmVjdGlvbiE9PWBydGxgKXRocm93IG5ldyBaKGBJTlZBTElEX0dFT01FVFJZYCxgJHtmfSBoYXMgYW4gaW52YWxpZCBjb2x1bW4gZmxvdyBkaXJlY3Rpb25gKTtsZXQgXz11LnNlY3Rpb24uc2VjdGlvbkJpZGk9PT0hMD9gcnRsYDpgbHRyYDtpZih1LmNvbHVtbkZsb3dEaXJlY3Rpb24hPT1fKXRocm93IG5ldyBaKGBJTlZBTElEX0dFT01FVFJZYCxgJHtmfSBjb2x1bW4gZmxvdyBkaXJlY3Rpb24gY29udHJhZGljdHMgaXRzIHNlY3Rpb24gYmlkaWApO2lmKHUuYmxvY2tTdGFydFB0PDB8fHUuYmxvY2tFbmRQdDx1LmJsb2NrU3RhcnRQdHx8dS5ibG9ja0VuZFB0PmguaGVpZ2h0UHQpdGhyb3cgbmV3IFooYElOVkFMSURfR0VPTUVUUllgLGAke2Z9IGhhcyBhbiBpbnZhbGlkIGJsb2NrIGludGVydmFsYCk7bGV0IHY9YnYodS5jb29yZGluYXRlU3BhY2Uud3JpdGluZ01vZGUsZS5nZW9tZXRyeSk7aWYoIUd3KHUuY29vcmRpbmF0ZVNwYWNlLmxvZ2ljYWxUb1BoeXNpY2FsLHYubG9naWNhbFRvUGh5c2ljYWwpfHwhR3codS5jb29yZGluYXRlU3BhY2UucGh5c2ljYWxUb0xvZ2ljYWwsdi5waHlzaWNhbFRvTG9naWNhbCkpdGhyb3cgbmV3IFooYElOVkFMSURfR0VPTUVUUllgLGAke2Z9IGhhcyBhbiBpbnZhbGlkIGNvb3JkaW5hdGUgdHJhbnNmb3JtYCk7bGV0IHk9dS5jb2x1bW5JbmRleGVzO2lmKHUuZmxvd0RvbWFpbklkcy5sZW5ndGghPT15Lmxlbmd0aHx8eS5zb21lKChlLHQpPT4hTnVtYmVyLmlzSW50ZWdlcihlKXx8ZTwwfHxlPj11LnNlY3Rpb24uY29sdW1ucy5sZW5ndGh8fHQ+MCYmZTw9eVt0LTFdKSl0aHJvdyBuZXcgWihgSU5WQUxJRF9HRU9NRVRSWWAsYCR7Zn0gY29sdW1ucyBjb250cmFkaWN0IGl0cyBzZWN0aW9uYCk7bGV0IGI9MDt1LmZsb3dEb21haW5JZHMuZm9yRWFjaCgodCxuKT0+e2xldCBpPXIuZ2V0KHQpO2lmKCFpKXRocm93IG5ldyBaKGBJTlZBTElEX1JFRkVSRU5DRWAsYCR7Zn0gcmVmZXJlbmNlcyBtaXNzaW5nIGZsb3cgZG9tYWluICR7dH1gKTtpZihpLmtpbmQhPT1gYm9keWApdGhyb3cgbmV3IFooYElOVkFMSURfUkVGRVJFTkNFYCxgJHtmfSBvd25zIG5vbi1ib2R5IGZsb3cgZG9tYWluICR7dH1gKTtzLnNldCh0LChzLmdldCh0KT8/MCkrMSksYS5zZXQodCx1KTtsZXQgbz1pLmxvZ2ljYWxCb3VuZHMsbD11LnNlY3Rpb24uY29sdW1uc1t5W25dXTtpZihvLndpZHRoUHQ8PTB8fG8uaGVpZ2h0UHQ8MHx8by55UHQhPT11LmJsb2NrU3RhcnRQdHx8by5oZWlnaHRQdCE9PXUuYmxvY2tFbmRQdC11LmJsb2NrU3RhcnRQdHx8by54UHQ8MHx8by54UHQ8Ynx8by54UHQrby53aWR0aFB0Pmgud2lkdGhQdHx8bD09PXZvaWQgMHx8by54UHQhPT1sLnhQdHx8by53aWR0aFB0IT09bC53UHQpdGhyb3cgbmV3IFooYElOVkFMSURfR0VPTUVUUllgLGAke3R9IGlzIG5vdCB0aGUgc2VjdGlvbiBjb2x1bW4ncyBub24tbmVnYXRpdmUgbG9naWNhbCByZWdpb25gKTtpZihiPW8ueFB0K28ud2lkdGhQdCwhV3codnYodS5jb29yZGluYXRlU3BhY2UubG9naWNhbFRvUGh5c2ljYWwsaS5sb2dpY2FsQm91bmRzKSxpLnBoeXNpY2FsQm91bmRzKSl0aHJvdyBuZXcgWihgSU5WQUxJRF9HRU9NRVRSWWAsYCR7dH0gcGh5c2ljYWwgYm91bmRzIGRvIG5vdCBtYXRjaCBpdHMgc2VjdGlvbiByZWdpb24gdHJhbnNmb3JtYCk7aWYoIUJ3KGUuZ2VvbWV0cnksaS5waHlzaWNhbEJvdW5kcykpdGhyb3cgbmV3IFooYElOVkFMSURfR0VPTUVUUllgLGAke3R9IHBoeXNpY2FsIGJvdW5kcyBsZWF2ZSB0aGUgdXByaWdodCBwaHlzaWNhbCBwYWdlYCk7aWYoYy5zb21lKGU9PmUucmVnaW9uSWQhPT11LmlkJiZ6dyhlLmJvdW5kcyxpLnBoeXNpY2FsQm91bmRzKSkpdGhyb3cgbmV3IFooYElOVkFMSURfR0VPTUVUUllgLGAke3R9IG92ZXJsYXBzIGEgYm9keSBmbG93IGRvbWFpbiBvd25lZCBieSBhbm90aGVyIHNlY3Rpb24gcmVnaW9uYCk7Yy5wdXNoKHtyZWdpb25JZDp1LmlkLGJvdW5kczppLnBoeXNpY2FsQm91bmRzfSl9KX0pLGUuZmxvd0RvbWFpbnMuZmlsdGVyKGU9PmUua2luZD09PWBib2R5YCkuZm9yRWFjaChlPT57aWYocy5nZXQoZS5pZCkhPT0xKXRocm93IG5ldyBaKGBJTlZBTElEX1JFRkVSRU5DRWAsYCR7ZS5pZH0gaGFzIGludmFsaWQgc2VjdGlvbiByZWdpb24gb3duZXJzaGlwYCl9KSwhZS5wYXJpdHlCbGFuayYmZS5zZWN0aW9uUmVnaW9ucy5sZW5ndGg+MCl7bGV0IHQ9ZS5zZWN0aW9uUmVnaW9uc1swXTtpZihlLnNlY3Rpb25PY2N1cnJlbmNlSWQhPT10LnNlY3Rpb25PY2N1cnJlbmNlSWQpdGhyb3cgbmV3IFooYElOVkFMSURfUkVGRVJFTkNFYCxgcGFnZXNbJHtufV0gcGFnZS1zdGFydCBzZWN0aW9uIG9jY3VycmVuY2UgZG9lcyBub3QgbWF0Y2ggaXRzIGZpcnN0IHJlZ2lvbmApO2lmKCFvdyhlLnNlY3Rpb24sdC5zZWN0aW9uKSl0aHJvdyBuZXcgWihgSU5WQUxJRF9HRU9NRVRSWWAsYHBhZ2VzWyR7bn1dIHBhZ2Utc3RhcnQgc2VjdGlvbiBmYWN0cyBkbyBub3QgbWF0Y2ggaXRzIGZpcnN0IHJlZ2lvbmApfX1sZXQgbz1TdihlLnNlY3Rpb25SZWdpb25zPz9bXSk7aWYoIUFycmF5LmlzQXJyYXkoZS5jb2x1bW5TZXBhcmF0b3JzKXx8ZS5jb2x1bW5TZXBhcmF0b3JzLmxlbmd0aCE9PW8ubGVuZ3RofHxlLmNvbHVtblNlcGFyYXRvcnMuc29tZSgoZSx0KT0+e2xldCBuPW9bdF07cmV0dXJuIG49PT12b2lkIDB8fGUuc3RhcnQueFB0IT09bi5zdGFydC54UHR8fGUuc3RhcnQueVB0IT09bi5zdGFydC55UHR8fGUuZW5kLnhQdCE9PW4uZW5kLnhQdHx8ZS5lbmQueVB0IT09bi5lbmQueVB0fSkpdGhyb3cgbmV3IFooYElOVkFMSURfR0VPTUVUUllgLGBwYWdlc1ske259XS5jb2x1bW5TZXBhcmF0b3JzIGNvbnRyYWRpY3QgdGhlIHJldGFpbmVkIHNlY3Rpb24gcmVnaW9uc2ApO2xldCBzPW5ldyBNYXAoZS5zZWN0aW9uUmVnaW9ucy5tYXAoZT0+W2UuaWQsZV0pKTtmb3IobGV0IHQgb2YgZS5mbG93RG9tYWlucyl7aWYodC5raW5kIT09YGZvb3Rub3RlYCYmdC5raW5kIT09YGVuZG5vdGVgKWNvbnRpbnVlO2xldCBuPXQuc2VjdGlvblJlZ2lvbklkP3MuZ2V0KHQuc2VjdGlvblJlZ2lvbklkKTplLnNlY3Rpb25SZWdpb25zWzBdO2lmKCFuKXRocm93IG5ldyBaKGBJTlZBTElEX1JFRkVSRU5DRWAsYCR7dC5pZH0gcmVmZXJlbmNlcyBtaXNzaW5nIHBhZ2Ugc3RvcnkgcmVnaW9uICR7dC5zZWN0aW9uUmVnaW9uSWQ/P2A8ZGVmYXVsdD5gfWApO2lmKCFXdyh2dihuLmNvb3JkaW5hdGVTcGFjZS5sb2dpY2FsVG9QaHlzaWNhbCx0LmxvZ2ljYWxCb3VuZHMpLHQucGh5c2ljYWxCb3VuZHMpKXRocm93IG5ldyBaKGBJTlZBTElEX0dFT01FVFJZYCxgJHt0LmlkfSBwaHlzaWNhbCBib3VuZHMgZG8gbm90IG1hdGNoIHRoZSBwYWdlIHN0b3J5IHRyYW5zZm9ybWApO2Euc2V0KHQuaWQsbil9Zm9yKGxldCB0IG9mIGUuZmxvd0RvbWFpbnMpaWYoIWEuaGFzKHQuaWQpJiYhV3codC5sb2dpY2FsQm91bmRzLHQucGh5c2ljYWxCb3VuZHMpKXRocm93IG5ldyBaKGBJTlZBTElEX0dFT01FVFJZYCxgJHt0LmlkfSBoYXMgdW5lcXVhbCBsb2dpY2FsIGFuZCBwaHlzaWNhbCBib3VuZHMgd2l0aG91dCBhIHNlY3Rpb24gcmVnaW9uYCk7aWYoZS5wYWdlTnVtYmVyKXtpZihrdyhlLnBhZ2VOdW1iZXIuZGlzcGxheU51bWJlcixgcGFnZXNbJHtufV0ucGFnZU51bWJlci5kaXNwbGF5TnVtYmVyYCksIU51bWJlci5pc0ludGVnZXIoZS5wYWdlTnVtYmVyLmRpc3BsYXlOdW1iZXIpKXRocm93IG5ldyBaKGBJTlZBTElEX0dFT01FVFJZYCxgcGFnZXNbJHtufV0gcGFnZSBudW1iZXIgaXMgbm90IGFuIGludGVnZXJgKTtpZihlLnBhZ2VOdW1iZXIuZm9ybWF0Lmxlbmd0aD09PTB8fCFpLmhhcyhlLnBhZ2VOdW1iZXIuc2VjdGlvbk9jY3VycmVuY2VJZCkpdGhyb3cgbmV3IFooYElOVkFMSURfUkVGRVJFTkNFYCxgcGFnZXNbJHtufV0gaGFzIGFuIGludmFsaWQgcGFnZSBudW1iZXIgc2VjdGlvbiBvd25lcmApfWxldCBjPVtdO3RyeXtZXyhlKX1jYXRjaChlKXt0aHJvdyBlIGluc3RhbmNlb2YgR18/bmV3IFooYElOVkFMSURfUkVGRVJFTkNFYCxlLm1lc3NhZ2UpOmV9bGV0IGw9bmV3IE1hcCx1PW5ldyBTZXQ7Sl8oZSkuZm9yRWFjaCgoe25vZGU6ZX0saSk9PntsZXQgbz1gcGFnZXNbJHtufV0ubm9kZXNbJHtpfV1gO2wuc2V0KGUuaWQsZSksSncoZSx1LHQpLFl3KGUsbyksTXcoZS5mbG93Qm91bmRzLGAke299LmZsb3dCb3VuZHNgKSxNdyhlLmlua0JvdW5kcyxgJHtvfS5pbmtCb3VuZHNgKSxlLmNsaXBCb3VuZHMmJk13KGUuY2xpcEJvdW5kcyxgJHtvfS5jbGlwQm91bmRzYCksa3coZS5hZHZhbmNlUHQsYCR7b30uYWR2YW5jZVB0YCksZS5raW5kPT09YGRyYXdpbmdgJiZYdyhlLG8pO2xldCBzPXIuZ2V0KGUuZmxvd0RvbWFpbklkKTtpZighcyl0aHJvdyBuZXcgWihgSU5WQUxJRF9SRUZFUkVOQ0VgLGAke2UuaWR9IHJlZmVyZW5jZXMgbWlzc2luZyBmbG93IGRvbWFpbiAke2UuZmxvd0RvbWFpbklkfWApO2lmKGUub3JkaW5hcnlGbG93JiZzLmtpbmQ9PT1gYm9keWAmJnMubG9naWNhbEJvdW5kcy5oZWlnaHRQdD09PTApdGhyb3cgbmV3IFooYEZMT1dfRE9NQUlOX0lOVkFTSU9OYCxgJHtlLmlkfSBjbGFpbXMgb3JkaW5hcnkgZmxvdyBpbiBhbiBlbXB0eSBib2R5IGRvbWFpbmApO2lmKCFlLm9yZGluYXJ5RmxvdylyZXR1cm47bGV0IGQ9cy5raW5kPT09YGJvZHlgP2EuZ2V0KHMuaWQpOnZvaWQgMDtpZihzLmtpbmQ9PT1gYm9keWApe2lmKCFkKXRocm93IG5ldyBaKGBJTlZBTElEX1JFRkVSRU5DRWAsYCR7ZS5pZH0gcmVmZXJlbmNlcyBhIGJvZHkgZmxvdyBkb21haW4gd2l0aG91dCBhIHNlY3Rpb24gcmVnaW9uYCk7aWYoZS5mbG93Qm91bmRzLnlQdCtlLmZsb3dCb3VuZHMuaGVpZ2h0UHQ+ZC5ibG9ja0VuZFB0KXRocm93IG5ldyBaKGBCT1RUT01fTUFSR0lOX0lOVkFTSU9OYCxgJHtlLmlkfSBjcm9zc2VzIGxvZ2ljYWwgYmxvY2sgZW5kYCl9aWYoIShkP0h3KGQuYmxvY2tTdGFydFB0LGQuYmxvY2tFbmRQdCxlLmZsb3dCb3VuZHMpJiYoZS5raW5kPT09YHRhYmxlYHx8Vncocy5sb2dpY2FsQm91bmRzLGUuZmxvd0JvdW5kcykpOmUua2luZD09PWB0YWJsZWA/VXcocy5sb2dpY2FsQm91bmRzLGUuZmxvd0JvdW5kcyk6Qncocy5sb2dpY2FsQm91bmRzLGUuZmxvd0JvdW5kcykpKXRocm93IG5ldyBaKGBGTE9XX0RPTUFJTl9JTlZBU0lPTmAsYCR7ZS5pZH0gY3Jvc3NlcyBmbG93IGRvbWFpbiAke3MuaWR9YCk7Yy5wdXNoKGUpfSk7bGV0IGQ9bmV3IFNldDtpZihlLnJlYWRpbmdPcmRlci5mb3JFYWNoKGU9PntpZighbC5oYXMoZSl8fGQuaGFzKGUpKXRocm93IG5ldyBaKGBJTlZBTElEX1JFRkVSRU5DRWAsYGludmFsaWQgcmVhZGluZy1vcmRlciByZWZlcmVuY2UgJHtlfWApO2QuYWRkKGUpfSksZS5ib29rbWFya1N0YXJ0cyE9PXZvaWQgMCl7bGV0IHQ9aHcoZSxuZXcgTWFwKFsuLi5hXS5tYXAoKFtlLHRdKT0+W2UsdC5zZWN0aW9uT2NjdXJyZW5jZUlkXSkpKSxyPXQuZXZlcnkoZT0+ZS5zZWN0aW9uT2NjdXJyZW5jZUlkLmxlbmd0aD4wJiZpLmhhcyhlLnNlY3Rpb25PY2N1cnJlbmNlSWQpKSxvPWUuYm9va21hcmtTdGFydHMubGVuZ3RoPT09dC5sZW5ndGgmJmUuYm9va21hcmtTdGFydHMuZXZlcnkoKGUsbik9PntsZXQgcj10W25dO3JldHVybiByIT09dm9pZCAwJiZlLm5hbWU9PT1yLm5hbWUmJmUubm9kZUlkPT09ci5ub2RlSWQmJmUuc2VjdGlvbk9jY3VycmVuY2VJZD09PXIuc2VjdGlvbk9jY3VycmVuY2VJZH0pO2lmKCFyfHwhbyl0aHJvdyBuZXcgWihgSU5WQUxJRF9SRUZFUkVOQ0VgLGBwYWdlc1ske259XSBib29rbWFyayBtZXRhZGF0YSBkb2VzIG5vdCBtYXRjaCBpdHMgcmV0YWluZWQgZ3JhcGggKGludmFsaWQgYm9va21hcmsgbm9kZSBvciBvd25lcnNoaXApYCl9Zm9yKGxldCBlPTA7ZTxjLmxlbmd0aDtlKz0xKWZvcihsZXQgdD1lKzE7dDxjLmxlbmd0aDt0Kz0xKXtsZXQgbj1jW2VdLGk9Y1t0XTtpZighbnx8IWkpY29udGludWU7bGV0IGE9ci5nZXQobi5mbG93RG9tYWluSWQpLG89ci5nZXQoaS5mbG93RG9tYWluSWQpLHM9bi5mbG93RG9tYWluSWQ9PT1pLmZsb3dEb21haW5JZCxsPWE/LmtpbmQ9PT1gYm9keWAmJihvPy5raW5kPT09YGZvb3Rub3RlYHx8bz8ua2luZD09PWBlbmRub3RlYCl8fG8/LmtpbmQ9PT1gYm9keWAmJihhPy5raW5kPT09YGZvb3Rub3RlYHx8YT8ua2luZD09PWBlbmRub3RlYCksdT1hPy5pZCE9PW8/LmlkJiYoYT8ua2luZD09PWBmb290bm90ZWB8fGE/LmtpbmQ9PT1gZW5kbm90ZWApJiYobz8ua2luZD09PWBmb290bm90ZWB8fG8/LmtpbmQ9PT1gZW5kbm90ZWApO2lmKChzfHxsfHx1KSYmencobi5mbG93Qm91bmRzLGkuZmxvd0JvdW5kcykpdGhyb3cgbmV3IFooYEZMT1dfT1ZFUkxBUGAsYCR7bi5pZH0gb3ZlcmxhcHMgJHtpLmlkfWApfX0pfWZ1bmN0aW9uIFF3KGUpe3RyeXtadyhlKX1jYXRjaChlKXt0aHJvdyBlIGluc3RhbmNlb2YgWj9lOmUgaW5zdGFuY2VvZiBUeXBlRXJyb3J8fGUgaW5zdGFuY2VvZiBSYW5nZUVycm9yP25ldyBaKGBJTlZBTElEX0dFT01FVFJZYCxlLm1lc3NhZ2UpOmV9fWZ1bmN0aW9uICR3KGUsdCl7aWYodHlwZW9mIGUhPWBvYmplY3RgfHwhZXx8dC5oYXMoZSkpcmV0dXJuIGU7dC5hZGQoZSk7Zm9yKGxldCBuIG9mIE9iamVjdC52YWx1ZXMoZSkpJHcobix0KTtyZXR1cm4gT2JqZWN0LmZyZWV6ZShlKX1jb25zdCBlVD1uZXcgV2Vha1NldCx0VD1uZXcgV2Vha1NldDtmdW5jdGlvbiBuVChlKXtpZihlVC5oYXMoZSkpcmV0dXJuIGU7bGV0IHQ9JHcoZSxuZXcgV2Vha1NldCk7cmV0dXJuIGVULmFkZCh0KSx0fWZ1bmN0aW9uIHJUKGUpe3JldHVybiBlVC5oYXMoZSk/ZTooT3coZSxgbGF5b3V0YCksblQoZSkpfWZ1bmN0aW9uIGlUKGUpe2lmKHRULmhhcyhlKSlyZXR1cm4gZTtRdyhlKTtsZXQgdD1uVChlKTtyZXR1cm4gdFQuYWRkKHQpLHR9ZnVuY3Rpb24gYVQoZSx0KXtpZighTnVtYmVyLmlzSW50ZWdlcih0KXx8dDwwfHx0Pj1lLnBhZ2VzLmxlbmd0aCl0aHJvdyBSYW5nZUVycm9yKGBQYWdlIGluZGV4ICR7dH0gb3V0IG9mIHJhbmdlIChjb3VudDogJHtlLnBhZ2VzLmxlbmd0aH0pYCk7cmV0dXJuIGUucGFnZXNbdF19dmFyIG9UPWNsYXNzeyNlOyN0OyNuPW5ldyBNYXA7I3I7I2k7I2E9bnVsbDtjb25zdHJ1Y3RvcihlLHQsbil7dGhpcy4jZT1lLHRoaXMuI3I9T2JqZWN0LmZyZWV6ZSh7Li4udH0pLHRoaXMuI2k9dHYodGhpcy4jcix0aGlzLiNlKSx0aGlzLiN0PW59Z2V0IGRlZmF1bHRMYXlvdXQoKXtyZXR1cm4gdGhpcy5sYXlvdXRGb3IodGhpcy4jcil9bGF5b3V0Rm9yKGUpe3JldHVybiB0aGlzLnNlbGVjdChlKS5sYXlvdXR9c2VsZWN0KGUpe2xldCB0PU9iamVjdC5pc0Zyb3plbihlKT9lOk9iamVjdC5mcmVlemUoey4uLmV9KSxuPXR2KHQsdGhpcy4jZSkscj10aGlzLiNuLmdldChuKTtyZXR1cm4gcnx8KHI9clQodGhpcy4jdCh0KSksbiE9PXRoaXMuI2kmJih0aGlzLiNhIT09bnVsbCYmdGhpcy4jYSE9PW4mJnRoaXMuI24uZGVsZXRlKHRoaXMuI2EpLHRoaXMuI2E9biksdGhpcy4jbi5zZXQobixyKSksT2JqZWN0LmZyZWV6ZSh7a2V5Om4sb3B0aW9uczp0LGxheW91dDpyfSl9c2VsZWN0UGFnZShlLHQpe2xldCBuPXRoaXMuc2VsZWN0KGUpO3JldHVybiBPYmplY3QuZnJlZXplKHsuLi5uLHBhZ2U6YVQobi5sYXlvdXQsdCl9KX1pc0RlZmF1bHQoZSl7cmV0dXJuIHR2KGUsdGhpcy4jZSk9PT10aGlzLiNpfX07ZnVuY3Rpb24gc1QoZSl7bGV0e3NlcnZpY2VzOnQsZGVmYXVsdEN1cnJlbnREYXRlTXM6bixidWlsZExheW91dDpyfT1lLGk9ZXYoe2RlZmF1bHRDdXJyZW50RGF0ZU1zOm59KSxhPWUuc291cmNlLmZhdGFsUGFyc2Usbz1hPT09bnVsbD9udWxsOlFfKGEubWVzc2FnZSxhLnBhZ2VTaXplLHQudGV4dCkscz1uZXcgb1QodCxpLG89PT1udWxsP3I6KCk9Pm8pO3JldHVybiBfXyh0LHMpLE9iamVjdC5mcmVlemUoe3N0b3JlOnMsZGVmYXVsdE9wdGlvbnM6aX0pfWZ1bmN0aW9uIGNUKGUsdCxuKXtsZXQgcj12XyhlKTtpZighcil0aHJvdyBFcnJvcihgRG9jdW1lbnQgbGF5b3V0IHZhcmlhbnQgc3RvcmUgaXMgbm90IGF0dGFjaGVkIHRvIHRoZSBzdXBwbGllZCBzZXJ2aWNlc2ApO3JldHVybiByLnNlbGVjdFBhZ2UoZXYodCksbil9ZnVuY3Rpb24gbFQoZSx0KXtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7YTplLmEqdC5hK2UuYyp0LmIsYjplLmIqdC5hK2UuZCp0LmIsYzplLmEqdC5jK2UuYyp0LmQsZDplLmIqdC5jK2UuZCp0LmQsZTplLmEqdC5lK2UuYyp0LmYrZS5lLGY6ZS5iKnQuZStlLmQqdC5mK2UuZn0pfWZ1bmN0aW9uIHVUKGUpe3JldHVybiBPYmplY3QuZnJlZXplKHthOmUsYjowLGM6MCxkOmUsZTowLGY6MH0pfWZ1bmN0aW9uIGRUKGUsdCl7cmV0dXJuIE9iamVjdC5mcmVlemUoe2E6MSxiOjAsYzowLGQ6MSxlLGY6dH0pfWZ1bmN0aW9uIGZUKGUsdCl7cmV0dXJue3hQdDplLmEqdC54UHQrZS5jKnQueVB0K2UuZSx5UHQ6ZS5iKnQueFB0K2UuZCp0LnlQdCtlLmZ9fWZ1bmN0aW9uIHBUKGUsdCl7bGV0IG49ZS5hKmUuZC1lLmIqZS5jO2lmKCFOdW1iZXIuaXNGaW5pdGUobil8fG49PT0wKXJldHVybiBudWxsO2xldCByPXQueFB0LWUuZSxpPXQueVB0LWUuZixhPXt4UHQ6KGUuZCpyLWUuYyppKS9uLHlQdDooLWUuYipyK2UuYSppKS9ufTtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKGEueFB0KSYmTnVtYmVyLmlzRmluaXRlKGEueVB0KT9hOm51bGx9ZnVuY3Rpb24gbVQoZSx0KXtsZXQgbj1lLmEqZS5kLWUuYiplLmM7aWYoIU51bWJlci5pc0Zpbml0ZShuKXx8bj09PTApcmV0dXJuIG51bGw7bGV0IHI9e3hQdDooZS5kKnQueFB0LWUuYyp0LnlQdCkvbix5UHQ6KC1lLmIqdC54UHQrZS5hKnQueVB0KS9ufTtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKHIueFB0KSYmTnVtYmVyLmlzRmluaXRlKHIueVB0KT9yOm51bGx9Y29uc3QgaFQ9T2JqZWN0LmZyZWV6ZSh7YToxLGI6MCxjOjAsZDoxLGU6MCxmOjB9KSxnVD1PYmplY3QuZnJlZXplKFtdKTtmdW5jdGlvbiBfVChlKXtsZXQgdD1uZXcgTWFwKGUuc2VjdGlvblJlZ2lvbnMubWFwKGU9PltlLmlkLGVdKSksbj1uZXcgTWFwO2ZvcihsZXQgdCBvZiBlLnNlY3Rpb25SZWdpb25zKWZvcihsZXQgZSBvZiB0LmZsb3dEb21haW5JZHMpbi5zZXQoZSx0KTtmb3IobGV0IHIgb2YgZS5mbG93RG9tYWlucyl7aWYoci5raW5kIT09YGZvb3Rub3RlYCYmci5raW5kIT09YGVuZG5vdGVgKWNvbnRpbnVlO2xldCBpPXIuc2VjdGlvblJlZ2lvbklkP3QuZ2V0KHIuc2VjdGlvblJlZ2lvbklkKTplLnNlY3Rpb25SZWdpb25zWzBdO2lmKCFpKXRocm93IEVycm9yKGAke3IuaWR9IHJlZmVyZW5jZXMgbWlzc2luZyBwYWdlIHN0b3J5IHJlZ2lvbiAke3Iuc2VjdGlvblJlZ2lvbklkPz9gPGRlZmF1bHQ+YH1gKTtuLnNldChyLmlkLGkpfXJldHVybiBufWZ1bmN0aW9uIHZUKGUsdCl7cmV0dXJuIHQuY29vcmRpbmF0ZVNwYWNlPT09YHVwcmlnaHQtcGh5c2ljYWxgP2hUOmUuZ2V0KHQubm9kZS5mbG93RG9tYWluSWQpPy5jb29yZGluYXRlU3BhY2UubG9naWNhbFRvUGh5c2ljYWw/P2hUfWZ1bmN0aW9uIHlUKGUsdCl7bGV0IG49ZS5yb290UG9pbnRUb1BhZ2UuZ2V0KHQucm9vdE5vZGVJZCk7aWYoIW4pdGhyb3cgRXJyb3IoYERyYXdpbmcgZW50cnkgJHt0Lm5vZGUuaWR9IHJlZmVyZW5jZXMgbWlzc2luZyByb290ICR7dC5yb290Tm9kZUlkfWApO2xldCByPW4saT1bXTtmb3IobGV0IGUgb2YgdC5mcmFtZXMpZS5raW5kPT09YHRyYW5zZm9ybWA/cj1sVChyLGUudHJhbnNmb3JtKTppLnB1c2goT2JqZWN0LmZyZWV6ZSh7Ym91bmRzOmUuY2xpcCxwb2ludFRvUGFnZTpyfSkpO3JldHVybntwb2ludFRvUGFnZTpyLGxheW91dFRyYW5zbGF0aW9uUHQ6dC5sYXlvdXRUcmFuc2xhdGlvblB0LHJvb3ROb2RlSWQ6dC5yb290Tm9kZUlkLHBhaW50T3JkZXJJbmRleDplLmRyYXdpbmdQYWludE9yZGVyLmdldCh0Lm5vZGUuaWQpPz8tMSxjbGlwczpPYmplY3QuZnJlZXplKGkpfX1mdW5jdGlvbiBiVChlLHQpe3JldHVybiB0P3suLi5lLGNsaXBzOk9iamVjdC5mcmVlemUoWy4uLmUuY2xpcHMsT2JqZWN0LmZyZWV6ZSh7Ym91bmRzOnQscG9pbnRUb1BhZ2U6ZS5wb2ludFRvUGFnZX0pXSl9OmV9ZnVuY3Rpb24geFQoZSx0LG4pe2xldCByPXQueFB0LWUuZmxvd0JvdW5kcy54UHQsaT10LnlQdC1lLmZsb3dCb3VuZHMueVB0O3JldHVybnsuLi5uLHBvaW50VG9QYWdlOmxUKG4ucG9pbnRUb1BhZ2UsZFQocixpKSksbGF5b3V0VHJhbnNsYXRpb25QdDp7eFB0Om4ubGF5b3V0VHJhbnNsYXRpb25QdC54UHQrcix5UHQ6bi5sYXlvdXRUcmFuc2xhdGlvblB0LnlQdCtpfX19ZnVuY3Rpb24gU1QoZSx0KXtyZXR1cm4odC50ZXh0Qm94SWRzPz9bXSkuZmxhdE1hcCh0PT57bGV0IG49ZS5nZXQodCk7cmV0dXJuIG4/W25dOltdfSl9ZnVuY3Rpb24gQ1QoZSx0LG4pe2lmKG4uZW1pdHRlZFRleHRCb3hlcy5oYXMoZS5pZCkpcmV0dXJuO24uZW1pdHRlZFRleHRCb3hlcy5hZGQoZS5pZCk7bGV0IHI9YlQoey4uLnQscG9pbnRUb1BhZ2U6bFQodC5wb2ludFRvUGFnZSxlLnRyYW5zZm9ybSl9LGUuY2xpcEJvdW5kcyk7Zm9yKGxldCB0IG9mIGUuc3RvcnkuYmxvY2tzKU9UKHQscixuKX1mdW5jdGlvbiB3VChlLHQsbixyKXtsZXQgaT1TVChlLHQpLGE9VFQodCxuLHIpO3IuY29sbGVjdERyYXdpbmdzJiYhci5lbWl0dGVkRHJhd2luZ3MuaGFzKHQuaWQpJiYoci5lbWl0dGVkRHJhd2luZ3MuYWRkKHQuaWQpLHIuZHJhd2luZ3MucHVzaChPYmplY3QuZnJlZXplKHtkcmF3aW5nOnQsdGV4dEJveGVzOmkscG9pbnRUb1BhZ2U6YS5wb2ludFRvUGFnZSxjbGlwczphLmNsaXBzLHBhaW50T3JkZXJJbmRleDphLnBhaW50T3JkZXJJbmRleCxzb3VyY2VPcmRlcjpyLmRyYXdpbmdTb3VyY2VPcmRlcisrfSkpKTtmb3IobGV0IGUgb2YgaSlDVChlLGEscil9ZnVuY3Rpb24gVFQoZSx0LG4pe2xldCByPW4uZHJhd2luZ0VudHJpZXMuZ2V0KGUuaWQpLGk9dDtyJiZyLnJvb3ROb2RlSWQ9PT10LnJvb3ROb2RlSWQmJihpPXlUKG4scikpO2xldCBhPWkubGF5b3V0VHJhbnNsYXRpb25QdCxvPWUuYW5jaG9yTGF5ZXI/Lmhvcml6b250YWxPd25lcnNoaXA9PT1gcGFnZWA/LWEueFB0OjAscz1lLmFuY2hvckxheWVyPy52ZXJ0aWNhbE93bmVyc2hpcD09PWBwYWdlYD8tYS55UHQ6MCxjPW89PT0wJiZzPT09MD9pOnsuLi5pLHBvaW50VG9QYWdlOmxUKGkucG9pbnRUb1BhZ2UsZFQobyxzKSl9O2lmKGUub3JpZW50YXRpb249PT1gdXByaWdodC1waHlzaWNhbGApe2lmKCFlLnRyYW5zZm9ybSl0aHJvdyBFcnJvcihgVXByaWdodCBwaHlzaWNhbCBkcmF3aW5nICR7ZS5pZH0gaXMgbWlzc2luZyBpdHMgbG9naWNhbCB0cmFuc2Zvcm1gKTtjPXsuLi5jLHBvaW50VG9QYWdlOmxUKGMucG9pbnRUb1BhZ2UsZS50cmFuc2Zvcm0pfX1yZXR1cm4gY31mdW5jdGlvbiBFVChlLHQsbil7bGV0IHI9YlQodCxlLmNsaXBCb3VuZHMpO2lmKG4uY29sbGVjdFRleHRSdW5zKWZvcihsZXQgciBvZiBlLmxpbmVzKWZvcihsZXQgaSBvZiByLnBsYWNlbWVudHMpaS5raW5kPT09YHRleHRgJiZuLnJ1bnMucHVzaChPYmplY3QuZnJlZXplKHtwbGFjZW1lbnQ6aSxwb2ludFRvUGFnZTp0LnBvaW50VG9QYWdlLHNvdXJjZTplLnNvdXJjZSwuLi5lLnBhcmFncmFwaElkPT09dm9pZCAwP3t9OntwYXJhZ3JhcGhJZDplLnBhcmFncmFwaElkfX0pKTtsZXQgaT1uZXcgTWFwKGUudGV4dEJveGVzLm1hcChlPT5bZS5pZCxlXSkpLGE9bmV3IFNldCxvPWUuZHJhd2luZ3MubWFwKChlLHQpPT57bGV0IG49ZS5zb3VyY2UucGF0aC5hdCgtMSk7aWYobj09PXZvaWQgMHx8IU51bWJlci5pc1NhZmVJbnRlZ2VyKG4pfHxuPDApdGhyb3cgRXJyb3IoYERyYXdpbmcgJHtlLmlkfSBoYXMgbm8gcmV0YWluZWQgcGFyYWdyYXBoIHJ1biBpbmRleGApO3JldHVybntkcmF3aW5nOmUsaW5kZXg6dCxydW5JbmRleDpufX0pLnNvcnQoKGUsdCk9PmUucnVuSW5kZXgtdC5ydW5JbmRleHx8ZS5pbmRleC10LmluZGV4KSxzPW4uY29sbGVjdERyYXdpbmdzP2UubGluZXMuZmxhdE1hcChlPT5lLnBsYWNlbWVudHMuZmxhdE1hcCgoZSx0KT0+ZS5raW5kIT09YHJlc291cmNlYHx8ZS5yZXNvdXJjZUtpbmQhPT1gaW1hZ2VgJiZlLnJlc291cmNlS2luZCE9PWBjaGFydGB8fGUuc291cmNlUnVuSW5kZXg9PT12b2lkIDA/W106W3twbGFjZW1lbnQ6ZSxpbmRleDp0LHJ1bkluZGV4OmUuc291cmNlUnVuSW5kZXh9XSkpOltdO2ZvcihsZXR7ZHJhd2luZzplfW9mIG8pZm9yKGxldCB0IG9mIGUudGV4dEJveElkcz8/W10pYS5hZGQodCk7bGV0IGM9Wy4uLm8ubWFwKGU9Pih7a2luZDpgZHJhd2luZ2AsLi4uZX0pKSwuLi5zLm1hcChlPT4oe2tpbmQ6YHJlc291cmNlYCwuLi5lfSkpXS5zb3J0KChlLHQpPT5lLnJ1bkluZGV4LXQucnVuSW5kZXh8fGUuaW5kZXgtdC5pbmRleCk7Zm9yKGxldCB0IG9mIGMpe2lmKHQua2luZD09PWBkcmF3aW5nYCl7d1QoaSx0LmRyYXdpbmcscixuKTtjb250aW51ZX1uLmNvbGxlY3REcmF3aW5ncyYmbi5pbmxpbmVSZXNvdXJjZXMucHVzaChPYmplY3QuZnJlZXplKHtwbGFjZW1lbnQ6dC5wbGFjZW1lbnQsc291cmNlOk9iamVjdC5mcmVlemUoey4uLmUuc291cmNlLHBhdGg6T2JqZWN0LmZyZWV6ZShbLi4uZS5zb3VyY2UucGF0aCx0LnJ1bkluZGV4XSl9KSxwb2ludFRvUGFnZTpyLnBvaW50VG9QYWdlLGNsaXBzOnIuY2xpcHMscGFpbnRPcmRlckluZGV4OnIucGFpbnRPcmRlckluZGV4LHNvdXJjZU9yZGVyOm4uZHJhd2luZ1NvdXJjZU9yZGVyKyt9KSl9Zm9yKGxldCB0IG9mIGUudGV4dEJveGVzKWEuaGFzKHQuaWQpfHxDVCh0LHIsbil9ZnVuY3Rpb24gRFQoZSx0LG4pe2xldCByPWJUKHQsZS5jbGlwQm91bmRzKTtmb3IobGV0IHQgb2YgZS5yb3dzKWZvcihsZXQgZSBvZiB0LmNlbGxzKXtsZXQgdD1gdmlzdWFsTWVyZ2VPd25lcnNoaXBgaW4gZSYmZS52aXN1YWxNZXJnZU93bmVyc2hpcD09PWBjb250aW51YXRpb25gO2lmKGUudmVydGljYWxNZXJnZT09PWBjb250aW51ZWAmJiF0KWNvbnRpbnVlO2xldCBpPWJUKHIsZS5jbGlwQm91bmRzKTtmb3IobGV0IHQgb2YgZS5ibG9ja3Mpe2xldCByPXQubGF5b3V0O09UKHIseFQocix7eFB0OmUuY29udGVudEJvdW5kcy54UHQrKHIua2luZD09PWB0YWJsZWA/ci5mbG93Qm91bmRzLnhQdDowKSx5UHQ6ZS5mbG93Qm91bmRzLnlQdCt0Lm9mZnNldFB0KyhyLmtpbmQ9PT1gdGFibGVgP3IuZmxvd0JvdW5kcy55UHQ6MCl9LGkpLG4pfX1mb3IobGV0IGkgb2YgZS5yZXNvbHZlZEZsb2F0aW5nVGFibGVzPz9bXSlPVChpLmNoaWxkLHhUKGkuY2hpbGQse3hQdDppLnhQdC10LmxheW91dFRyYW5zbGF0aW9uUHQueFB0LHlQdDppLnlQdC10LmxheW91dFRyYW5zbGF0aW9uUHQueVB0fSxyKSxuKX1mdW5jdGlvbiBPVChlLHQsbil7c3dpdGNoKGUua2luZCl7Y2FzZWBwYXJhZ3JhcGhgOkVUKGUsdCxuKTtyZXR1cm47Y2FzZWB0YWJsZWA6RFQoZSx0LG4pO3JldHVybjtjYXNlYG5vdGVgOmZvcihsZXQgciBvZiBlLnN0b3J5LmJsb2NrcylPVChyLGJUKHQsZS5zdG9yeS5jbGlwQm91bmRzKSxuKTtyZXR1cm47Y2FzZWB0ZXh0Ym94YDpDVChlLHQsbik7cmV0dXJuO2Nhc2VgZHJhd2luZ2A6e2xldCByPW4uZHJhd2luZ0VudHJpZXMuZ2V0KGUuaWQpO3dUKG5ldyBNYXAoKHI/LnRleHRCb3hlcz8/W10pLm1hcChlPT5bZS5pZCxlXSkpLGUsdCxuKTtyZXR1cm59ZGVmYXVsdDp0aHJvdyBFcnJvcihgVW5rbm93biB0ZXh0LWluZGV4IG5vZGU6ICR7U3RyaW5nKGUpfWApfX1mdW5jdGlvbiBrVChlLHQsbil7bGV0IHI9ZS5wYWdlc1t0XTtpZighcil0aHJvdyBSYW5nZUVycm9yKGBQYWdlIGluZGV4ICR7dH0gaXMgb3V0IG9mIHJhbmdlYCk7bGV0IGk9bmV3IE1hcChyLmxheWVycy5yb290cy5tYXAoZT0+W2Uubm9kZS5pZCxlXSkpLGE9X1Qociksbz1uZXcgTWFwKHIubGF5ZXJzLnJvb3RzLm1hcChlPT5bZS5ub2RlLmlkLHZUKGEsZSldKSkscz1uZXcgTWFwLGM9bmV3IE1hcCxsPW5ldyBNYXA7Zm9yKGxldFtlLHRdb2Ygci5sYXllcnMucGFpbnRPcmRlci5lbnRyaWVzKCkpdC5raW5kPT09YGRyYXdpbmdgJiZzLnNldCh0Lm5vZGUuaWQsdCksdC5raW5kPT09YGRyYXdpbmdgP2Muc2V0KHQubm9kZS5pZCxlKTpsLnNldCh0Lm5vZGUuaWQsZSk7bGV0IHU9ey4uLm4sZHJhd2luZ0VudHJpZXM6cyxyb290UG9pbnRUb1BhZ2U6byxyb290UGFpbnRPcmRlcjpsLGRyYXdpbmdQYWludE9yZGVyOmMsZW1pdHRlZFRleHRCb3hlczpuZXcgU2V0LGVtaXR0ZWREcmF3aW5nczpuZXcgU2V0LHJ1bnM6W10sZHJhd2luZ3M6W10saW5saW5lUmVzb3VyY2VzOltdLGRyYXdpbmdTb3VyY2VPcmRlcjowfTtmb3IobGV0IGUgb2Ygci5yZWFkaW5nT3JkZXIpe2xldCB0PWkuZ2V0KGUpO2lmKCF0KXRocm93IEVycm9yKGBSZWFkaW5nLW9yZGVyIG5vZGUgJHtlfSBpcyBub3QgYSBwYWdlIHJvb3RgKTtsZXQgbj1vLmdldChlKTtpZighbil0aHJvdyBFcnJvcihgUmVhZGluZy1vcmRlciBub2RlICR7ZX0gaGFzIG5vIHBhZ2UgcHJvamVjdGlvbmApO09UKHQubm9kZSx7cG9pbnRUb1BhZ2U6bixsYXlvdXRUcmFuc2xhdGlvblB0Ont4UHQ6MCx5UHQ6MH0scm9vdE5vZGVJZDp0Lm5vZGUuaWQscGFpbnRPcmRlckluZGV4OmwuZ2V0KHQubm9kZS5pZCk/Py0xLGNsaXBzOmdUfSx1KX1yZXR1cm4gdX1mdW5jdGlvbiBBVChlLHQpe3JldHVybiBPYmplY3QuZnJlZXplKGtUKGUsdCx7Y29sbGVjdFRleHRSdW5zOiEwLGNvbGxlY3REcmF3aW5nczohMX0pLnJ1bnMpfWZ1bmN0aW9uIGpUKGUsdCl7bGV0IG49a1QoZSx0LHtjb2xsZWN0VGV4dFJ1bnM6ITEsY29sbGVjdERyYXdpbmdzOiEwfSkscj1bLi4ubi5kcmF3aW5ncywuLi5uLmlubGluZVJlc291cmNlc107cmV0dXJuIHIuc29ydCgoZSx0KT0+ZS5wYWludE9yZGVySW5kZXgtdC5wYWludE9yZGVySW5kZXh8fGUuc291cmNlT3JkZXItdC5zb3VyY2VPcmRlciksT2JqZWN0LmZyZWV6ZShyKX1mdW5jdGlvbiBNVChlKXtsZXQgdD1NYXRoLmh5cG90KGUuYSxlLmIpLG49TWF0aC5oeXBvdChlLmMsZS5kKSxyPWUuYS90LGk9ZS5iL3QsYT1lLmMvbixvPWUuZC9uO2lmKCEocj09PTEmJmk9PT0wJiZhPT09MCYmbz09PTEpKXJldHVybiByPT09MCYmaT09PTEmJmE9PT0tMSYmbz09PTA/YHJvdGF0ZSg5MGRlZylgOnI9PT0wJiZpPT09LTEmJmE9PT0xJiZvPT09MD9gcm90YXRlKC05MGRlZylgOmBtYXRyaXgoJHtyfSwgJHtpfSwgJHthfSwgJHtvfSwgMCwgMClgfWZ1bmN0aW9uIE5UKGUsdCl7bGV0e3BsYWNlbWVudDpufT1lLHI9ZlQodCxuLmJvdW5kcyksaT1NYXRoLmh5cG90KHQuYSx0LmIpLGE9TWF0aC5oeXBvdCh0LmMsdC5kKSxvPU1UKHQpLHM9bi5wYWludE9wc1swXT8ubGV0dGVyU3BhY2luZ1B0Pz8wO3JldHVybntzb3VyY2U6e3N0b3J5OmUuc291cmNlLnN0b3J5LHN0b3J5SW5zdGFuY2U6ZS5zb3VyY2Uuc3RvcnlJbnN0YW5jZSxwYXRoOlsuLi5lLnNvdXJjZS5wYXRoXX0sLi4uZS5wYXJhZ3JhcGhJZD09PXZvaWQgMD97fTp7cGFyYWdyYXBoSWQ6ZS5wYXJhZ3JhcGhJZH0sdGV4dDpuLnRleHQseDpyLnhQdCx5OnIueVB0LHc6bi5ib3VuZHMud2lkdGhQdCppLGg6bi5ib3VuZHMuaGVpZ2h0UHQqYSxmb250U2l6ZTpuLmZvbnRTaXplUHQqYSxmb250Olcobi5mb250Um91dGUsbi5mb250U2l6ZVB0KmEsbi5mb250V2VpZ2h0LG4uZm9udFN0eWxlKSwuLi5zPT09MD97fTp7bGV0dGVyU3BhY2luZ1B4OnMqaX0sLi4ubz97dHJhbnNmb3JtOm99Ont9LC4uLm4uaHlwZXJsaW5rP3toeXBlcmxpbms6bi5oeXBlcmxpbmt9Ont9LC4uLm4udGF0ZUNodVlva28/e2Vhc3RBc2lhblZlcnQ6ITB9Ont9fX1mdW5jdGlvbiBQVChlLHQsbil7aWYoIU51bWJlci5pc0Zpbml0ZShuLnNjYWxlKXx8bi5zY2FsZTw9MCl0aHJvdyBSYW5nZUVycm9yKGBUZXh0IHByb2plY3Rpb24gc2NhbGUgbXVzdCBiZSBwb3NpdGl2ZTogJHtuLnNjYWxlfWApO2xldCByPXVUKG4uc2NhbGUpO3JldHVybiBBVChlLHQpLm1hcChlPT5OVChlLGxUKHIsZS5wb2ludFRvUGFnZSkpKX1mdW5jdGlvbiBGVChlLHQsbil7bGV0IHI9Y1QoZSx7Y3VycmVudERhdGU6bi5jdXJyZW50RGF0ZSxkZWZhdWx0Q3VycmVudERhdGVNczpuLmRlZmF1bHRDdXJyZW50RGF0ZU1zfSx0KSxpPShuLndpZHRoPz9yLnBhZ2UuZ2VvbWV0cnkud2lkdGhQdCoxLjMzMzMzMzMzMzMzMzMzMzMpL3IucGFnZS5nZW9tZXRyeS53aWR0aFB0O3JldHVybiBQVChyLmxheW91dCx0LHtzY2FsZTppfSl9ZnVuY3Rpb24gSVQoZSx0LG4pe3JldHVybmAke2V9JHt0P2B8Y2xyOiR7dH1gOmBgfSR7bj9gfGR1bzoke24uY2xyMX06JHtuLmNscjJ9YDpgYH1gfWFzeW5jIGZ1bmN0aW9uIExUKGUsdCl7bGV0IG49cGFyc2VJbnQodC5zbGljZSgwLDIpLDE2KSxyPXBhcnNlSW50KHQuc2xpY2UoMiw0KSwxNiksaT1wYXJzZUludCh0LnNsaWNlKDQsNiksMTYpLGE9bmV3IE9mZnNjcmVlbkNhbnZhcyhlLndpZHRoLGUuaGVpZ2h0KSxvPWEuZ2V0Q29udGV4dChgMmRgKTtpZighbyl0aHJvdyBFcnJvcihgMkQgY2FudmFzIGlzIHVuYXZhaWxhYmxlIGZvciBpbWFnZSBjb2xvciByZXBsYWNlbWVudGApO28uZHJhd0ltYWdlKGUsMCwwKTtsZXQgcz1vLmdldEltYWdlRGF0YSgwLDAsZS53aWR0aCxlLmhlaWdodCk7Zm9yKGxldCBlPTA7ZTxzLmRhdGEubGVuZ3RoO2UrPTQpcy5kYXRhW2VdPT09biYmcy5kYXRhW2UrMV09PT1yJiZzLmRhdGFbZSsyXT09PWkmJihzLmRhdGFbZSszXT0wKTtyZXR1cm4gby5wdXRJbWFnZURhdGEocywwLDApLGNyZWF0ZUltYWdlQml0bWFwKGEpfWFzeW5jIGZ1bmN0aW9uIFJUKGUsdCxuLHIsaT0wLGE9MCxvKXtsZXQgcz1hd2FpdCBlbChlLHQscix7d2lkdGhQdDppLGhlaWdodFB0OmEsc3VwcHJlc3NCb3VuZGFyeUZyYW1lOiEwfSk7cmV0dXJuIHM/IW4mJiFvP3M6JGMoYGRvY3gtY29sb3ItZWZmZWN0c2AsSVQoZSxuLG8pLHIsYXN5bmMoKT0+e2xldCBlPXM7dHJ5e2lmKG4mJihlPWF3YWl0IExUKGUsbikpLG8pe2xldHt3OnQsaDpufT1vbChlKTtpZih0PjAmJm4+MCl7bGV0IHI9ZTtlPWF3YWl0IG1sKGUsbyx7d2lkdGg6dCxoZWlnaHQ6bn0pLHIhPT1zJiZlIT09ciYmV2Mocil9fXJldHVybntiaXRtYXA6ZSxvd25lZDplIT09c319Y2F0Y2godCl7dGhyb3cgZSE9PXMmJldjKGUpLHR9fSk6bnVsbH1mdW5jdGlvbiB6VChlKXtsZXQgdD1uZXcgTWFwLG49ZS5maWx0ZXIoZT0+ZS5raW5kPT09YGltYWdlYHx8ZS5raW5kPT09YHBpY3R1cmUtYnVsbGV0YCkuc29ydCgoZSx0KT0+KGUuZG9jdW1lbnRPcmRlcj8/MioqNTMtMSktKHQuZG9jdW1lbnRPcmRlcj8/MioqNTMtMSkpO2ZvcihsZXQgZSBvZiBuKXtsZXQgbj1sbChlLm1pbWVUeXBlLGUuc3JjUmVjdCxlLmludHJpbnNpY1NpemUud2lkdGhQdCxlLmludHJpbnNpY1NpemUuaGVpZ2h0UHQpLHI9e2ltYWdlUGF0aDplLnBhcnRQYXRoLG1pbWVUeXBlOmUubWltZVR5cGUsLi4uZS5zdmdJbWFnZVBhdGg9PT12b2lkIDA/e306e3N2Z0ltYWdlUGF0aDplLnN2Z0ltYWdlUGF0aH0sLi4uZS5jb2xvclJlcGxhY2VGcm9tPT09dm9pZCAwP3t9Ontjb2xvclJlcGxhY2VGcm9tOmUuY29sb3JSZXBsYWNlRnJvbX0sLi4uZS5kdW90b25lPT09dm9pZCAwP3t9OntkdW90b25lOmUuZHVvdG9uZX0sd2lkdGhQdDpuLndpZHRoUHQsaGVpZ2h0UHQ6bi5oZWlnaHRQdCxoYXNDcm9wOmUuc3JjUmVjdCE9bnVsbH0saT1JVChyLmltYWdlUGF0aCxyLmNvbG9yUmVwbGFjZUZyb20sci5kdW90b25lKSxhPXQuZ2V0KGkpO2E/KGEud2lkdGhQdD1NYXRoLm1heChhLndpZHRoUHQsci53aWR0aFB0KSxhLmhlaWdodFB0PU1hdGgubWF4KGEuaGVpZ2h0UHQsci5oZWlnaHRQdCksYS5oYXNDcm9wfHw9ci5oYXNDcm9wKTp0LnNldChpLHIpfXJldHVyblsuLi50LnZhbHVlcygpXX1hc3luYyBmdW5jdGlvbiBCVChlLHQpe2lmKCF0KXJldHVybiBuZXcgTWFwO2xldCBuPWF3YWl0IFByb21pc2UuYWxsKHpUKGUpLm1hcChhc3luYyBlPT57bGV0IG49ZS5taW1lVHlwZT09PWBpbWFnZS9zdmcreG1sYCxyPXtzdmdJbWFnZVBhdGg6ZS5zdmdJbWFnZVBhdGgsc3JjUmVjdDplLmhhc0Nyb3B8fG51bGx9LGk7aWYoaGwocikpdHJ5e2k9YXdhaXQgaWwoci5zdmdJbWFnZVBhdGgsdCl9Y2F0Y2gocil7bGV0IGE9bj9hd2FpdCBpbChlLmltYWdlUGF0aCx0KTphd2FpdCBSVChlLmltYWdlUGF0aCxlLm1pbWVUeXBlLGUuY29sb3JSZXBsYWNlRnJvbSx0LGUud2lkdGhQdCxlLmhlaWdodFB0LGUuZHVvdG9uZSk7aWYoIWEpdGhyb3cgcjtpPWF9ZWxzZSBpPW4/YXdhaXQgaWwoZS5pbWFnZVBhdGgsdCk6YXdhaXQgUlQoZS5pbWFnZVBhdGgsZS5taW1lVHlwZSxlLmNvbG9yUmVwbGFjZUZyb20sdCxlLndpZHRoUHQsZS5oZWlnaHRQdCxlLmR1b3RvbmUpO3JldHVybiBpPT1udWxsP251bGw6W0lUKGUuaW1hZ2VQYXRoLGUuY29sb3JSZXBsYWNlRnJvbSxlLmR1b3RvbmUpLGldfSkpO3JldHVybiBuZXcgTWFwKG4uZmlsdGVyKGU9PmUhPT1udWxsKSl9ZnVuY3Rpb24gVlQoZSx0KXtyZXR1cm4gTWF0aC5yb3VuZChlKnQpL3R9ZnVuY3Rpb24gSFQoZSx0LG4pe2xldCByPWUqdDtyZXR1cm4obiUyPT0wP01hdGgucm91bmQocik6TWF0aC5yb3VuZChyLS41KSsuNSkvdH1mdW5jdGlvbiBVVChlLHQsbil7bGV0IHI9dCpuLGk9TWF0aC5tYXgoMSxNYXRoLnJvdW5kKC41KnQpKSxhPU1hdGgubWF4KDEsTWF0aC5yb3VuZChpKm4pKSxvPWEvcjtpZihlLnN0YXJ0LnhQdD09PWUuZW5kLnhQdCl7bGV0IHQ9SFQoZS5zdGFydC54UHQscixhKTtyZXR1cm57c2VnbWVudDp7c3RhcnQ6e3hQdDp0LHlQdDpWVChlLnN0YXJ0LnlQdCxyKX0sZW5kOnt4UHQ6dCx5UHQ6VlQoZS5lbmQueVB0LHIpfX0sd2lkdGhQdDpvfX1pZihlLnN0YXJ0LnlQdD09PWUuZW5kLnlQdCl7bGV0IHQ9SFQoZS5zdGFydC55UHQscixhKTtyZXR1cm57c2VnbWVudDp7c3RhcnQ6e3hQdDpWVChlLnN0YXJ0LnhQdCxyKSx5UHQ6dH0sZW5kOnt4UHQ6VlQoZS5lbmQueFB0LHIpLHlQdDp0fX0sd2lkdGhQdDpvfX1yZXR1cm57c2VnbWVudDplLHdpZHRoUHQ6b319ZnVuY3Rpb24gV1QoZSx0LG4scixpKXtpZihyIT09YHVwcmlnaHQtcGh5c2ljYWxgKXtpLnJlc291cmNlcy5wYWludChlLHQsbixpLmN0eCk7cmV0dXJufWxldHtjdHg6YX09aTthLnNhdmUoKSxhLnRyYW5zbGF0ZShuLnhQdCtuLndpZHRoUHQvMixuLnlQdCtuLmhlaWdodFB0LzIpLGEucm90YXRlKC1NYXRoLlBJLzIpLGkucmVzb3VyY2VzLnBhaW50KGUsdCx7eFB0Oi1uLmhlaWdodFB0LzIseVB0Oi1uLndpZHRoUHQvMix3aWR0aFB0Om4uaGVpZ2h0UHQsaGVpZ2h0UHQ6bi53aWR0aFB0fSxhKSxhLnJlc3RvcmUoKX1mdW5jdGlvbiBHVChlLHQpe2ZvcihsZXQgbiBvZiBlLmNvbW1hbmRzKXtpZihuLmtpbmQ9PT1gbm9vcGApY29udGludWU7aWYobi5raW5kPT09YGRyYXdpbmdtbC1zaGFwZWApe1pvKHQuY3R4LG4ucGxhbiwxKTtjb250aW51ZX1pZihuLmtpbmQ9PT1gZHJhd2luZ21sLWltYWdlLWZpbGxgKXtpZighdC5yZXNvdXJjZXMpdGhyb3cgRXJyb3IoYE1pc3NpbmcgcmV0YWluZWQgcmVzb3VyY2UgcGFpbnRlciBmb3IgJHtuLnJlc291cmNlS2V5fWApO2xldHt4OmUseTpyLHc6aSxoOmF9PW4ucGxhbi5yZWN0LG89bi5maWxsUmVjdD8/e2w6MCx0OjAscjowLGI6MH0scz17eFB0OmUrby5sKmkseVB0OnIrby50KmEsd2lkdGhQdDppKigxLW8ubC1vLnIpLGhlaWdodFB0OmEqKDEtby50LW8uYil9O3Mud2lkdGhQdD4wJiZzLmhlaWdodFB0PjAmJlVvKHQuY3R4LG4ucGxhbiwoKT0+e1dvKHQuY3R4LG4ucGxhbiksV1Qobi5yZXNvdXJjZUtleSxgaW1hZ2VgLHMsdm9pZCAwLHQpfSksWm8odC5jdHgsbi5wbGFuLDEpO2NvbnRpbnVlfWlmKG4ua2luZD09PWByZXNvdXJjZWApe2lmKCF0LnJlc291cmNlcyl0aHJvdyBFcnJvcihgTWlzc2luZyByZXRhaW5lZCByZXNvdXJjZSBwYWludGVyIGZvciAke24ucmVzb3VyY2VLZXl9YCk7V1Qobi5yZXNvdXJjZUtleSxuLnJlc291cmNlS2luZCxuLnJlY3Qsbi5vcmllbnRhdGlvbix0KTtjb250aW51ZX1pZihuLmtpbmQ9PT1gZmlsbC1yZWN0YCl7dC5jdHguZmlsbFN0eWxlPW4uZmlsbCx0LmN0eC5maWxsUmVjdChuLnJlY3QueFB0LG4ucmVjdC55UHQsbi5yZWN0LndpZHRoUHQsbi5yZWN0LmhlaWdodFB0KTtjb250aW51ZX1pZihuLmtpbmQ9PT1gc3Ryb2tlLXJlY3RgKXt0LmN0eC5zdHJva2VTdHlsZT1uLnN0cm9rZSx0LmN0eC5saW5lV2lkdGg9bi5saW5lV2lkdGhQdCx0LmN0eC5zZXRMaW5lRGFzaChbLi4ubi5kYXNoUHRdKSx0LmN0eC5zdHJva2VSZWN0KG4ucmVjdC54UHQsbi5yZWN0LnlQdCxuLnJlY3Qud2lkdGhQdCxuLnJlY3QuaGVpZ2h0UHQpLHQuY3R4LnNldExpbmVEYXNoKFtdKTtjb250aW51ZX1pZihuLmtpbmQ9PT1gd2F0ZXJtYXJrLXRleHRgKXtsZXQgZT1MbihuLmZpbGwsdC5jdHgsbi5yZWN0LnhQdCxuLnJlY3QueVB0LG4ucmVjdC53aWR0aFB0LG4ucmVjdC5oZWlnaHRQdCk7aWYoZT09PW51bGwpY29udGludWU7dC5jdHguc2F2ZSgpO2xldCByPW4ucmVjdC54UHQrbi5yZWN0LndpZHRoUHQvMixpPW4ucmVjdC55UHQrbi5yZWN0LmhlaWdodFB0LzI7dC5jdHgudHJhbnNsYXRlKHIsaSksbi5yb3RhdGlvbkRlZyE9PTAmJnQuY3R4LnJvdGF0ZShuLnJvdGF0aW9uRGVnKk1hdGguUEkvMTgwKSxuLmZpdFNoYXBlPyh0LmN0eC5zY2FsZShuLnJlY3Qud2lkdGhQdC9uLnNvdXJjZUJvdW5kcy53aWR0aFB0LG4ucmVjdC5oZWlnaHRQdC9uLnNvdXJjZUJvdW5kcy5oZWlnaHRQdCksdC5jdHgudHJhbnNsYXRlKC0obi5zb3VyY2VCb3VuZHMueFB0K24uc291cmNlQm91bmRzLndpZHRoUHQvMiksLShuLnNvdXJjZUJvdW5kcy55UHQrbi5zb3VyY2VCb3VuZHMuaGVpZ2h0UHQvMikpKTp0LmN0eC50cmFuc2xhdGUobi5yZWN0LnhQdC1yLW4uc291cmNlQm91bmRzLnhQdCxuLnJlY3QueVB0LWktbi5zb3VyY2VCb3VuZHMueVB0KSx0LmN0eC5nbG9iYWxBbHBoYSo9bi5vcGFjaXR5LHQuY3R4LmZpbGxTdHlsZT1lLHQuY3R4LnRleHRBbGlnbj1gbGVmdGAsdC5jdHgudGV4dEJhc2VsaW5lPWBhbHBoYWJldGljYDtsZXQgYT0wO2ZvcihsZXQgZSBvZiBuLnNwYW5zKXQuY3R4LmZvbnQ9VyhlLmZvbnRSb3V0ZSxuLmZvbnRTaXplUHQsZS5mb250V2VpZ2h0LGUuZm9udFN0eWxlKSx0LmN0eC5maWxsVGV4dChlLnRleHQsYSwwKSxhKz1lLmFkdmFuY2VQdDt0LmN0eC5yZXN0b3JlKCk7Y29udGludWV9dC5jdHguZmlsbFN0eWxlPW4uZmlsbCx0LmN0eC5mb250PVcobi5mb250Um91dGUsbi5mb250U2l6ZVB0LG4uZm9udFdlaWdodCxuLmZvbnRTdHlsZSksdC5jdHgudGV4dEFsaWduPW4uYWxpZ249PT1gc3RhcnRgP2BsZWZ0YDpuLmFsaWduPT09YGVuZGA/YHJpZ2h0YDpgY2VudGVyYCx0LmN0eC50ZXh0QmFzZWxpbmU9bi5iYXNlbGluZTtsZXQgZT1uLmFsaWduPT09YHN0YXJ0YD9uLnJlY3QueFB0Om4uYWxpZ249PT1gZW5kYD9uLnJlY3QueFB0K24ucmVjdC53aWR0aFB0Om4ucmVjdC54UHQrbi5yZWN0LndpZHRoUHQvMixyPW4uYmFzZWxpbmU9PT1gdG9wYD9uLnJlY3QueVB0Om4uYmFzZWxpbmU9PT1gYm90dG9tYD9uLnJlY3QueVB0K24ucmVjdC5oZWlnaHRQdDpuLnJlY3QueVB0K24ucmVjdC5oZWlnaHRQdC8yO3QuY3R4LmZpbGxUZXh0KG4udGV4dCxlLHIpfX1mdW5jdGlvbiBLVChlLHQsbil7bGV0IHI9ZT09PWB0cmlwbGVgLGk9L14odGhpblRoaWNrfHRoaWNrVGhpbnx0aGluVGhpY2tUaGluKShTbWFsbHxNZWRpdW18TGFyZ2UpR2FwJC8uZXhlYyhlKTtpZighciYmIWkpcmV0dXJuIG51bGw7bGV0IGE9cj9bMSwxLDFdOmk/LlsxXT09PWB0aGluVGhpY2tgP1sxLDJdOmk/LlsxXT09PWB0aGlja1RoaW5gP1syLDFdOlsxLDIsMV0sbz1yfHxpPy5bMl09PT1gU21hbGxgPzE6aT8uWzJdPT09YE1lZGl1bWA/MjozLHM9dC8oYS5yZWR1Y2UoKGUsdCk9PmUrdCwwKStvKihhLmxlbmd0aC0xKSksYz1hLm1hcChlPT5NYXRoLm1heCgxLE1hdGgucm91bmQocyplKm4pKSksbD1NYXRoLm1heCgxLE1hdGgucm91bmQocypvKm4pKSx1PTA7cmV0dXJue2JhbmRzOmMubWFwKChlLHQpPT57bGV0IG49e29mZnNldERldjp1LHdpZHRoRGV2OmV9O3JldHVybiB1Kz1lKyh0PGMubGVuZ3RoLTE/bDowKSxufSksc3BhbkRldjp1fX1mdW5jdGlvbiBxVChlKXtyZXR1cm5bLi4uZS5iYW5kc10ucmV2ZXJzZSgpLm1hcCh0PT4oe29mZnNldERldjplLnNwYW5EZXYtdC5vZmZzZXREZXYtdC53aWR0aERldix3aWR0aERldjp0LndpZHRoRGV2fSkpfWZ1bmN0aW9uIEpUKGUsdCxuKXtpZih0LnN0eWxlIT09YGNvbXBvdW5kYClyZXR1cm4hMTtsZXQgcj1uLnBvaW50VG9Dc3M/P3VUKG4uc2NhbGUpO2lmKHIuYiE9PTB8fHIuYyE9PTB8fHIuYTw9MHx8ci5kPD0wKXJldHVybiExO2xldCBpPWZUKHIse3hQdDplLnhQdCx5UHQ6ZS55UHR9KSxhPWZUKHIse3hQdDplLnhQdCtlLndpZHRoUHQseVB0OmUueVB0K2UuaGVpZ2h0UHR9KSxvPUtUKHQuYXV0aG9yZWRTdHlsZSx0LndpZHRoUHQqci5kLG4uZHByKSxzPUtUKHQuYXV0aG9yZWRTdHlsZSx0LndpZHRoUHQqci5hLG4uZHByKTtpZighb3x8IXN8fG8uYmFuZHMubGVuZ3RoIT09cy5iYW5kcy5sZW5ndGgpcmV0dXJuITE7bGV0IGM9cVQobyksbD1xVChzKSx1PShlLHQsaSxhKT0+e2xldCBvPVt7eFB0OmUseVB0OnR9LHt4UHQ6ZStpLHlQdDp0fSx7eFB0OmUseVB0OnQrYX0se3hQdDplK2kseVB0OnQrYX1dLm1hcChlPT5wVChyLGUpKTtpZihvLnNvbWUoZT0+ZT09PW51bGwpKXJldHVybiExO2xldCBzPW8uZmlsdGVyKGU9PmUhPT1udWxsKSxjPXMubWFwKGU9PmUueFB0KSxsPXMubWFwKGU9PmUueVB0KTtyZXR1cm4gbi5jdHguZmlsbFJlY3QoTWF0aC5taW4oLi4uYyksTWF0aC5taW4oLi4ubCksTWF0aC5tYXgoLi4uYyktTWF0aC5taW4oLi4uYyksTWF0aC5tYXgoLi4ubCktTWF0aC5taW4oLi4ubCkpLCEwfSxkPU1hdGgucm91bmQoaS54UHQqbi5kcHItcy5zcGFuRGV2LzIpLGY9TWF0aC5yb3VuZChhLnhQdCpuLmRwcitzLnNwYW5EZXYvMikscD1NYXRoLnJvdW5kKGkueVB0Km4uZHByLW8uc3BhbkRldi8yKSxtPU1hdGgucm91bmQoYS55UHQqbi5kcHIrby5zcGFuRGV2LzIpO24uY3R4LmZpbGxTdHlsZT10LmNvbG9yO2ZvcihsZXQgZT0wO2U8Yy5sZW5ndGg7ZSs9MSl7bGV0IHQ9Y1tlXSxyPWxbZV0saT1kK3Iub2Zmc2V0RGV2LGE9Zi1yLm9mZnNldERldixvPXArdC5vZmZzZXREZXYscz1tLXQub2Zmc2V0RGV2LGg9aS9uLmRwcixnPWEvbi5kcHIsXz1vL24uZHByLHY9cy9uLmRwcix5PXIud2lkdGhEZXYvbi5kcHIsYj10LndpZHRoRGV2L24uZHByO2lmKCF1KGgsXyxnLWgsYil8fCF1KGgsdi1iLGctaCxiKXx8IXUoaCxfLHksdi1fKXx8IXUoZy15LF8seSx2LV8pKXJldHVybiExfXJldHVybiBuLmN0eC5zZXRMaW5lRGFzaChbXSksITB9ZnVuY3Rpb24gWVQoZSl7cmV0dXJuIDEvZS5kcHJ9ZnVuY3Rpb24gWFQoZSx0LG49MCl7bGV0IHI9bi90LnNjYWxlLGk9cj5lLndpZHRoUHQ/ey4uLmUsd2lkdGhQdDpyLC4uLnR5cGVvZiBlLmF1dGhvcmVkU3R5bGU9PWBzdHJpbmdgP3tkYXNoUGF0dGVyblB0Ok9iamVjdC5mcmVlemUoRG4oZS5hdXRob3JlZFN0eWxlLHIpKX06e319OmUse2N0eDphfT10O2Euc3Ryb2tlU3R5bGU9aS5jb2xvcixhLmxpbmVXaWR0aD1pLndpZHRoUHQsYS5zZXRMaW5lRGFzaChgZGFzaFBhdHRlcm5QdGBpbiBpJiZpLmRhc2hQYXR0ZXJuUHQ/Wy4uLmkuZGFzaFBhdHRlcm5QdF06W10pLGEuYmVnaW5QYXRoKCk7bGV0IG89YHBhdGhgaW4gaSYmaS5wYXRoPy5sZW5ndGg/aS5wYXRoOltpLmZyb20saS50b10scz1vLmxlbmd0aD09PTImJihvWzBdLnhQdD09PW9bMV0ueFB0fHxvWzBdLnlQdD09PW9bMV0ueVB0KSxjPXMmJm9bMF0ueVB0PT09b1sxXS55UHQsbD1zJiZvWzBdLnhQdD09PW9bMV0ueFB0LHU9dC5wb2ludFRvQ3NzPz91VCh0LnNjYWxlKSxkPW8ubWFwKGU9PmZUKHUsZSkpLGY9cz9vWzFdLnhQdC1vWzBdLnhQdDowLHA9cz9vWzFdLnlQdC1vWzBdLnlQdDowLG09dS5hKmYrdS5jKnAsaD11LmIqZit1LmQqcCxnPXMmJmg9PT0wLF89cyYmbT09PTAsdj1jP01hdGguaHlwb3QodS5jLHUuZCk6bD9NYXRoLmh5cG90KHUuYSx1LmIpOjAseT1pLnN0eWxlPT09YGNvbXBvdW5kYCYmcyYmdj4wP0tUKGkuYXV0aG9yZWRTdHlsZSxpLndpZHRoUHQqdix0LmRwcik6bnVsbDtpZih5KXthLmZpbGxTdHlsZT1pLmNvbG9yO2xldCBlPShlLHQsbixyKT0+e2xldCBpPVt7eFB0OmUseVB0OnR9LHt4UHQ6ZStuLHlQdDp0fSx7eFB0OmUseVB0OnQrcn0se3hQdDplK24seVB0OnQrcn1dLm1hcChlPT5wVCh1LGUpKTtpZihpLnNvbWUoZT0+ZT09PW51bGwpKXJldHVybjtsZXQgbz1pLmZpbHRlcihlPT5lIT09bnVsbCkscz1vLm1hcChlPT5lLnhQdCksYz1vLm1hcChlPT5lLnlQdCk7YS5maWxsUmVjdChNYXRoLm1pbiguLi5zKSxNYXRoLm1pbiguLi5jKSxNYXRoLm1heCguLi5zKS1NYXRoLm1pbiguLi5zKSxNYXRoLm1heCguLi5jKS1NYXRoLm1pbiguLi5jKSl9LG49TWF0aC5yb3VuZCgoZz9kWzBdLnlQdDpkWzBdLnhQdCkqdC5kcHIteS5zcGFuRGV2LzIpO2ZvcihsZXQgciBvZiB5LmJhbmRzKXtsZXQgaT0obityLm9mZnNldERldikvdC5kcHIscz1yLndpZHRoRGV2L3QuZHByO2lmKGcpZShNYXRoLm1pbihkWzBdLnhQdCxkWzFdLnhQdCksaSxNYXRoLmFicyhtKSxzKTtlbHNlIGlmKF8pZShpLE1hdGgubWluKGRbMF0ueVB0LGRbMV0ueVB0KSxzLE1hdGguYWJzKGgpKTtlbHNle2xldCBlPShyLm9mZnNldERldi15LnNwYW5EZXYvMikvdC5kcHIvdixuPXIud2lkdGhEZXYvdC5kcHIvdjtjP2EuZmlsbFJlY3QoTWF0aC5taW4ob1swXS54UHQsb1sxXS54UHQpLG9bMF0ueVB0K2UsTWF0aC5hYnMob1sxXS54UHQtb1swXS54UHQpLG4pOmEuZmlsbFJlY3Qob1swXS54UHQrZSxNYXRoLm1pbihvWzBdLnlQdCxvWzFdLnlQdCksbixNYXRoLmFicyhvWzFdLnlQdC1vWzBdLnlQdCkpfX1hLnNldExpbmVEYXNoKFtdKTtyZXR1cm59aWYoaS5zdHlsZT09PWBkb3VibGVgJiZzJiZ2PjApe2lmKGEuZmlsbFN0eWxlPWkuY29sb3IsZ3x8Xyl7bGV0IGU9KGUsdCxuLHIpPT57bGV0IGk9W3t4UHQ6ZSx5UHQ6dH0se3hQdDplK24seVB0OnR9LHt4UHQ6ZSx5UHQ6dCtyfSx7eFB0OmUrbix5UHQ6dCtyfV0ubWFwKGU9PnBUKHUsZSkpO2lmKGkuc29tZShlPT5lPT09bnVsbCkpcmV0dXJuO2xldCBvPWkuZmlsdGVyKGU9PmUhPT1udWxsKSxzPW8ubWFwKGU9PmUueFB0KSxjPW8ubWFwKGU9PmUueVB0KTthLmZpbGxSZWN0KE1hdGgubWluKC4uLnMpLE1hdGgubWluKC4uLmMpLE1hdGgubWF4KC4uLnMpLU1hdGgubWluKC4uLnMpLE1hdGgubWF4KC4uLmMpLU1hdGgubWluKC4uLmMpKX0se3JhaWxEZXY6bixnYXBEZXY6cixzcGFuRGV2Om99PWV1KGkud2lkdGhQdCp2LHQuZHByKSxzPW4vdC5kcHI7aWYoZyl7bGV0IGk9TWF0aC5yb3VuZChkWzBdLnlQdCp0LmRwci1vLzIpLGE9TWF0aC5taW4oZFswXS54UHQsZFsxXS54UHQpLGM9TWF0aC5hYnMoZFsxXS54UHQtZFswXS54UHQpO2UoYSxpL3QuZHByLGMscyksZShhLChpK24rcikvdC5kcHIsYyxzKX1lbHNle2xldCBpPU1hdGgucm91bmQoZFswXS54UHQqdC5kcHItby8yKSxhPU1hdGgubWluKGRbMF0ueVB0LGRbMV0ueVB0KSxjPU1hdGguYWJzKGRbMV0ueVB0LWRbMF0ueVB0KTtlKGkvdC5kcHIsYSxzLGMpLGUoKGkrbityKS90LmRwcixhLHMsYyl9fWVsc2V7bGV0e3JhaWxEZXY6ZSxnYXBEZXY6bixzcGFuRGV2OnJ9PWV1KGkud2lkdGhQdCp2LHQuZHByKSxzPWUvdC5kcHIvdixsPW4vdC5kcHIvdix1PXIvdC5kcHIvdjtpZihjKXtsZXQgZT1NYXRoLm1pbihvWzBdLnhQdCxvWzFdLnhQdCksdD1NYXRoLmFicyhvWzFdLnhQdC1vWzBdLnhQdCk7YS5maWxsUmVjdChlLG9bMF0ueVB0LXUvMix0LHMpLGEuZmlsbFJlY3QoZSxvWzBdLnlQdC11LzIrcytsLHQscyl9ZWxzZXtsZXQgZT1NYXRoLm1pbihvWzBdLnlQdCxvWzFdLnlQdCksdD1NYXRoLmFicyhvWzFdLnlQdC1vWzBdLnlQdCk7YS5maWxsUmVjdChvWzBdLnhQdC11LzIsZSxzLHQpLGEuZmlsbFJlY3Qob1swXS54UHQtdS8yK3MrbCxlLHMsdCl9fWEuc2V0TGluZURhc2goW10pO3JldHVybn1sZXQgYj1tVCh1LF8mJnY+MD97eFB0OiRsKGRbMF0ueFB0LGkud2lkdGhQdCp2LHQuZHByKSx5UHQ6MH06ZyYmdj4wP3t4UHQ6MCx5UHQ6JGwoZFswXS55UHQsaS53aWR0aFB0KnYsdC5kcHIpfTp7eFB0OjAseVB0OjB9KT8/e3hQdDowLHlQdDowfSx4PW9bMF07YS5tb3ZlVG8oeC54UHQrYi54UHQseC55UHQrYi55UHQpO2ZvcihsZXQgZSBvZiBvLnNsaWNlKDEpKWEubGluZVRvKGUueFB0K2IueFB0LGUueVB0K2IueVB0KTtsZXQgUz1pLnN0eWxlPT09YHdhdnlgJiZvLmxlbmd0aD4yO1MmJihhLnNhdmUoKSxhLmxpbmVKb2luPWBiZXZlbGApLGEuc3Ryb2tlKCksUyYmYS5yZXN0b3JlKCksYS5zZXRMaW5lRGFzaChbXSl9ZnVuY3Rpb24gWlQoZSx0KXtyZXR1cm4gbj0+KCk9PntlLnNhdmUoKTt0cnl7dCgpLG4oKX1maW5hbGx5e2UucmVzdG9yZSgpfX19ZnVuY3Rpb24gUVQoZSx0KXtsZXQgbj10LnBvaW50VG9Dc3M/P3VUKHQuc2NhbGUpO2lmKG4uYiE9PTB8fG4uYyE9PTApcmV0dXJuIGU7bGV0IHI9W3t4UHQ6ZS54UHQseVB0OmUueVB0fSx7eFB0OmUueFB0K2Uud2lkdGhQdCx5UHQ6ZS55UHR9LHt4UHQ6ZS54UHQseVB0OmUueVB0K2UuaGVpZ2h0UHR9LHt4UHQ6ZS54UHQrZS53aWR0aFB0LHlQdDplLnlQdCtlLmhlaWdodFB0fV0ubWFwKGU9PmZUKG4sZSkpLGk9ci5tYXAoZT0+ZS54UHQpLGE9ci5tYXAoZT0+ZS55UHQpLG89TWF0aC5mbG9vcihNYXRoLm1pbiguLi5pKSp0LmRwcikvdC5kcHIscz1NYXRoLmZsb29yKE1hdGgubWluKC4uLmEpKnQuZHByKS90LmRwcixjPU1hdGguY2VpbChNYXRoLm1heCguLi5pKSp0LmRwcikvdC5kcHIsbD1NYXRoLmNlaWwoTWF0aC5tYXgoLi4uYSkqdC5kcHIpL3QuZHByLHU9W3t4UHQ6byx5UHQ6c30se3hQdDpjLHlQdDpzfSx7eFB0Om8seVB0Omx9LHt4UHQ6Yyx5UHQ6bH1dLm1hcChlPT5wVChuLGUpKTtpZih1LnNvbWUoZT0+ZT09PW51bGwpKXJldHVybiBlO2xldCBkPXUuZmlsdGVyKGU9PmUhPT1udWxsKSxmPWQubWFwKGU9PmUueFB0KSxwPWQubWFwKGU9PmUueVB0KTtyZXR1cm57eFB0Ok1hdGgubWluKC4uLmYpLHlQdDpNYXRoLm1pbiguLi5wKSx3aWR0aFB0Ok1hdGgubWF4KC4uLmYpLU1hdGgubWluKC4uLmYpLGhlaWdodFB0Ok1hdGgubWF4KC4uLnApLU1hdGgubWluKC4uLnApfX1mdW5jdGlvbiAkVChlLHQsbixyPSEwKXtsZXQgaT10LnhQdC1lLmZsb3dCb3VuZHMueFB0LGE9dC55UHQtZS5mbG93Qm91bmRzLnlQdCxvPW4ubGF5b3V0VHJhbnNsYXRpb25QdD8/e3hQdDowLHlQdDowfSxzPWxUKG4ucG9pbnRUb0Nzcz8/dVQobi5zY2FsZSksZFQoaSxhKSksYz1aVChuLmN0eCwoKT0+bi5jdHgudHJhbnNsYXRlKGksYSkpLGw9ey4uLm4scG9pbnRUb0NzczpzLGxheW91dFRyYW5zbGF0aW9uUHQ6e3hQdDpvLnhQdCtpLHlQdDpvLnlQdCthfX07YygoKT0+e2Uua2luZD09PWBwYXJhZ3JhcGhgP2dFKGUsbCk6ckUoZSxsLGUucmVzb2x2ZWRGbG9hdGluZ1RhYmxlcz8/W10scil9KSgpfWZ1bmN0aW9uIGVFKGUsdCl7bGV0IG49WVQodCkscj1uZXcgU2V0O2ZvcihsZXQgbiBvZiBlLmNvbXBvdW5kQm9yZGVyRnJhbWVzPz9bXSlKVChuLmJvdW5kcyxuLmJvcmRlcix0KSYmbi5zZWdtZW50SW5kZXhlcy5mb3JFYWNoKGU9PnIuYWRkKGUpKTtlLmJvcmRlcnMuZm9yRWFjaCgoZSxpKT0+e3IuaGFzKGkpfHxYVChlLHQsbil9KX1mdW5jdGlvbiB0RShlLHQsbil7bGV0IHI9dC54UHQtZS5mbG93Qm91bmRzLnhQdCxpPXQueVB0LWUuZmxvd0JvdW5kcy55UHQsYT1uLmxheW91dFRyYW5zbGF0aW9uUHQ/P3t4UHQ6MCx5UHQ6MH0sbz1sVChuLnBvaW50VG9Dc3M/P3VUKG4uc2NhbGUpLGRUKHIsaSkpLHM9WlQobi5jdHgsKCk9Pm4uY3R4LnRyYW5zbGF0ZShyLGkpKSxjPXsuLi5uLHBvaW50VG9Dc3M6byxsYXlvdXRUcmFuc2xhdGlvblB0Ont4UHQ6YS54UHQrcix5UHQ6YS55UHQraX19O3MoKCk9PntsZXQgdD0oKT0+ZUUoZSxjKTtpZighZS5jbGlwQm91bmRzKXt0KCk7cmV0dXJufVpUKG4uY3R4LCgpPT57bi5jdHguYmVnaW5QYXRoKCksbi5jdHgucmVjdChlLmNsaXBCb3VuZHMueFB0LGUuY2xpcEJvdW5kcy55UHQsZS5jbGlwQm91bmRzLndpZHRoUHQsZS5jbGlwQm91bmRzLmhlaWdodFB0KSxuLmN0eC5jbGlwKCl9KSh0KSgpfSkoKX1mdW5jdGlvbiBuRShlLHQsbixyKXtmb3IobGV0IG4gb2YgZS5yb3dzKWZvcihsZXQgZSBvZiBuLmNlbGxzKXtsZXQgbj1gdmlzdWFsTWVyZ2VPd25lcnNoaXBgaW4gZSYmZS52aXN1YWxNZXJnZU93bmVyc2hpcD09PWBjb250aW51YXRpb25gO2lmKGUudmVydGljYWxNZXJnZT09PWBjb250aW51ZWAmJiFuKWNvbnRpbnVlO2UuYmFja2dyb3VuZCYmKHQuY3R4LmZpbGxTdHlsZT1lLmJhY2tncm91bmQuY29sb3IsdC5jdHguZmlsbFJlY3QoZS5mbG93Qm91bmRzLnhQdCxlLmZsb3dCb3VuZHMueVB0LGUuZmxvd0JvdW5kcy53aWR0aFB0LGUuZmxvd0JvdW5kcy5oZWlnaHRQdCkpO2xldCByPSh0LG49ITApPT57Zm9yKGxldCByIG9mIGUuYmxvY2tzKSRUKHIubGF5b3V0LHt4UHQ6ZS5jb250ZW50Qm91bmRzLnhQdCsoci5sYXlvdXQua2luZD09PWB0YWJsZWA/ci5sYXlvdXQuZmxvd0JvdW5kcy54UHQ6MCkseVB0OmUuZmxvd0JvdW5kcy55UHQrci5vZmZzZXRQdCsoci5sYXlvdXQua2luZD09PWB0YWJsZWA/ci5sYXlvdXQuZmxvd0JvdW5kcy55UHQ6MCl9LHQsci5sYXlvdXQua2luZCE9PWB0YWJsZWB8fG4pfTtpZighZS5jbGlwQm91bmRzKXtyKHQpO2NvbnRpbnVlfWlmKFpUKHQuY3R4LCgpPT57dC5jdHguYmVnaW5QYXRoKCksdC5jdHgucmVjdChlLmNsaXBCb3VuZHMueFB0LGUuY2xpcEJvdW5kcy55UHQsZS5jbGlwQm91bmRzLndpZHRoUHQsZS5jbGlwQm91bmRzLmhlaWdodFB0KSx0LmN0eC5jbGlwKCl9KSgoKT0+cih0LCExKSkoKSxlLmJsb2Nrcy5zb21lKGU9PmUubGF5b3V0LmtpbmQ9PT1gdGFibGVgKSl7bGV0IG49UVQoZS5jbGlwQm91bmRzLHQpO1pUKHQuY3R4LCgpPT57dC5jdHguYmVnaW5QYXRoKCksdC5jdHgucmVjdChuLnhQdCxuLnlQdCxuLndpZHRoUHQsbi5oZWlnaHRQdCksdC5jdHguY2xpcCgpfSkoKCk9Pntmb3IobGV0IG4gb2YgZS5ibG9ja3Mpbi5sYXlvdXQua2luZD09PWB0YWJsZWAmJnRFKG4ubGF5b3V0LHt4UHQ6ZS5jb250ZW50Qm91bmRzLnhQdCtuLmxheW91dC5mbG93Qm91bmRzLnhQdCx5UHQ6ZS5mbG93Qm91bmRzLnlQdCtuLm9mZnNldFB0K24ubGF5b3V0LmZsb3dCb3VuZHMueVB0fSx0KX0pKCl9fWFFKG4sdCksciYmZUUoZSx0KX1mdW5jdGlvbiByRShlLHQsbixyKXtpZighZS5jbGlwQm91bmRzKXtuRShlLHQsbixyKTtyZXR1cm59bGV0IGk9ZS5jbGlwQm91bmRzO1pUKHQuY3R4LCgpPT57dC5jdHguYmVnaW5QYXRoKCksdC5jdHgucmVjdChpLnhQdCxpLnlQdCxpLndpZHRoUHQsaS5oZWlnaHRQdCksdC5jdHguY2xpcCgpfSkoKCk9Pm5FKGUsdCxuLHIpKSgpfWZ1bmN0aW9uIGlFKGUsdCxuKXtyRShlLHQsbj8/ZS5yZXNvbHZlZEZsb2F0aW5nVGFibGVzPz9bXSwhMCl9ZnVuY3Rpb24gYUUoZSx0KXtsZXQgbj10LmxheW91dFRyYW5zbGF0aW9uUHQ/P3t4UHQ6MCx5UHQ6MH07Zm9yKGxldCByIG9mIGUpJFQoci5jaGlsZCx7eFB0OnIueFB0LW4ueFB0LHlQdDpyLnlQdC1uLnlQdH0sdCl9ZnVuY3Rpb24gb0UoZSx0KXtsZXQgbj1lLnRyYW5zZm9ybTtpZihuKXtuLmNhbGwoZSx0LmEsdC5iLHQuYyx0LmQsdC5lLHQuZik7cmV0dXJufWlmKGUudHJhbnNsYXRlKHQuZSx0LmYpLHQuYT09PTAmJnQuYj09PTEmJnQuYz09PS0xJiZ0LmQ9PT0wKWUucm90YXRlKE1hdGguUEkvMik7ZWxzZSBpZih0LmE9PT0wJiZ0LmI9PT0tMSYmdC5jPT09MSYmdC5kPT09MCllLnJvdGF0ZSgtTWF0aC5QSS8yKTtlbHNlIGlmKHQuYj09PTAmJnQuYz09PTApZS5zY2FsZSh0LmEsdC5kKTtlbHNlIHRocm93IEVycm9yKGBDYW52YXMgY29udGV4dCBjYW5ub3QgYXBwbHkgdGhlIHJldGFpbmVkIHBvaW50LXNwYWNlIHRyYW5zZm9ybWApfWZ1bmN0aW9uIHNFKGUpe2lmKGUudGV4dC5sZW5ndGghPT1lLnJhbmdlLmVuZC1lLnJhbmdlLnN0YXJ0KXRocm93IEVycm9yKGBVVEYtMTYgdGV4dCByYW5nZSBpcyBpbmNvbnNpc3RlbnRgKTtpZihlLmNsdXN0ZXJzLmxlbmd0aD09PTApdGhyb3cgRXJyb3IoYFJldGFpbmVkIGdseXBoIHNsaWNlcyBhcmUgaW5jb21wbGV0ZSAoY2x1c3RlcnMpYCk7bGV0IHQ9ZS5yYW5nZS5zdGFydDtmb3IobGV0IG4gb2YgZS5jbHVzdGVycyl7bGV0e2FkdmFuY2VQdDpyLG9mZnNldDppLHJhbmdlOmF9PW47aWYoIU51bWJlci5pc0Zpbml0ZShyKXx8IU51bWJlci5pc0Zpbml0ZShpLnhQdCl8fCFOdW1iZXIuaXNGaW5pdGUoaS55UHQpfHxhLnN0YXJ0IT09dHx8YS5lbmQ8PWEuc3RhcnR8fGEuZW5kPmUucmFuZ2UuZW5kKXRocm93IEVycm9yKGBSZXRhaW5lZCBnbHlwaCBzbGljZXMgYXJlIGluY29tcGxldGUgKGNsdXN0ZXIgcmFuZ2UgJHt0fToke2Euc3RhcnR9LSR7YS5lbmR9LyR7ZS5yYW5nZS5lbmR9OyBhZHZhbmNlICR7cn07IG9mZnNldCAke2kueFB0fSwke2kueVB0fSlgKTt0PWEuZW5kfWlmKHQhPT1lLnJhbmdlLmVuZCl0aHJvdyBFcnJvcihgUmV0YWluZWQgZ2x5cGggc2xpY2VzIGFyZSBpbmNvbXBsZXRlIChjbHVzdGVyIGVuZCAke3R9LyR7ZS5yYW5nZS5lbmR9KWApO2lmKGUucGFpbnRPcHMubGVuZ3RoPT09MCl0aHJvdyBFcnJvcihgUmV0YWluZWQgZ2x5cGggc2xpY2VzIGFyZSBpbmNvbXBsZXRlIChwYWludCBvcHMpYCk7bGV0IG49ZS5yYW5nZS5zdGFydDtmb3IobGV0IHQgb2YgZS5wYWludE9wcyl7bGV0IHI9dC5zb3VyY2VNYXBwaW5nIT09YGthc2hpZGFgJiZ0LnRleHQubGVuZ3RoIT09dC5yYW5nZS5lbmQtdC5yYW5nZS5zdGFydCxpPSFOdW1iZXIuaXNGaW5pdGUodC5vZmZzZXQueFB0KXx8IU51bWJlci5pc0Zpbml0ZSh0Lm9mZnNldC55UHQpfHx0LmdseXBoT2Zmc2V0UHQhPT12b2lkIDAmJighTnVtYmVyLmlzRmluaXRlKHQuZ2x5cGhPZmZzZXRQdC54UHQpfHwhTnVtYmVyLmlzRmluaXRlKHQuZ2x5cGhPZmZzZXRQdC55UHQpKXx8dC5ibG9ja0F4aXNJbmtCb3VuZHMhPT12b2lkIDAmJighTnVtYmVyLmlzRmluaXRlKHQuYmxvY2tBeGlzSW5rQm91bmRzLnN0YXJ0UHQpfHwhTnVtYmVyLmlzRmluaXRlKHQuYmxvY2tBeGlzSW5rQm91bmRzLmVuZFB0KXx8dC5ibG9ja0F4aXNJbmtCb3VuZHMuZW5kUHQ8dC5ibG9ja0F4aXNJbmtCb3VuZHMuc3RhcnRQdCl8fCFOdW1iZXIuaXNGaW5pdGUodC5sZXR0ZXJTcGFjaW5nUHQpfHwhTnVtYmVyLmlzRmluaXRlKHQuc2NhbGVYKXx8dC5zY2FsZVg8PTB8fHQuc2NhbGVZIT09dm9pZCAwJiYoIU51bWJlci5pc0Zpbml0ZSh0LnNjYWxlWSl8fHQuc2NhbGVZPD0wKSxhPXQucmFuZ2Uuc3RhcnQhPT1ufHx0LnJhbmdlLmVuZDw9dC5yYW5nZS5zdGFydHx8dC5yYW5nZS5lbmQ+ZS5yYW5nZS5lbmQ7aWYocnx8aXx8YSl0aHJvdyBFcnJvcihgUmV0YWluZWQgZ2x5cGggc2xpY2VzIGFyZSBpbmNvbXBsZXRlICgke3I/YHRleHRgOmk/YGdlb21ldHJ5YDpgcmFuZ2UgJHtufToke3QucmFuZ2Uuc3RhcnR9LSR7dC5yYW5nZS5lbmR9LyR7ZS5yYW5nZS5lbmR9YH0pYCk7bj10LnJhbmdlLmVuZH1sZXQgcj1lLnRleHQuc2xpY2Uobi1lLnJhbmdlLnN0YXJ0KTtpZihyIT09YGAmJiEvXlxzKyQvdS50ZXN0KHIpKXRocm93IEVycm9yKGBSZXRhaW5lZCBnbHlwaCBzbGljZXMgYXJlIGluY29tcGxldGUgKHBhaW50IGVuZCAke259LyR7ZS5yYW5nZS5lbmR9KWApfWZ1bmN0aW9uIGNFKGUsdCl7cmV0dXJuIGUua2luZD09PWBleHBsaWNpdGA/ZS5jb2xvcjplLmtpbmQ9PT1gYXV0b2A/SW4oZS5iYWNrZ3JvdW5kPz9gI0ZGRkZGRmApOnQuZGVmYXVsdFRleHRDb2xvcj8/YCMwMDAwMDBgfWZ1bmN0aW9uIGxFKGUsdCl7cmV0dXJuIGNFKGUuY29sb3IsdCl9ZnVuY3Rpb24gdUUoZSx0LG49ITEpe2xldHtjdHg6cn09dDtyLmZpbGxTdHlsZT1jRShlLmNvbG9yLHQpLHIuZm9udD1XKGUuZm9udFJvdXRlLGUuZm9udFNpemVQdCxlLmZvbnRXZWlnaHQsZS5mb250U3R5bGUpLG4/KHIuc2F2ZSgpLHIudHJhbnNsYXRlKGUub3JpZ2luLnhQdCxlLm9yaWdpbi55UHQpLHIucm90YXRlKC1NYXRoLlBJLzIpLHIuZmlsbFRleHQoZS50ZXh0LDAsMCksci5yZXN0b3JlKCkpOnIuZmlsbFRleHQoZS50ZXh0LGUub3JpZ2luLnhQdCxlLm9yaWdpbi55UHQpfWZ1bmN0aW9uIGRFKGUsdCl7bGV0e2N0eDpufT10O2lmKG4uYmVnaW5QYXRoKCksZS5wb2ludHMubGVuZ3RoPjApe2xldCB0PWUucG9pbnRzWzBdO24ubW92ZVRvKHQueFB0LHQueVB0KTtmb3IobGV0IHQgb2YgZS5wb2ludHMuc2xpY2UoMSkpbi5saW5lVG8odC54UHQsdC55UHQpfWUuc3Ryb2tlIT09bnVsbCYmKG4uc3Ryb2tlU3R5bGU9ZS5zdHJva2Usbi5saW5lV2lkdGg9ZS5zdHJva2VXaWR0aFB0LG4uc3Ryb2tlKCkpLGUuZmlsbCE9PW51bGwmJihuLmZpbGxTdHlsZT1lLmZpbGwsbi5maWxsKCkpfWZ1bmN0aW9uIGZFKGUsdCl7bGV0IG49bmV3IE1hcChlLnRleHRCb3hlcy5tYXAoZT0+W2UuaWQsZV0pKTtyZXR1cm4odC50ZXh0Qm94SWRzPz9bXSkuZmxhdE1hcChlPT57bGV0IHQ9bi5nZXQoZSk7cmV0dXJuIHQ/W3RdOltdfSl9ZnVuY3Rpb24gcEUoZSx0LG4pe2xldCByPW4ubGF5b3V0VHJhbnNsYXRpb25QdCxpPWUuYW5jaG9yTGF5ZXI/Lmhvcml6b250YWxPd25lcnNoaXA9PT1gcGFnZWA/LShyPy54UHQ/PzApOjAsYT1lLmFuY2hvckxheWVyPy52ZXJ0aWNhbE93bmVyc2hpcD09PWBwYWdlYD8tKHI/LnlQdD8/MCk6MDsoaSE9PTB8fGEhPT0wKSYmKG4uY3R4LnNhdmUoKSxuLmN0eC50cmFuc2xhdGUoaSxhKSk7bGV0IG89bj0+e0dUKGUsbik7Zm9yKGxldCBlIG9mIHQpX0UoZSx7Li4ubixvbWl0QW5jaG9yZWREcmF3aW5nczohMX0pfTt0cnl7aWYoZS5vcmllbnRhdGlvbj09PWB1cHJpZ2h0LXBoeXNpY2FsYCl7aWYoIWUudHJhbnNmb3JtKXRocm93IEVycm9yKGBVcHJpZ2h0IHBoeXNpY2FsIGRyYXdpbmcgcmVxdWlyZXMgaXRzIHJldGFpbmVkIGxvZ2ljYWwgdHJhbnNmb3JtYCk7bGV0IHQ9bFQobi5wb2ludFRvQ3NzPz91VChuLnNjYWxlKSxlLnRyYW5zZm9ybSk7WlQobi5jdHgsKCk9PntvRShuLmN0eCxlLnRyYW5zZm9ybSl9KSgoKT0+byh7Li4ubixwb2ludFRvQ3NzOnR9KSkoKX1lbHNlIG8obil9ZmluYWxseXsoaSE9PTB8fGEhPT0wKSYmbi5jdHgucmVzdG9yZSgpfX1mdW5jdGlvbiBtRShlLHQsbil7cEUodCxmRShlLHQpLG4pfWZ1bmN0aW9uIGhFKGUsdCl7bGV0e2N0eDpufT10LHI9bmV3IFNldChlLmRyYXdpbmdzLmZsYXRNYXAoZT0+ZS50ZXh0Qm94SWRzPz9bXSkpLGk9bj0+bUUoZSxuLHQpLGE9ZS5kcmF3aW5ncy5maWx0ZXIoZT0+ZS5hbmNob3JMYXllcj8uYmVoaW5kRG9jPT09ITApLnNvcnQoKGUsdCk9PmUuYW5jaG9yTGF5ZXIucmVsYXRpdmVIZWlnaHQtdC5hbmNob3JMYXllci5yZWxhdGl2ZUhlaWdodHx8ZS5hbmNob3JMYXllci5zb3VyY2VPcmRlci10LmFuY2hvckxheWVyLnNvdXJjZU9yZGVyKTtpZighdC5vbWl0QW5jaG9yZWREcmF3aW5ncylmb3IobGV0IGUgb2YgYSlpKGUpO2ZvcihsZXQgdCBvZiBlLmxpbmVOdW1iZXJzPz9bXSlmb3IobGV0IGUgb2YgdC5wYWludE9wcyluLmZpbGxTdHlsZT1lLmNvbG9yLG4uZm9udD1lLmZvbnQsbi50ZXh0QWxpZ249ZS50ZXh0QWxpZ24sbi50ZXh0QmFzZWxpbmU9YGFscGhhYmV0aWNgLG4uZmlsbFRleHQoZS50ZXh0LGUub3JpZ2luLnhQdCxlLm9yaWdpbi55UHQpO2Uuc2hhZGluZyYmKG4uZmlsbFN0eWxlPWUuc2hhZGluZy5jb2xvcixuLmZpbGxSZWN0KGUuaW5rQm91bmRzLnhQdCxlLmlua0JvdW5kcy55UHQsZS5pbmtCb3VuZHMud2lkdGhQdCxlLmlua0JvdW5kcy5oZWlnaHRQdCkpO2ZvcihsZXQgciBvZiBlLmxpbmVzKXtmb3IobGV0IGUgb2Ygci5iYXJUYWJSdWxlcz8/W10pWFQoZSx0LFlUKHQpKTtmb3IobGV0IGUgb2Ygci5wbGFjZW1lbnRzKXtpZihlLmtpbmQ9PT1gcmVzb3VyY2VgKXtpZighdC5yZXNvdXJjZXMpdGhyb3cgRXJyb3IoYE1pc3NpbmcgcmV0YWluZWQgcmVzb3VyY2UgcGFpbnRlciBmb3IgJHtlLnJlc291cmNlS2V5fWApO2lmKHQudGV4dEJveFZlcnRpY2FsTW9kZSl7bGV0IHI9dC50ZXh0Qm94VmVydGljYWxNb2RlPT09YHZlcnQyNzBgP01hdGguUEkvMjotTWF0aC5QSS8yO24uc2F2ZSgpLG4udHJhbnNsYXRlKGUuYm91bmRzLnhQdCtlLmJvdW5kcy53aWR0aFB0LzIsZS5ib3VuZHMueVB0K2UuYm91bmRzLmhlaWdodFB0LzIpLG4ucm90YXRlKHIpLFdUKGUucmVzb3VyY2VLZXksZS5yZXNvdXJjZUtpbmQse3hQdDotZS5ib3VuZHMuaGVpZ2h0UHQvMix5UHQ6LWUuYm91bmRzLndpZHRoUHQvMix3aWR0aFB0OmUuYm91bmRzLmhlaWdodFB0LGhlaWdodFB0OmUuYm91bmRzLndpZHRoUHR9LGUub3JpZW50YXRpb24sdCksbi5yZXN0b3JlKCl9ZWxzZSBXVChlLnJlc291cmNlS2V5LGUucmVzb3VyY2VLaW5kLGUuYm91bmRzLGUub3JpZW50YXRpb24sdCk7Y29udGludWV9aWYoZS5raW5kPT09YHRhYmApe2lmKGUubGVhZGVyIT09YG5vbmVgKXtpZighZS5sZWFkZXJHbHlwaHMpdGhyb3cgRXJyb3IoYFJldGFpbmVkIHRhYiBsZWFkZXIgZ2VvbWV0cnkgaXMgbWlzc2luZ2ApO2ZvcihsZXQgbiBvZiBlLmxlYWRlckdseXBocyl1RShuLHQpfWZvcihsZXQgbiBvZiBlLmRlY29yYXRpb25zPz9bXSlYVChuLHQpO2NvbnRpbnVlfWlmKGUua2luZCE9PWB0ZXh0YCljb250aW51ZTtpZihzRShlKSxlLnVuc3VwcG9ydGVkR2VvbWV0cnk/Lmxlbmd0aCl0aHJvdyBFcnJvcihgVW5zdXBwb3J0ZWQgcmV0YWluZWQgdHlwb2dyYXBoeSBnZW9tZXRyeTogJHtlLnVuc3VwcG9ydGVkR2VvbWV0cnkuam9pbihgLCBgKX1gKTtpZihlLmhpZ2hsaWdodEZyYWdtZW50cylmb3IobGV0IHQgb2YgZS5oaWdobGlnaHRGcmFnbWVudHMpbi5maWxsU3R5bGU9dC5jb2xvcixuLmZpbGxSZWN0KHQucmVjdC54UHQsdC5yZWN0LnlQdCx0LnJlY3Qud2lkdGhQdCx0LnJlY3QuaGVpZ2h0UHQpO2Vsc2UgKGUuYmFja2dyb3VuZHx8ZS5oaWdobGlnaHQpJiYobi5maWxsU3R5bGU9ZS5oaWdobGlnaHQ/P2UuYmFja2dyb3VuZD8/YCMwMDAwMDBgLG4uZmlsbFJlY3QoZS5ib3VuZHMueFB0LGUuYm91bmRzLnlQdCxlLmJvdW5kcy53aWR0aFB0LGUuYm91bmRzLmhlaWdodFB0KSk7bi5maWxsU3R5bGU9bEUoZSx0KSxuLmZvbnQ9VyhlLmZvbnRSb3V0ZSxlLmZvbnRTaXplUHQsZS5mb250V2VpZ2h0LGUuZm9udFN0eWxlKSxuLnRleHRBbGlnbj1gbGVmdGAsbi50ZXh0QmFzZWxpbmU9YGFscGhhYmV0aWNgO2xldCByPW4ubGV0dGVyU3BhY2luZyxpPW4uZm9udEtlcm5pbmc7Zm9yKGxldCB0IG9mIGUucGFpbnRPcHMpe24uZGlyZWN0aW9uPXQuZGlyZWN0aW9uLG4uZm9udEtlcm5pbmc9dC5rZXJuaW5nO2xldCByPWUub3JpZ2luLnhQdCt0Lm9mZnNldC54UHQsaT1lLm9yaWdpbi55UHQrdC5vZmZzZXQueVB0LGE9dC5nbHlwaE9mZnNldFB0Py54UHQ/PzAsbz10LmdseXBoT2Zmc2V0UHQ/LnlQdD8/MDtpZih0LmdseXBoT3JpZW50YXRpb249PT1gdXByaWdodGApe24uc2F2ZSgpLG4udHJhbnNsYXRlKHIsaSksbi5yb3RhdGUoLU1hdGguUEkvMiksKHQuc2NhbGVYIT09MXx8dC5zY2FsZVkhPT12b2lkIDApJiYodC53cml0aW5nTW9kZT09PWB2ZXJ0aWNhbC1ybGA/bi5zY2FsZSgxLHQuc2NhbGVYKTpuLnNjYWxlKHQuc2NhbGVYLHQuc2NhbGVZPz8xKSksbi50ZXh0QWxpZ249YGNlbnRlcmAsbi50ZXh0QmFzZWxpbmU9YG1pZGRsZWAsbi5sZXR0ZXJTcGFjaW5nPWAke3QubGV0dGVyU3BhY2luZ1B0fXB4YDtsZXQgZT0oKT0+bi5maWxsVGV4dCh0LnRleHQsYSxvKTt0LnZlcnRpY2FsRmVhdHVyZT9paChuLGUpOmUoKSxuLnJlc3RvcmUoKX1lbHNlIHQuZ2x5cGhPcmllbnRhdGlvbj09PWByb3RhdGVgPyhuLnNhdmUoKSxuLnRyYW5zbGF0ZShyLGkpLHQuc2NhbGVYIT09MSYmbi5zY2FsZSh0LnNjYWxlWCwxKSxuLnRleHRBbGlnbj1gY2VudGVyYCxuLnRleHRCYXNlbGluZT1gbWlkZGxlYCxuLmxldHRlclNwYWNpbmc9YCR7dC5sZXR0ZXJTcGFjaW5nUHQvdC5zY2FsZVh9cHhgLG4uZmlsbFRleHQodC50ZXh0LGEsbyksbi5yZXN0b3JlKCkpOnQuc2NhbGVYPT09MT8obi5sZXR0ZXJTcGFjaW5nPWAke3QubGV0dGVyU3BhY2luZ1B0fXB4YCxuLmZpbGxUZXh0KHQudGV4dCxyK2EsaStvKSk6KG4uc2F2ZSgpLG4udHJhbnNsYXRlKHIrYSxpK28pLG4uc2NhbGUodC5zY2FsZVgsMSksbi5sZXR0ZXJTcGFjaW5nPWAke3QubGV0dGVyU3BhY2luZ1B0L3Quc2NhbGVYfXB4YCxuLmZpbGxUZXh0KHQudGV4dCwwLDApLG4ucmVzdG9yZSgpKX1pZihuLmxldHRlclNwYWNpbmc9cixuLmZvbnRLZXJuaW5nPWksZS5ydWJ5KXtsZXQgbj10LnRleHRCb3hWZXJ0aWNhbE1vZGU9PT1gZWFWZXJ0YHx8dC50ZXh0Qm94VmVydGljYWxNb2RlPT09YG1vbmdvbGlhblZlcnRgO2ZvcihsZXQgciBvZiBlLnJ1YnkucGFpbnRPcHMpdUUocix0LG4pfWZvcihsZXQgbiBvZiBlLmVtcGhhc2lzPy5nbHlwaHM/P1tdKXVFKG4sdCk7Zm9yKGxldCBuIG9mIGUuZW1waGFzaXM/LnBhdGhzPz9bXSlkRShuLHQpO2ZvcihsZXQgbiBvZiBlLmRlY29yYXRpb25zKVhUKG4sdCk7Zm9yKGxldCBuIG9mIGUucnVuQm9yZGVyRnJhZ21lbnRzPz9bXSlYVChuLHQpfX1sZXQgbz1ZVCh0KTtmb3IobGV0IG4gb2YgZS5ib3JkZXJzKVhUKG4sdCxvKTtmb3IobGV0IHQgb2YgZS5kcmF3aW5ncy5maWx0ZXIoZT0+IWUuYW5jaG9yTGF5ZXIpKWkodCk7bGV0IHM9ZS5kcmF3aW5ncy5maWx0ZXIoZT0+ZS5hbmNob3JMYXllciYmIWUuYW5jaG9yTGF5ZXIuYmVoaW5kRG9jKS5zb3J0KChlLHQpPT5lLmFuY2hvckxheWVyLnJlbGF0aXZlSGVpZ2h0LXQuYW5jaG9yTGF5ZXIucmVsYXRpdmVIZWlnaHR8fGUuYW5jaG9yTGF5ZXIuc291cmNlT3JkZXItdC5hbmNob3JMYXllci5zb3VyY2VPcmRlcik7aWYoIXQub21pdEFuY2hvcmVkRHJhd2luZ3MpZm9yKGxldCBlIG9mIHMpaShlKTtmb3IobGV0IG4gb2YgZS50ZXh0Qm94ZXMpci5oYXMobi5pZCl8fF9FKG4sey4uLnQsb21pdEFuY2hvcmVkRHJhd2luZ3M6ITF9KX1mdW5jdGlvbiBnRShlLHQpe2lmKCFlLmNsaXBCb3VuZHMpe2hFKGUsdCk7cmV0dXJufWxldCBuPWUuY2xpcEJvdW5kcztaVCh0LmN0eCwoKT0+e3QuY3R4LmJlZ2luUGF0aCgpLHQuY3R4LnJlY3Qobi54UHQsbi55UHQsbi53aWR0aFB0LG4uaGVpZ2h0UHQpLHQuY3R4LmNsaXAoKX0pKCgpPT5oRShlLHQpKSgpfWZ1bmN0aW9uIF9FKGUsdCl7bGV0IG49dD0+e2ZvcihsZXQgbiBvZiBlLnN0b3J5LmJsb2NrcylpZihuLmtpbmQ9PT1gcGFyYWdyYXBoYClnRShuLHQpO2Vsc2UgaWYobi5raW5kPT09YHRhYmxlYClpRShuLHQsbi5yZXNvbHZlZEZsb2F0aW5nVGFibGVzPz9bXSk7ZWxzZSB0aHJvdyBFcnJvcihgVGV4dC1ib3ggc3RvcnkgY29udGFpbnMgdW5zdXBwb3J0ZWQgcmV0YWluZWQgbm9kZTogJHtuLmtpbmR9YCl9LHI9bFQodC5wb2ludFRvQ3NzPz91VCh0LnNjYWxlKSxlLnRyYW5zZm9ybSksaT1lLnRyYW5zZm9ybS5hIT09MXx8ZS50cmFuc2Zvcm0uYiE9PTB8fGUudHJhbnNmb3JtLmMhPT0wfHxlLnRyYW5zZm9ybS5kIT09MXx8ZS50cmFuc2Zvcm0uZSE9PTB8fGUudHJhbnNmb3JtLmYhPT0wLGE9WlQodC5jdHgsKCk9PntpJiYoZS52ZXJ0aWNhbE1vZGU/KHQuY3R4LnRyYW5zbGF0ZShlLnRyYW5zZm9ybS5lLGUudHJhbnNmb3JtLmYpLHQuY3R4LnJvdGF0ZShlLnZlcnRpY2FsTW9kZT09PWB2ZXJ0MjcwYD8tTWF0aC5QSS8yOk1hdGguUEkvMikpOnQuY3R4LnRyYW5zZm9ybShlLnRyYW5zZm9ybS5hLGUudHJhbnNmb3JtLmIsZS50cmFuc2Zvcm0uYyxlLnRyYW5zZm9ybS5kLGUudHJhbnNmb3JtLmUsZS50cmFuc2Zvcm0uZikpfSksbz1lLmNsaXBCb3VuZHM/WlQodC5jdHgsKCk9Pnt0LmN0eC5iZWdpblBhdGgoKSx0LmN0eC5yZWN0KGUuY2xpcEJvdW5kcy54UHQsZS5jbGlwQm91bmRzLnlQdCxlLmNsaXBCb3VuZHMud2lkdGhQdCxlLmNsaXBCb3VuZHMuaGVpZ2h0UHQpLHQuY3R4LmNsaXAoKX0pOm51bGwscz10LmRvY3VtZW50RGVmYXVsdFRleHRDb2xvcj8/dC5kZWZhdWx0VGV4dENvbG9yPz9gIzAwMDAwMGAsYz17Li4udCxwb2ludFRvQ3NzOnIsZG9jdW1lbnREZWZhdWx0VGV4dENvbG9yOnMsZGVmYXVsdFRleHRDb2xvcjplLmRlZmF1bHRUZXh0Q29sb3I/P3MsLi4uZS52ZXJ0aWNhbE1vZGU/e3RleHRCb3hWZXJ0aWNhbE1vZGU6ZS52ZXJ0aWNhbE1vZGV9Ont9fTthKCgpPT57bz9vKCgpPT5uKGMpKSgpOm4oYyl9KSgpfWZ1bmN0aW9uIHZFKGUsdCl7bGV0IG49bFQodC5wb2ludFRvQ3NzPz91VCh0LnNjYWxlKSxlLmxvZ2ljYWxUb1BoeXNpY2FsKSxyPXsuLi50LHBvaW50VG9Dc3M6bn07WlQodC5jdHgsKCk9PntvRSh0LmN0eCxlLmxvZ2ljYWxUb1BoeXNpY2FsKX0pKCgpPT57Zm9yKGxldCB0IG9mIGUuc2VnbWVudHMpWFQodCxyLC41KX0pKCl9Y29uc3QgeUU9T2JqZWN0LmZyZWV6ZSh7cGFpbnQoZSx0KXt0aHJvdyBFcnJvcihgTWlzc2luZyByZXRhaW5lZCByZXNvdXJjZSBwYWludGVyIGZvciAke2V9OiBleHBlY3RlZCAke3R9YCl9fSk7ZnVuY3Rpb24gYkUoZSx0KXtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7cGFpbnQobixyLGksYSl7c3dpdGNoKHIpe2Nhc2VgaW1hZ2VgOnQuaW1hZ2UoZS5yZXNvbHZlKG4sciksaSxhKTtyZXR1cm47Y2FzZWBjaGFydGA6dC5jaGFydChlLnJlc29sdmUobixyKSxpLGEpO3JldHVybjtjYXNlYG1hdGhgOnQubWF0aChlLnJlc29sdmUobixyKSxpLGEpO3JldHVybjtjYXNlYHBpY3R1cmUtYnVsbGV0YDp0W2BwaWN0dXJlLWJ1bGxldGBdKGUucmVzb2x2ZShuLHIpLGksYSk7cmV0dXJuO2RlZmF1bHQ6dGhyb3cgRXJyb3IoYFVua25vd24gcmV0YWluZWQgcmVzb3VyY2Uga2luZDogJHtTdHJpbmcocil9YCl9fX0pfWZ1bmN0aW9uIHhFKGUsdCl7c3dpdGNoKGUua2luZCl7Y2FzZWBkcmF3aW5nYDpHVChlLHQpO3JldHVybjtjYXNlYHBhcmFncmFwaGA6Z0UoZSx0KTtyZXR1cm47Y2FzZWB0YWJsZWA6aUUoZSx0LGUucmVzb2x2ZWRGbG9hdGluZ1RhYmxlcz8/W10pO3JldHVybjtjYXNlYG5vdGVgOntlLnNlcGFyYXRvci5mb3JFYWNoKGU9PlhUKGUsdCkpO2xldCBuPSgpPT5lLnN0b3J5LmJsb2Nrcy5mb3JFYWNoKGU9PnhFKGUsdCkpO2lmKCFlLnN0b3J5LmNsaXBCb3VuZHMpe24oKTtyZXR1cm59bGV0IHI9ZS5zdG9yeS5jbGlwQm91bmRzO3QuY3R4LnNhdmUoKTt0cnl7dC5jdHguYmVnaW5QYXRoKCksdC5jdHgucmVjdChyLnhQdCxyLnlQdCxyLndpZHRoUHQsci5oZWlnaHRQdCksdC5jdHguY2xpcCgpLG4oKX1maW5hbGx5e3QuY3R4LnJlc3RvcmUoKX1yZXR1cm59Y2FzZWB0ZXh0Ym94YDp0aHJvdyBFcnJvcihgVW5zdXBwb3J0ZWQgcGFnZSBwYWludCBub2RlIGtpbmQ6ICR7ZS5raW5kfWApO2RlZmF1bHQ6dGhyb3cgRXJyb3IoYFVua25vd24gcGFnZSBwYWludCBub2RlIGtpbmQ6ICR7U3RyaW5nKGUpfWApfX1mdW5jdGlvbiBTRShlLHQpe2xldCBuPWUuY29sdW1uU2VwYXJhdG9ycztpZihuLmxlbmd0aD09PTApcmV0dXJuO2xldHtjdHg6cn09dDtyLnNhdmUoKSxyLnN0cm9rZVN0eWxlPWAjMDAwMDAwYDtmb3IobGV0IGUgb2Ygbil7bGV0IG49VVQoZSx0LnNjYWxlLHQuZHByKTtyLmxpbmVXaWR0aD1uLndpZHRoUHQsci5iZWdpblBhdGgoKSxyLm1vdmVUbyhuLnNlZ21lbnQuc3RhcnQueFB0LG4uc2VnbWVudC5zdGFydC55UHQpLHIubGluZVRvKG4uc2VnbWVudC5lbmQueFB0LG4uc2VnbWVudC5lbmQueVB0KSxyLnN0cm9rZSgpfXIucmVzdG9yZSgpfWZ1bmN0aW9uIENFKGUsdCxuLHIpe2xldCBpPW4uZ2V0KGUuZmxvd0RvbWFpbklkKSxhPWUuY29vcmRpbmF0ZVNwYWNlPT09YHVwcmlnaHQtcGh5c2ljYWxgP3ZvaWQgMDppPy5jb29yZGluYXRlU3BhY2UubG9naWNhbFRvUGh5c2ljYWwsbz1aVCh0LmN0eCwoKT0+e2EmJihhLmEhPT0xfHxhLmIhPT0wfHxhLmMhPT0wfHxhLmQhPT0xfHxhLmUhPT0wfHxhLmYhPT0wKSYmb0UodC5jdHgsYSl9KSxzPXsuLi50LC4uLmE/e3BvaW50VG9Dc3M6e2E6YS5hKnQuc2NhbGUsYjphLmIqdC5zY2FsZSxjOmEuYyp0LnNjYWxlLGQ6YS5kKnQuc2NhbGUsZTphLmUqdC5zY2FsZSxmOmEuZip0LnNjYWxlfX06e319O28oKCk9PnIocykpKCl9ZnVuY3Rpb24gd0UoZSx0KXtpZihlLmtpbmQ9PT1gdHJhbnNmb3JtYCl7bGV0IG49dC50cmFuc2Zvcm07aWYobiluLmNhbGwodCxlLnRyYW5zZm9ybS5hLGUudHJhbnNmb3JtLmIsZS50cmFuc2Zvcm0uYyxlLnRyYW5zZm9ybS5kLGUudHJhbnNmb3JtLmUsZS50cmFuc2Zvcm0uZik7ZWxzZSBpZihlLnRyYW5zZm9ybS5hPT09MSYmZS50cmFuc2Zvcm0uYj09PTAmJmUudHJhbnNmb3JtLmM9PT0wJiZlLnRyYW5zZm9ybS5kPT09MSl0LnRyYW5zbGF0ZShlLnRyYW5zZm9ybS5lLGUudHJhbnNmb3JtLmYpO2Vsc2UgdGhyb3cgRXJyb3IoYENhbnZhcyBjb250ZXh0IGNhbm5vdCBhcHBseSB0aGUgcmV0YWluZWQgcGFnZSBwYWludCB0cmFuc2Zvcm1gKTtyZXR1cm59dC5iZWdpblBhdGgoKSx0LnJlY3QoZS5jbGlwLnhQdCxlLmNsaXAueVB0LGUuY2xpcC53aWR0aFB0LGUuY2xpcC5oZWlnaHRQdCksdC5jbGlwKCl9ZnVuY3Rpb24gVEUoZSx0KXtsZXQgbj10LnBvaW50VG9Dc3M/P3VUKHQuc2NhbGUpO2ZvcihsZXQgdCBvZiBlLmZyYW1lcyl0LmtpbmQ9PT1gdHJhbnNmb3JtYCYmKG49bFQobix0LnRyYW5zZm9ybSkpO2xldCByPXsuLi50LHBvaW50VG9Dc3M6bixsYXlvdXRUcmFuc2xhdGlvblB0OmUubGF5b3V0VHJhbnNsYXRpb25QdCxvbWl0QW5jaG9yZWREcmF3aW5nczohMX0saT0wO3RyeXtmb3IobGV0IG4gb2YgZS5mcmFtZXMpdC5jdHguc2F2ZSgpLGkrPTEsd0Uobix0LmN0eCk7cEUoZS5ub2RlLGUudGV4dEJveGVzLHIpfWZpbmFsbHl7Zm9yKDtpPjA7KXQuY3R4LnJlc3RvcmUoKSwtLWl9fWZ1bmN0aW9uIEVFKGUsdCl7bGV0IG49bmV3IE1hcChlLnNlY3Rpb25SZWdpb25zLmZsYXRNYXAoZT0+ZS5mbG93RG9tYWluSWRzLm1hcCh0PT5bdCxlXSkpKSxyPW5ldyBNYXAoZS5zZWN0aW9uUmVnaW9ucy5tYXAoZT0+W2UuaWQsZV0pKTtmb3IobGV0IHQgb2YgZS5mbG93RG9tYWlucylpZih0LmtpbmQ9PT1gZm9vdG5vdGVgfHx0LmtpbmQ9PT1gZW5kbm90ZWApe2xldCBpPXQuc2VjdGlvblJlZ2lvbklkP3IuZ2V0KHQuc2VjdGlvblJlZ2lvbklkKTplLnNlY3Rpb25SZWdpb25zWzBdO2lmKCFpKXRocm93IEVycm9yKGAke3QuaWR9IHJlZmVyZW5jZXMgbWlzc2luZyBwYWdlIHN0b3J5IHJlZ2lvbiAke3Quc2VjdGlvblJlZ2lvbklkPz9gPGRlZmF1bHQ+YH1gKTtuLnNldCh0LmlkLGkpfWxldCBpPWUubGF5ZXJzLnBhaW50T3JkZXIsYT1pLmZpbmRJbmRleChlPT5lLnNvdXJjZUxheWVyIT09YGJhY2tncm91bmRgJiZlLnNvdXJjZUxheWVyIT09YGJlaGluZFRleHRgJiZlLnNvdXJjZUxheWVyIT09YGhlYWRlcmApLG89YT09PS0xP2kubGVuZ3RoOmEscz1lPT57Zm9yKGxldCByIG9mIGUpQ0Uocix0LG4sZT0+e3Iua2luZD09PWBkcmF3aW5nYD9URShyLGUpOnhFKHIubm9kZSx7Li4uZSxvbWl0QW5jaG9yZWREcmF3aW5nczpyLm9taXRBbmNob3JlZERyYXdpbmdzfSl9KX07ZS5wYWdlQm9yZGVyPy56T3JkZXI9PT1gYmFja2AmJnZFKGUucGFnZUJvcmRlcix0KSxzKGkuc2xpY2UoMCxvKSksU0UoZSx0KSxzKGkuc2xpY2UobykpLGUucGFnZUJvcmRlcj8uek9yZGVyIT09YGJhY2tgJiZlLnBhZ2VCb3JkZXImJnZFKGUucGFnZUJvcmRlcix0KX1hc3luYyBmdW5jdGlvbiBERShlLHQsbixyLGk9eUUpe2xldCBhPWUucGFnZXNbdF07aWYoIWEpdGhyb3cgUmFuZ2VFcnJvcihgUGFnZSAke3R9IGlzIG91dHNpZGUgdGhlIGxheW91dGApO2xldCBvPW4uZ2V0Q29udGV4dChgMmRgKTtpZighbyl0aHJvdyBFcnJvcihgQ2FudmFzIDJEIGNvbnRleHQgaXMgdW5hdmFpbGFibGVgKTtsZXQgcz1yLnNjYWxlKnIuZHByO24ud2lkdGg9TWF0aC5jZWlsKGEuZ2VvbWV0cnkud2lkdGhQdCpzKSxuLmhlaWdodD1NYXRoLmNlaWwoYS5nZW9tZXRyeS5oZWlnaHRQdCpzKSxvLnNhdmUoKTt0cnl7by5zZXRUcmFuc2Zvcm0oMSwwLDAsMSwwLDApLG8uY2xlYXJSZWN0KDAsMCxuLndpZHRoLG4uaGVpZ2h0KSxvLnNldFRyYW5zZm9ybShzLDAsMCxzLDAsMCksRUUoYSx7Y3R4Om8sc2NhbGU6ci5zY2FsZSxkcHI6ci5kcHIscmVzb3VyY2VzOml9KX1maW5hbGx5e28ucmVzdG9yZSgpfX1mdW5jdGlvbiBPRShlLHQpe2lmKHR5cGVvZiBlIT1gc3RyaW5nYHx8ZS50cmltKCkubGVuZ3RoPT09MCl0aHJvdyBUeXBlRXJyb3IoYCR7dH0gbXVzdCBiZSBhIG5vbi1lbXB0eSBzdHJpbmdgKX1mdW5jdGlvbiBrRShlKXtyZXR1cm4gT0UoZSxgdW5hdmFpbGFibGUgcGFpbnQgcmVzb3VyY2UgcmVhc29uYCksT2JqZWN0LmZyZWV6ZSh7c3RhdHVzOmB1bmF2YWlsYWJsZWAscmVhc29uOmV9KX1mdW5jdGlvbiBBRShlKXtyZXR1cm4gdHlwZW9mIGU9PWBvYmplY3RgJiYhIWUmJmUuc3RhdHVzPT09YHVuYXZhaWxhYmxlYCYmdHlwZW9mIGUucmVhc29uPT1gc3RyaW5nYCYmZS5yZWFzb24udHJpbSgpLmxlbmd0aD4wfWZ1bmN0aW9uIGpFKGUpe3R5cGVvZiBlIT1gb2JqZWN0YHx8IWV8fGUuc3RhdHVzIT09YHVuYXZhaWxhYmxlYHx8T0UoZS5yZWFzb24sYHVuYXZhaWxhYmxlIHBhaW50IHJlc291cmNlIHJlYXNvbmApfWZ1bmN0aW9uIE1FKGUsdCl7bGV0IG49bmV3IE1hcDtmb3IobGV0IHIgb2YgdCl7aWYobi5oYXMoci5yZXNvdXJjZUtleSkpdGhyb3cgRXJyb3IoYER1cGxpY2F0ZSBwYWludCByZXNvdXJjZSBoYW5kbGU6ICR7ci5yZXNvdXJjZUtleX1gKTtqRShyLmhhbmRsZSksZS5yZXNvbHZlKHIucmVzb3VyY2VLZXksci5raW5kKSxuLnNldChyLnJlc291cmNlS2V5LE9iamVjdC5mcmVlemUoe2tpbmQ6ci5raW5kLGhhbmRsZTpyLmhhbmRsZX0pKX1sZXQgcj1PYmplY3QuZnJlZXplKFsuLi5uLmtleXMoKV0uc29ydCgpKTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7a2V5czpyLHJlc29sdmUodCxyKXtsZXQgaT1lLnJlc29sdmUodCxyKSxhPW4uZ2V0KHQpO2lmKCFhKXRocm93IEVycm9yKGBNaXNzaW5nIHBhaW50IHJlc291cmNlIGhhbmRsZSBmb3IgJHt0fTogZXhwZWN0ZWQgJHtyfWApO2lmKGEua2luZCE9PXIpdGhyb3cgRXJyb3IoYFBhaW50IHJlc291cmNlIGtpbmQgbWlzbWF0Y2ggZm9yICR7dH06IGV4cGVjdGVkICR7cn0sIGdvdCAke2Eua2luZH1gKTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7ZGVzY3JpcHRvcjppLGhhbmRsZTphLmhhbmRsZX0pfX0pfWZ1bmN0aW9uIE5FKGUsdCl7cmV0dXJuIE1FKGUsZS5kZXNjcmlwdG9ycy5tYXAoZT0+e2lmKGUua2luZD09PWBjaGFydGApcmV0dXJue3Jlc291cmNlS2V5OmUucmVzb3VyY2VLZXksa2luZDplLmtpbmQsaGFuZGxlOm51bGx9O2xldCBuPXQoZSk7aWYobj09bnVsbCl0aHJvdyBFcnJvcihgTWlzc2luZyAke2Uua2luZH0gcGFpbnQgaGFuZGxlIGZvciAke2UucmVzb3VyY2VLZXl9YCk7cmV0dXJue3Jlc291cmNlS2V5OmUucmVzb3VyY2VLZXksa2luZDplLmtpbmQsaGFuZGxlOm59fSkpfWZ1bmN0aW9uIFBFKGUpe2lmKCFBRShlLmhhbmRsZSkpe2lmKGUuaGFuZGxlPT09dm9pZCAwfHxlLmhhbmRsZT09PW51bGwpdGhyb3cgRXJyb3IoYE1pc3NpbmcgJHtlLmRlc2NyaXB0b3Iua2luZH0gZHJhd2FibGUgZm9yICR7ZS5kZXNjcmlwdG9yLnJlc291cmNlS2V5fWApO3JldHVybiBlLmhhbmRsZX19ZnVuY3Rpb24gRkUoZSx0LG4pe2xldCByPWUuZGVzY3JpcHRvcixpPVBFKGUpO2lmKCFpKXJldHVybjtsZXQgYT0oZSxhKT0+e2NsKG4saSxyLnNyY1JlY3QsZSxhLHQud2lkdGhQdCx0LmhlaWdodFB0KX0sbz1yLmFscGhhIT09dm9pZCAwJiZyLmFscGhhPDE7byYmKG4uc2F2ZSgpLG4uZ2xvYmFsQWxwaGEqPXIuYWxwaGEpO2xldCBzPXIucm90YXRpb24/PzA7cz09PTAmJiFyLmZsaXBIJiYhci5mbGlwVj9hKHQueFB0LHQueVB0KToobi5zYXZlKCksbi50cmFuc2xhdGUodC54UHQrdC53aWR0aFB0LzIsdC55UHQrdC5oZWlnaHRQdC8yKSxuLnJvdGF0ZShzKk1hdGguUEkvMTgwKSxuLnNjYWxlKHIuZmxpcEg/LTE6MSxyLmZsaXBWPy0xOjEpLGEoLXQud2lkdGhQdC8yLC10LmhlaWdodFB0LzIpLG4ucmVzdG9yZSgpKSxvJiZuLnJlc3RvcmUoKX1mdW5jdGlvbiBJRShlLHQsbil7bGV0IHI9UEUoZSk7ciYmbi5kcmF3SW1hZ2Uocix0LnhQdCx0LnlQdCx0LndpZHRoUHQsdC5oZWlnaHRQdCl9ZnVuY3Rpb24gTEUoZSx0KXtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7aW1hZ2UoZSx0LG4pe0ZFKGUsdCxuKX0sY2hhcnQobixyLGkpe1phKGksbi5kZXNjcmlwdG9yLm1vZGVsLHt4OnIueFB0LHk6ci55UHQsdzpyLndpZHRoUHQsaDpyLmhlaWdodFB0fSwxLDAsZSx0KX0sbWF0aChlLHQsbil7SUUoZSx0LG4pfSwicGljdHVyZS1idWxsZXQiKGUsdCxuKXtJRShlLHQsbil9fSl9Y29uc3QgUkU9TEUoKSx6RT1uZXcgV2Vha01hcDtmdW5jdGlvbiBCRShlLHQpe3JldHVybih0Pz9lLmdlb21ldHJ5LndpZHRoUHQqMS4zMzMzMzMzMzMzMzMzMzMzKS9lLmdlb21ldHJ5LndpZHRoUHR9ZnVuY3Rpb24gVkUoZSl7aWYoWmwoZSkpcmV0dXJuIGUub3duZXJEb2N1bWVudD8/KHR5cGVvZiBkb2N1bWVudD5gdWA/bnVsbDpkb2N1bWVudCk7bGV0IHQ9ZS5vd25lckRvY3VtZW50LG49dD8uZGVmYXVsdFZpZXc/LkhUTUxDYW52YXNFbGVtZW50O3JldHVybiBuJiZlIGluc3RhbmNlb2Ygbj90Om51bGx9ZnVuY3Rpb24gSEUoZSl7cmV0dXJuIFZFKGUpIT09bnVsbH1mdW5jdGlvbiBVRShlLHQpe2xldCBuPVZFKGUpO2lmKCF0fHxuJiZlLmlzQ29ubmVjdGVkKXJldHVybntjYW52YXM6ZX07bGV0IHI9bj8/KHR5cGVvZiBkb2N1bWVudD5gdWA/dm9pZCAwOmRvY3VtZW50KTtpZighcil0aHJvdyBFcnJvcihgT3BlblR5cGUgdmVydGljYWwgZ2x5cGggcGFpbnQgcmVxdWlyZXMgYW4gZWxlbWVudC1iYWNrZWQgZG9jdW1lbnQgc3VyZmFjZWApO2xldCBpPXIuYm9keT8/ci5kb2N1bWVudEVsZW1lbnQ7aWYoIWkpdGhyb3cgRXJyb3IoYE9wZW5UeXBlIHZlcnRpY2FsIGdseXBoIHBhaW50IHJlcXVpcmVzIGFuIGF0dGFjaGVkIGRvY3VtZW50IHN1cmZhY2VgKTtsZXQgYT1yLmNyZWF0ZUVsZW1lbnQoYGNhbnZhc2ApO3JldHVybiBhLnNldEF0dHJpYnV0ZShgYXJpYS1oaWRkZW5gLGB0cnVlYCksT2JqZWN0LmFzc2lnbihhLnN0eWxlLHtwb3NpdGlvbjpgZml4ZWRgLGxlZnQ6YC05OTk5OXB4YCx0b3A6YDBgLG9wYWNpdHk6YDBgLHBvaW50ZXJFdmVudHM6YG5vbmVgfSksaS5hcHBlbmRDaGlsZChhKSx7Y2FudmFzOmEscmVsZWFzZTooKT0+YS5yZW1vdmUoKX19YXN5bmMgZnVuY3Rpb24gV0UoZSx0LG4scil7bGV0IGk9ci5mZXRjaEltYWdlP0djKHIuZmV0Y2hJbWFnZSk6dm9pZCAwLGE7dHJ5e2xldCBpPSh6RS5nZXQobik/PzApKzE7ekUuc2V0KG4saSk7bGV0IG89KCk9PnpFLmdldChuKSE9PWkscz1yLmRwcj8/UWwoKSxjPVVFKG4sIXIucGFyc2VFcnJvciYmdC5sYXllcnMuY2FwYWJpbGl0aWVzLnJlcXVpcmVzRWxlbWVudEJhY2tlZFZlcnRpY2FsR2x5cGhQYWludCksbD1jLmNhbnZhczthPWMucmVsZWFzZTtsZXQgdT1sLmdldENvbnRleHQoYDJkYCk7aWYoIXUpdGhyb3cgRXJyb3IoYDJEIGNhbnZhcyBpcyB1bmF2YWlsYWJsZSBmb3IgRE9DWCBwYWludGApO2xldCBkPUJFKHQsci53aWR0aCksZj10Lmdlb21ldHJ5LndpZHRoUHQqZCxwPXQuZ2VvbWV0cnkuaGVpZ2h0UHQqZCxtPVZsKGYqcyxwKnMpLGg9bS5jbGFtcGVkP3MqbS5zY2FsZTpzO2lmKG4ud2lkdGg9bS53aWR0aCxuLmhlaWdodD1tLmhlaWdodCxsIT09biYmKGwud2lkdGg9bS53aWR0aCxsLmhlaWdodD1tLmhlaWdodCksSEUobikmJihuLnN0eWxlLndpZHRoPWAke2Z9cHhgLG4uc3R5bGUuaGVpZ2h0PWAke3B9cHhgLG4uc3R5bGUuZGlzcGxheXx8KG4uc3R5bGUuZGlzcGxheT1gYmxvY2tgKSksSEUobCkmJmwhPT1uJiYobC5zdHlsZS53aWR0aD1gJHtmfXB4YCxsLnN0eWxlLmhlaWdodD1gJHtwfXB4YCksdS5zY2FsZShoLGgpLHUuZmlsbFN0eWxlPWAjZmZmZmZmYCx1LmZpbGxSZWN0KDAsMCxmLHApLHIucGFyc2VFcnJvcil7YXdhaXQgREUoZSwwLG4se3NjYWxlOmQsZHByOmh9KTtyZXR1cm59bGV0IGc7dHJ5e2c9YXdhaXQgQlQoci5yZWdpc3RyeS5kZXNjcmlwdG9ycyxyLmZldGNoSW1hZ2UpfWNhdGNoKGUpe2lmKG8oKSlyZXR1cm47dGhyb3cgZX1pZihvKCkpcmV0dXJuO2xldCBfPWJFKE5FKHIucmVnaXN0cnksZT0+e2lmKGUua2luZD09PWBtYXRoYClyZXR1cm4gci5wcml2YXRlUmVzb3VyY2VzPy5rZXlzLmluY2x1ZGVzKGUucmVzb3VyY2VLZXkpP3IucHJpdmF0ZVJlc291cmNlcy5yZXNvbHZlKGUucmVzb3VyY2VLZXkpOmtFKGBvcHRpb25hbCBtYXRoIHJlbmRlcmVyIHVuYXZhaWxhYmxlYCk7aWYoZS5raW5kPT09YGltYWdlYHx8ZS5raW5kPT09YHBpY3R1cmUtYnVsbGV0YClyZXR1cm4gZy5nZXQoSVQoZS5wYXJ0UGF0aCxlLmNvbG9yUmVwbGFjZUZyb20sZS5kdW90b25lKSk/P2tFKHIuZmV0Y2hJbWFnZT9gdW5zdXBwb3J0ZWQgaW1hZ2UgZm9ybWF0IHByb2R1Y2VkIG5vIGRyYXdhYmxlIG91dHB1dGA6YGltYWdlIGJ5dGUgc291cmNlIHVuYXZhaWxhYmxlYCl9KSxyLnRocmVlRHx8ci5yZWdpb25NYXA/TEUoci50aHJlZUQsci5yZWdpb25NYXApOlJFKTt1LnNhdmUoKTt0cnl7dS5zY2FsZShkLGQpLEVFKHQse2N0eDp1LHNjYWxlOmQsZHByOmgscmVzb3VyY2VzOl8sZG9jdW1lbnREZWZhdWx0VGV4dENvbG9yOnIuZGVmYXVsdFRleHRDb2xvcj8/YCMwMDAwMDBgLGRlZmF1bHRUZXh0Q29sb3I6ci5kZWZhdWx0VGV4dENvbG9yPz9gIzAwMDAwMGB9KX1maW5hbGx5e3UucmVzdG9yZSgpfWlmKGwhPT1uKXtpZihvKCkpcmV0dXJuO2xldCBlPW4uZ2V0Q29udGV4dChgMmRgKTtpZighZSl0aHJvdyBFcnJvcihgMkQgY2FudmFzIGlzIHVuYXZhaWxhYmxlIGZvciBET0NYIHBhaW50IHByb2plY3Rpb25gKTtlLmRyYXdJbWFnZShsLDAsMCl9aWYoci5vblRleHRSdW4pZm9yKGxldCBlIG9mIHIudGV4dFJ1bnMpci5vblRleHRSdW4oZSl9ZmluYWxseXthPy4oKSxpPy4oKX19dmFyIEdFPWNsYXNzIGV4dGVuZHMgRXJyb3J7Y29kZT1gTk9URV9DQVBBQ0lUWV9FWENFRURFRGA7Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKGAke2V9IHN0b3J5IGV4Y2VlZHMgJHtufSBvbiBwYWdlICR7dH1gKSx0aGlzLmtpbmQ9ZSx0aGlzLnBhZ2VJbmRleD10LHRoaXMuY29udGFpbmVySWQ9bix0aGlzLm5hbWU9YE5vdGVDYXBhY2l0eUV4Y2VlZGVkRXJyb3JgfX07ZnVuY3Rpb24gS0UoZSl7cmV0dXJuIE9iamVjdC5mcmVlemUoey4uLmUscGFnZXM6T2JqZWN0LmZyZWV6ZShbLi4uZS5wYWdlc10pfSl9ZnVuY3Rpb24gcUUoZSl7bGV0e2tpbmQ6dCxyZWdpb246biwuLi5yfT1lLGk9dncocik7aWYobiYmKGk9eXcoaSxuKSksdD09PWBjb250ZW50YCYmaS5zZWN0aW9uUmVnaW9ucy5sZW5ndGg9PT0wKXRocm93IFJhbmdlRXJyb3IoYEEgY29udGVudCBwYWdlIGRyYWZ0IHJlcXVpcmVzIGFuIGluaXRpYWwgc2VjdGlvbiByZWdpb25gKTtpZih0PT09YHBhcml0eS1ibGFua2AmJmkuc2VjdGlvblJlZ2lvbnMubGVuZ3RoIT09MCl0aHJvdyBSYW5nZUVycm9yKGBBIHBhcml0eSBibGFuayBjYW5ub3QgcmV0YWluIGEgc2VjdGlvbiByZWdpb25gKTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7a2luZDp0LGFjY3VtdWxhdG9yOml9KX1mdW5jdGlvbiBKRShlLHQpe2lmKHQua2luZCE9PWBjb250ZW50YHx8dC5hY2N1bXVsYXRvci5wYWdlSW5kZXghPT1lLnBhZ2VJbmRleCl0aHJvdyBFcnJvcihgVGhlIGluaXRpYWwgYm9keSBwYWdlIG11c3QgYmUgb3duZWQgYnkgdGhlIGFjdGl2ZSBmbG93YCk7cmV0dXJuIEtFKHtmbG93OmUscGFnZXM6W3RdLGZvb3Rub3RlUmVzZXJ2ZVB0OjAsYmFsYW5jZVRhcmdldFB0Om51bGx9KX1mdW5jdGlvbiBZRShlLHQpe2lmKHQhPT1udWxsJiYoIU51bWJlci5pc0Zpbml0ZSh0KXx8dDwwKSl0aHJvdyBSYW5nZUVycm9yKGBBIGJvZHkgYmFsYW5jZSB0YXJnZXQgbXVzdCBiZSBmaW5pdGUgYW5kIG5vbi1uZWdhdGl2ZWApO3JldHVybiBLRSh7Li4uZSxiYWxhbmNlVGFyZ2V0UHQ6dH0pfWZ1bmN0aW9uIFhFKGUsdCl7aWYoIU51bWJlci5pc0Zpbml0ZSh0KXx8dDwwKXRocm93IFJhbmdlRXJyb3IoYEEgZm9vdG5vdGUgcmVzZXJ2ZSBpbmNyZW1lbnQgbXVzdCBiZSBmaW5pdGUgYW5kIG5vbi1uZWdhdGl2ZWApO3JldHVybiB0PT09MD9lOktFKHsuLi5lLGZvb3Rub3RlUmVzZXJ2ZVB0OmUuZm9vdG5vdGVSZXNlcnZlUHQrdH0pfWZ1bmN0aW9uIFpFKGUsdCxuKXtsZXQgcj1bLi4uZS5wYWdlc10saT10LnN0YXRlLGE9ITE7Zm9yKGxldCBlIG9mIHQuZXZlbnRzKXtpZihlLnR5cGU9PT1gcGxhY2VgKXRocm93IEVycm9yKGBPY2N1cnJlbmNlIGFjY2VwdGFuY2Ugb3ducyBwbGFjZSBldmVudHNgKTtpZihlLnR5cGUhPT1gbmV4dC1jb2x1bW5gKXtpZihlLnR5cGU9PT1gbmV4dC1wYWdlYCl7aWYoZS5wYXJpdHlCbGFuaylyLnB1c2gobi5vcGVuUGFyaXR5QmxhbmtQYWdlKGUpKTtlbHNle2xldCBhPW4ub3BlbkNvbnRlbnRQYWdlKGUsdC5zdGF0ZSk7ci5wdXNoKGEucGFnZSksaT1hLmZsb3d9YT0hMDtjb250aW51ZX1pZighYSl7bGV0IHQ9ci5hdCgtMSk7aWYoIXR8fHQua2luZCE9PWBjb250ZW50YCl0aHJvdyBFcnJvcihgQSBjb250aW51b3VzIHNlY3Rpb24gcmVxdWlyZXMgYW4gYWN0aXZlIGNvbnRlbnQgcGFnZWApO3Jbci5sZW5ndGgtMV09bi5vcGVuU2FtZVBhZ2VTZWN0aW9uUmVnaW9uKHQsZSxpKX19fWxldCBvPXIuYXQoLTEpO2lmKCFvfHxvLmtpbmQhPT1gY29udGVudGB8fG8uYWNjdW11bGF0b3IucGFnZUluZGV4IT09aS5wYWdlSW5kZXgpdGhyb3cgRXJyb3IoYEEgcGFnZSB0cmFuc2l0aW9uIG11c3QgZW5kIG9uIHRoZSBhY3RpdmUgY29udGVudCBwYWdlYCk7cmV0dXJuIEtFKHsuLi5lLGZsb3c6aSxwYWdlczpyLGZvb3Rub3RlUmVzZXJ2ZVB0OmE/MDplLmZvb3Rub3RlUmVzZXJ2ZVB0LGJhbGFuY2VUYXJnZXRQdDphP251bGw6ZS5iYWxhbmNlVGFyZ2V0UHR9KX1mdW5jdGlvbiBRRShlKXtpZihlLmxlbmd0aD09PTApcmV0dXJuIG51bGw7bGV0IHQ9TWF0aC5taW4oLi4uZS5tYXAoZT0+ZS54UHQpKSxuPU1hdGgubWluKC4uLmUubWFwKGU9PmUueVB0KSkscj1NYXRoLm1heCguLi5lLm1hcChlPT5lLnhQdCtlLndpZHRoUHQpKSxpPU1hdGgubWF4KC4uLmUubWFwKGU9PmUueVB0K2UuaGVpZ2h0UHQpKTtyZXR1cm57eFB0OnQseVB0Om4sd2lkdGhQdDpyLXQsaGVpZ2h0UHQ6aS1ufX1mdW5jdGlvbiAkRShlKXtyZXR1cm57eDohZS5ob3J6U3BlY2lmaWVkfHxlLmhvcnpBbmNob3IhPT1gcGFnZWAmJmUuaG9yekFuY2hvciE9PWBtYXJnaW5gLHk6ZS52ZXJ0QW5jaG9yIT09YHBhZ2VgJiZlLnZlcnRBbmNob3IhPT1gbWFyZ2luYH19ZnVuY3Rpb24gZUQoZSx0KXtyZXR1cm57Li4uZSx4UHQ6ZS54UHQrdC54UHQseVB0OmUueVB0K3QueVB0fX1mdW5jdGlvbiB0RChlLHQpe3JldHVybnsuLi5lLHhQdDplLnhQdCt0LnhQdCx5UHQ6ZS55UHQrdC55UHR9fWZ1bmN0aW9uIG5EKGUsdCl7cmV0dXJuey4uLmUsZnJvbTplRChlLmZyb20sdCksdG86ZUQoZS50byx0KX19ZnVuY3Rpb24gckQoZSx0KXtyZXR1cm4gZS5raW5kPT09YHJlY3RgP3suLi5lLHJlY3Q6dEQoZS5yZWN0LHQpfTp7Li4uZSxwb2ludHM6ZS5wb2ludHMubWFwKGU9PmVEKGUsdCkpfX1mdW5jdGlvbiBpRChlLHQpe3JldHVybiBlLmtpbmQ9PT1gbm9vcGA/ZTplLmtpbmQ9PT1gZHJhd2luZ21sLXNoYXBlYHx8ZS5raW5kPT09YGRyYXdpbmdtbC1pbWFnZS1maWxsYD97Li4uZSxwbGFuOnsuLi5lLnBsYW4scmVjdDp7Li4uZS5wbGFuLnJlY3QseDplLnBsYW4ucmVjdC54K3QueFB0LHk6ZS5wbGFuLnJlY3QueSt0LnlQdH19fTp7Li4uZSxyZWN0OnREKGUucmVjdCx0KX19ZnVuY3Rpb24gYUQoZSx0KXtsZXQgbj1lLm9yaWVudGF0aW9uPT09YHVwcmlnaHQtcGh5c2ljYWxgP3t4UHQ6MCx5UHQ6MH06dDtyZXR1cm57Li4uZSxmbG93Qm91bmRzOnREKGUuZmxvd0JvdW5kcyx0KSxpbmtCb3VuZHM6dEQoZS5pbmtCb3VuZHMsdCksLi4uZS5jbGlwQm91bmRzP3tjbGlwQm91bmRzOnREKGUuY2xpcEJvdW5kcyx0KX06e30sLi4uZS50cmFuc2Zvcm0/e3RyYW5zZm9ybTp7Li4uZS50cmFuc2Zvcm0sZTplLnRyYW5zZm9ybS5lK3QueFB0LGY6ZS50cmFuc2Zvcm0uZit0LnlQdH19Ont9LC4uLmUuY2xpcD97Y2xpcDpyRChlLmNsaXAsdCl9Ont9LGNvbW1hbmRzOmUuY29tbWFuZHMubWFwKGU9PmlEKGUsbikpfX1mdW5jdGlvbiBvRChlLHQsbil7bGV0IHI9YCR7dC54UHR9XHUwMDAwJHt0LnlQdH1gLGk9bi5kcmF3aW5nTWVtby5nZXQoZSk7aWYoaSl7aWYoaS5rZXkhPT1yKXRocm93IEVycm9yKGBpbmNvbXBhdGlibGUgcHJvamVjdGlvbiBvd25lcnNoaXBgKTtyZXR1cm4gaS52YWx1ZX1sZXQgYT1hRChlLHQpO3JldHVybiBuLmRyYXdpbmdNZW1vLnNldChlLHtrZXk6cix2YWx1ZTphfSksYX1mdW5jdGlvbiBzRChlLHQsbil7cmV0dXJuIGUua2luZD09PWB0ZXh0YD97Li4uZSxvcmlnaW46ZUQoZS5vcmlnaW4sdCksYm91bmRzOnREKGUuYm91bmRzLHQpLGRlY29yYXRpb25zOmUuZGVjb3JhdGlvbnMubWFwKGU9Pih7Li4uZSxmcm9tOmVEKGUuZnJvbSx0KSx0bzplRChlLnRvLHQpLC4uLmUucGF0aD97cGF0aDplLnBhdGgubWFwKGU9PmVEKGUsdCkpfTp7fX0pKSwuLi5lLmhpZ2hsaWdodEZyYWdtZW50cz97aGlnaGxpZ2h0RnJhZ21lbnRzOmUuaGlnaGxpZ2h0RnJhZ21lbnRzLm1hcChlPT4oey4uLmUscmVjdDp0RChlLnJlY3QsdCl9KSl9Ont9LC4uLmUucnVieT97cnVieTp7Li4uZS5ydWJ5LHBhaW50T3BzOmUucnVieS5wYWludE9wcy5tYXAoZT0+KHsuLi5lLG9yaWdpbjplRChlLm9yaWdpbix0KX0pKX19Ont9LC4uLmUuZW1waGFzaXM/e2VtcGhhc2lzOnsuLi5lLmVtcGhhc2lzLC4uLmUuZW1waGFzaXMuZ2x5cGhzP3tnbHlwaHM6ZS5lbXBoYXNpcy5nbHlwaHMubWFwKGU9Pih7Li4uZSxvcmlnaW46ZUQoZS5vcmlnaW4sdCl9KSl9Ont9LC4uLmUuZW1waGFzaXMucGF0aHM/e3BhdGhzOmUuZW1waGFzaXMucGF0aHMubWFwKGU9Pih7Li4uZSxwb2ludHM6ZS5wb2ludHMubWFwKGU9PmVEKGUsdCkpfSkpfTp7fX19Ont9LC4uLmUucnVuQm9yZGVyRnJhZ21lbnRzP3tydW5Cb3JkZXJGcmFnbWVudHM6ZS5ydW5Cb3JkZXJGcmFnbWVudHMubWFwKGU9Pm5EKGUsdCkpfTp7fX06ZS5raW5kPT09YGFuY2hvci1ob3N0YD97Li4uZSxib3VuZHM6dEQoZS5ib3VuZHMsdCksYmFzZWxpbmVQdDplLmJhc2VsaW5lUHQrdC55UHR9OmUua2luZD09PWBkcmF3aW5nYD97Li4uZSxib3VuZHM6dEQoZS5ib3VuZHMsbj8uZ2V0KGUuZHJhd2luZ0lkKT8/dCl9OmUua2luZD09PWB0YWJgJiYoZS5sZWFkZXJHbHlwaHN8fGUuZGVjb3JhdGlvbnMpP3suLi5lLC4uLmUuYm91bmRzP3tib3VuZHM6dEQoZS5ib3VuZHMsdCl9Ont9LC4uLmUubGVhZGVyR2x5cGhzP3tsZWFkZXJHbHlwaHM6ZS5sZWFkZXJHbHlwaHMubWFwKGU9Pih7Li4uZSxvcmlnaW46ZUQoZS5vcmlnaW4sdCl9KSl9Ont9LC4uLmUuZGVjb3JhdGlvbnM/e2RlY29yYXRpb25zOmUuZGVjb3JhdGlvbnMubWFwKGU9Pih7Li4uZSxmcm9tOmVEKGUuZnJvbSx0KSx0bzplRChlLnRvLHQpLC4uLmUucGF0aD97cGF0aDplLnBhdGgubWFwKGU9PmVEKGUsdCkpfTp7fX0pKX06e319OmUuYm91bmRzP3suLi5lLGJvdW5kczp0RChlLmJvdW5kcyx0KX06ZX1mdW5jdGlvbiBjRChlLHQsbil7cmV0dXJuey4uLmUsYm91bmRzOnREKGUuYm91bmRzLHQpLGJhc2VsaW5lUHQ6ZS5iYXNlbGluZVB0K3QueVB0LHBsYWNlbWVudHM6ZS5wbGFjZW1lbnRzLm1hcChlPT5zRChlLHQsbikpLC4uLmUuYmFyVGFiUnVsZXM/e2JhclRhYlJ1bGVzOmUuYmFyVGFiUnVsZXMubWFwKGU9Pih7Li4uZSxmcm9tOmVEKGUuZnJvbSx0KSx0bzplRChlLnRvLHQpfSkpfTp7fX19ZnVuY3Rpb24gbEQoZSx0KXtsZXQgbj1lLmF4ZXNbdF07cmV0dXJuIG4uc3RhdHVzPT09YHJlc29sdmVkYCYmW2BwYWdlYCxgbWFyZ2luYCxgbGVmdE1hcmdpbmAsYHJpZ2h0TWFyZ2luYCxgdG9wTWFyZ2luYCxgYm90dG9tTWFyZ2luYF0uaW5jbHVkZXMobi5yZWZlcmVuY2VGcmFtZSl9ZnVuY3Rpb24gdUQoZSx0KXtsZXQgbj1sRChlLGBob3Jpem9udGFsYCk/MDp0LnhQdCxyPWxEKGUsYHZlcnRpY2FsYCk/MDp0LnlQdCxpPXt4UHQ6bix5UHQ6cn0sYT17aG9yaXpvbnRhbDplLmF4ZXMuaG9yaXpvbnRhbC5zdGF0dXM9PT1gcmVzb2x2ZWRgP3suLi5lLmF4ZXMuaG9yaXpvbnRhbCxiYXNlU3RhcnRQdDplLmF4ZXMuaG9yaXpvbnRhbC5iYXNlU3RhcnRQdCtuLGJhc2VFbmRQdDplLmF4ZXMuaG9yaXpvbnRhbC5iYXNlRW5kUHQrbixyZXNvbHZlZE9yaWdpblB0OmUuYXhlcy5ob3Jpem9udGFsLnJlc29sdmVkT3JpZ2luUHQrbn06ZS5heGVzLmhvcml6b250YWwsdmVydGljYWw6ZS5heGVzLnZlcnRpY2FsLnN0YXR1cz09PWByZXNvbHZlZGA/ey4uLmUuYXhlcy52ZXJ0aWNhbCxiYXNlU3RhcnRQdDplLmF4ZXMudmVydGljYWwuYmFzZVN0YXJ0UHQrcixiYXNlRW5kUHQ6ZS5heGVzLnZlcnRpY2FsLmJhc2VFbmRQdCtyLHJlc29sdmVkT3JpZ2luUHQ6ZS5heGVzLnZlcnRpY2FsLnJlc29sdmVkT3JpZ2luUHQrcn06ZS5heGVzLnZlcnRpY2FsfTtyZXR1cm4gZS5zdGF0dXM9PT1gdW5zdXBwb3J0ZWRgP3suLi5lLGF4ZXM6YX06ey4uLmUsYXhlczphLGdlb21ldHJ5OnsuLi5lLmdlb21ldHJ5LG9iamVjdEZyYW1lOnREKGUuZ2VvbWV0cnkub2JqZWN0RnJhbWUsaSksaW5rQm91bmRzOnREKGUuZ2VvbWV0cnkuaW5rQm91bmRzLGkpLHdyYXBCb3VuZHM6ZS5nZW9tZXRyeS53cmFwQm91bmRzP3REKGUuZ2VvbWV0cnkud3JhcEJvdW5kcyxpKTpudWxsLHdyYXA6ey4uLmUuZ2VvbWV0cnkud3JhcCxwb2x5Z29uOmUuZ2VvbWV0cnkud3JhcC5wb2x5Z29uP3suLi5lLmdlb21ldHJ5LndyYXAucG9seWdvbixwb2ludHM6ZS5nZW9tZXRyeS53cmFwLnBvbHlnb24ucG9pbnRzLm1hcChlPT5lRChlLGkpKX06bnVsbH19fX1mdW5jdGlvbiBkRChlLHQpe3JldHVybiBmRChlLHQse21lbW86bmV3IFdlYWtNYXAsZHJhd2luZ01lbW86bmV3IFdlYWtNYXB9KX1mdW5jdGlvbiBmRChlLHQsbil7bGV0IHI9YCR7dC54UHR9XHUwMDAwJHt0LnlQdH1gLGk9bi5tZW1vLmdldChlKTtpZihpKXtpZihpLmtleSE9PXIpdGhyb3cgRXJyb3IoYGluY29tcGF0aWJsZSBwcm9qZWN0aW9uIG93bmVyc2hpcGApO3JldHVybiBpLnZhbHVlfWxldCBhPW5ldyBNYXAoZS5kcmF3aW5ncy5mbGF0TWFwKGU9PmUuYW5jaG9yTGF5ZXI/W1tlLmFuY2hvckxheWVyLm9jY3VycmVuY2VJZCxlLmFuY2hvckxheWVyXV06W10pKSxvPW5ldyBNYXAscz1uZXcgTWFwO2ZvcihsZXQgbiBvZiBlLmRyYXdpbmdzKXtsZXQgZT17eFB0Om4uYW5jaG9yTGF5ZXI/Lmhvcml6b250YWxPd25lcnNoaXA9PT1gcGFnZWA/MDp0LnhQdCx5UHQ6bi5hbmNob3JMYXllcj8udmVydGljYWxPd25lcnNoaXA9PT1gcGFnZWA/MDp0LnlQdH07cy5zZXQobi5pZCxlKSxuLnRleHRCb3hJZHM/LmZvckVhY2godD0+by5zZXQodCxuLm9yaWVudGF0aW9uPT09YHVwcmlnaHQtcGh5c2ljYWxgP3t4UHQ6MCx5UHQ6MH06ZSkpfWxldCBjPWUuZHJhd2luZ3MubWFwKGU9Pm9EKGUscy5nZXQoZS5pZCk/P3QsbikpLGw9UUUoYy5maWx0ZXIoZT0+ZS5hbmNob3JMYXllcj8uY2VsbENvbnRhaW5tZW50PT09ITApLm1hcChlPT5lLmZsb3dCb3VuZHMpKSx1PXsuLi5lLGZsb3dCb3VuZHM6dEQoZS5mbG93Qm91bmRzLHQpLGlua0JvdW5kczp0RChlLmlua0JvdW5kcyx0KSwuLi5lLmNsaXBCb3VuZHM/e2NsaXBCb3VuZHM6dEQoZS5jbGlwQm91bmRzLHQpfTp7fSxsaW5lczplLmxpbmVzLm1hcChlPT5jRChlLHQscykpLGJvcmRlcnM6ZS5ib3JkZXJzLm1hcChlPT5uRChlLHQpKSxkcmF3aW5nczpjLC4uLmw/e2NlbGxDb250YWlubWVudEJvdW5kczpsfTp7fSx0ZXh0Qm94ZXM6ZS50ZXh0Qm94ZXMubWFwKGU9Pm1EKGUsby5nZXQoZS5pZCk/P3QsbikpLGV4Y2x1c2lvbnM6ZS5leGNsdXNpb25zLm1hcChlPT57bGV0IG49ZS5hbmNob3JPY2N1cnJlbmNlSWQ/YS5nZXQoZS5hbmNob3JPY2N1cnJlbmNlSWQpOnZvaWQgMCxyPXt4UHQ6bj8uaG9yaXpvbnRhbE93bmVyc2hpcD09PWBwYWdlYD8wOnQueFB0LHlQdDplLnZlcnRpY2FsT3duZXJzaGlwPT09YHBhZ2VgfHxuPy52ZXJ0aWNhbE93bmVyc2hpcD09PWBwYWdlYD8wOnQueVB0fTtyZXR1cm57Li4uZSxib3VuZHM6dEQoZS5ib3VuZHMscikscG9seWdvbjplLnBvbHlnb24ubWFwKGU9PmVEKGUscikpfX0pLC4uLmUuYW5jaG9yQ29sbGlzaW9ucz97YW5jaG9yQ29sbGlzaW9uczplLmFuY2hvckNvbGxpc2lvbnMubWFwKGU9Pih7Li4uZSxib3VuZHM6dEQoZS5ib3VuZHMse3hQdDplLmhvcml6b250YWxPd25lcnNoaXA9PT1gcGFnZWA/MDp0LnhQdCx5UHQ6ZS52ZXJ0aWNhbE93bmVyc2hpcD09PWBwYWdlYD8wOnQueVB0fSl9KSl9Ont9LC4uLmUuYW5jaG9yRnJhbWVzP3thbmNob3JGcmFtZXM6ZS5hbmNob3JGcmFtZXMubWFwKGU9PnVEKGUsdCkpfTp7fSwuLi5lLnBhcmFncmFwaE1hcms/e3BhcmFncmFwaE1hcms6ey4uLmUucGFyYWdyYXBoTWFyayxib3VuZHM6dEQoZS5wYXJhZ3JhcGhNYXJrLmJvdW5kcyx0KX19Ont9LC4uLmUubGluZU51bWJlcnM/e2xpbmVOdW1iZXJzOmUubGluZU51bWJlcnMubWFwKGU9Pih7Li4uZSxib3VuZHM6dEQoZS5ib3VuZHMsdCkscGFpbnRPcHM6ZS5wYWludE9wcy5tYXAoZT0+KHsuLi5lLG9yaWdpbjplRChlLm9yaWdpbix0KX0pKX0pKX06e319O3JldHVybiBuLm1lbW8uc2V0KGUse2tleTpyLHZhbHVlOnV9KSx1fWZ1bmN0aW9uIHBEKGUsdCl7cmV0dXJuIG1EKGUsdCx7bWVtbzpuZXcgV2Vha01hcCxkcmF3aW5nTWVtbzpuZXcgV2Vha01hcH0pfWZ1bmN0aW9uIG1EKGUsdCxuKXtsZXQgcj1lLnZlcnRpY2FsTW9kZT09PXZvaWQgMDtyZXR1cm57Li4uZSxmbG93Qm91bmRzOnREKGUuZmxvd0JvdW5kcyx0KSxpbmtCb3VuZHM6dEQoZS5pbmtCb3VuZHMsdCksLi4uZS5jbGlwQm91bmRzP3tjbGlwQm91bmRzOnI/dEQoZS5jbGlwQm91bmRzLHQpOmUuY2xpcEJvdW5kc306e30sLi4uZS5jb250ZW50Qm91bmRzP3tjb250ZW50Qm91bmRzOnI/dEQoZS5jb250ZW50Qm91bmRzLHQpOmUuY29udGVudEJvdW5kc306e30sdHJhbnNmb3JtOnI/ZS50cmFuc2Zvcm06ey4uLmUudHJhbnNmb3JtLGU6ZS50cmFuc2Zvcm0uZSt0LnhQdCxmOmUudHJhbnNmb3JtLmYrdC55UHR9LHN0b3J5OnI/ey4uLmUuc3RvcnksZmxvd0JvdW5kczp0RChlLnN0b3J5LmZsb3dCb3VuZHMsdCksaW5rQm91bmRzOnREKGUuc3RvcnkuaW5rQm91bmRzLHQpLC4uLmUuc3RvcnkuY2xpcEJvdW5kcz97Y2xpcEJvdW5kczp0RChlLnN0b3J5LmNsaXBCb3VuZHMsdCl9Ont9LGJsb2NrczplLnN0b3J5LmJsb2Nrcy5tYXAoZT0+e2lmKGUua2luZD09PWBwYXJhZ3JhcGhgKXJldHVybiBmRChlLHQsbik7aWYoZS5raW5kPT09YHRhYmxlYClyZXR1cm4gZ0QoZSx0KTt0aHJvdyBFcnJvcihgVGV4dC1ib3ggc3RvcnkgY29udGFpbnMgdW5zdXBwb3J0ZWQgcmV0YWluZWQgbm9kZTogJHtlLmtpbmR9YCl9KX06ZS5zdG9yeX19ZnVuY3Rpb24gaEQoZSx0KXtyZXR1cm4gZEQoZSx0KX1mdW5jdGlvbiBnRChlLHQpe3JldHVybnsuLi5lLGZsb3dCb3VuZHM6dEQoZS5mbG93Qm91bmRzLHQpLGlua0JvdW5kczp0RChlLmlua0JvdW5kcyx0KSwuLi5lLmNsaXBCb3VuZHM/e2NsaXBCb3VuZHM6dEQoZS5jbGlwQm91bmRzLHQpfTp7fSxib3JkZXJzOmUuYm9yZGVycy5tYXAoZT0+bkQoZSx0KSksLi4uZS5jb21wb3VuZEJvcmRlckZyYW1lcz97Y29tcG91bmRCb3JkZXJGcmFtZXM6ZS5jb21wb3VuZEJvcmRlckZyYW1lcy5tYXAoZT0+KHsuLi5lLGJvdW5kczp0RChlLmJvdW5kcyx0KX0pKX06e30scm93czplLnJvd3MubWFwKGU9Pih7Li4uZSxmbG93Qm91bmRzOnREKGUuZmxvd0JvdW5kcyx0KSxpbmtCb3VuZHM6dEQoZS5pbmtCb3VuZHMsdCksLi4uZS5jbGlwQm91bmRzP3tjbGlwQm91bmRzOnREKGUuY2xpcEJvdW5kcyx0KX06e30sY2VsbHM6ZS5jZWxscy5tYXAoZT0+KHsuLi5lLGZsb3dCb3VuZHM6dEQoZS5mbG93Qm91bmRzLHQpLGlua0JvdW5kczp0RChlLmlua0JvdW5kcyx0KSwuLi5lLmNsaXBCb3VuZHM/e2NsaXBCb3VuZHM6dEQoZS5jbGlwQm91bmRzLHQpfTp7fSxjb250ZW50Qm91bmRzOnREKGUuY29udGVudEJvdW5kcyx0KSxibG9ja3M6ZS5ibG9ja3N9KSl9KSl9fWZ1bmN0aW9uIF9EKGUsdCl7cmV0dXJuYCR7ZX0vb2NjdXJyZW5jZS8ke2VuY29kZVVSSUNvbXBvbmVudCh0KS5yZXBsYWNlQWxsKGAlM0FgLGA6YCl9YH1mdW5jdGlvbiB2RChlKXtpZighTnVtYmVyLmlzRmluaXRlKGUueFB0KXx8IU51bWJlci5pc0Zpbml0ZShlLnlQdCkpdGhyb3cgUmFuZ2VFcnJvcihgYm9keSBvY2N1cnJlbmNlIHRyYW5zbGF0aW9uIG11c3QgYmUgZmluaXRlYCl9ZnVuY3Rpb24geUQoZSl7aWYoZS5vY2N1cnJlbmNlSWQubGVuZ3RoPT09MCl0aHJvdyBSYW5nZUVycm9yKGBvY2N1cnJlbmNlSWQgbXVzdCBub3QgYmUgZW1wdHlgKTtpZihlLmRlc3RpbmF0aW9uLmZsb3dEb21haW5JZC5sZW5ndGg9PT0wKXRocm93IFJhbmdlRXJyb3IoYGZsb3dEb21haW5JZCBtdXN0IG5vdCBiZSBlbXB0eWApO3ZEKGUuZGVzdGluYXRpb24udHJhbnNsYXRpb24pfWZ1bmN0aW9uIGJEKGUsdCl7bGV0IG49JEUoZS5wb3NpdGlvbmluZyk7cmV0dXJue3hQdDpuLng/dC54UHQ6MCx5UHQ6bi55P3QueVB0OjB9fWZ1bmN0aW9uIHhEKGUpe2xldCB0PW5ldyBXZWFrU2V0LG49bmV3IFdlYWtTZXQscj1lPT57aWYodC5oYXMoZSkpdGhyb3cgVHlwZUVycm9yKGBib2R5IG9jY3VycmVuY2UgbGF5b3V0IGdyYXBoIG11c3QgYmUgYWN5Y2xpY2ApO2lmKCFuLmhhcyhlKSl7aWYodC5hZGQoZSksZS5raW5kPT09YHBhcmFncmFwaGApZm9yKGxldCB0IG9mIGUudGV4dEJveGVzKWZvcihsZXQgZSBvZiB0LnN0b3J5LmJsb2NrcykoZS5raW5kPT09YHBhcmFncmFwaGB8fGUua2luZD09PWB0YWJsZWApJiZyKGUpO2Vsc2V7Zm9yKGxldCB0IG9mIGUucm93cylmb3IobGV0IGUgb2YgdC5jZWxscylmb3IobGV0IHQgb2YgZS5ibG9ja3Mpcih0LmxheW91dCk7Zm9yKGxldCB0IG9mIGUuZmxvYXRpbmdUYWJsZXM/P1tdKXIodC5jaGlsZCk7Zm9yKGxldCB0IG9mIGUucmVzb2x2ZWRGbG9hdGluZ1RhYmxlcz8/W10pcih0LnNvdXJjZS5jaGlsZCkscih0LmNoaWxkKX10LmRlbGV0ZShlKSxuLmFkZChlKX19O3IoZSl9ZnVuY3Rpb24gU0QoZSx0KXt4RChlKTtsZXQgbj1uZXcgV2Vha01hcCxyPW5ldyBXZWFrTWFwLGk9ZT0+YCR7ZS54UHR9XHUwMDAwJHtlLnlQdH1gLGE9KGUsdCk9PntsZXQgbj1pKHQpLGE9ci5nZXQoZSk7aWYoYSl7aWYoYS5rZXkhPT1uKXRocm93IEVycm9yKGBpbmNvbXBhdGlibGUgcHJvamVjdGlvbiBvd25lcnNoaXBgKTtyZXR1cm4gYS52YWx1ZX1sZXQgbz1oRChlLHQpLHM9T2JqZWN0LmZyZWV6ZSh7Li4ubywuLi5lLnNlY3Rpb25GbG93T3duZXJzaGlwPT09dm9pZCAwP3t9OntzZWN0aW9uRmxvd093bmVyc2hpcDplLnNlY3Rpb25GbG93T3duZXJzaGlwfX0pO3JldHVybiByLnNldChlLHtrZXk6bix2YWx1ZTpzfSksc30sbz0oZSx0KT0+e2xldCByPWkodCksYT1uLmdldChlKTtpZihhKXtpZihhLmtleSE9PXIpdGhyb3cgRXJyb3IoYGluY29tcGF0aWJsZSBwcm9qZWN0aW9uIG93bmVyc2hpcGApO3JldHVybiBhLnZhbHVlfWxldCBzPXsuLi5nRChlLHQpLC4uLmUuc2VjdGlvbkZsb3dPd25lcnNoaXA9PT12b2lkIDA/e306e3NlY3Rpb25GbG93T3duZXJzaGlwOmUuc2VjdGlvbkZsb3dPd25lcnNoaXB9fTtuLnNldChlLHtrZXk6cix2YWx1ZTpzfSk7bGV0IGM9bmV3IE1hcCxsPW5ldyBTZXQ7Zm9yKGxldCBuIG9mIGUucmVzb2x2ZWRGbG9hdGluZ1RhYmxlcz8/W10pe2xldCByPWUucmVzb2x2ZWRGbG9hdGluZ1RhYmxlQ29vcmRpbmF0ZVNwYWNlIT09dm9pZCAwO2Muc2V0KG4uc291cmNlLHI/e3hQdDowLHlQdDowfTpiRChuLnNvdXJjZSx0KSksciYmbC5hZGQobi5zb3VyY2UpfWxldCB1PW5ldyBNYXAsZD1lPT57bGV0IG49dS5nZXQoZSk7aWYobilyZXR1cm4gbjtsZXQgcj1jLmdldChlKT8/dCxpPWwuaGFzKGUpP3t4UHQ6MCx5UHQ6MH06dCxhPXsuLi5lLGFuY2hvckJvdW5kczp0RChlLmFuY2hvckJvdW5kcyxpKSwuLi5lLmNvbHVtbkJvdW5kcz97Y29sdW1uQm91bmRzOnREKGUuY29sdW1uQm91bmRzLGkpfTp7fSxjaGlsZDpvKGUuY2hpbGQscil9O3JldHVybiB1LnNldChlLGEpLGF9LGY9KGUuZmxvYXRpbmdUYWJsZXM/P1tdKS5tYXAoZCkscD0oZS5yZXNvbHZlZEZsb2F0aW5nVGFibGVzPz9bXSkubWFwKGU9PntsZXQgbj1kKGUuc291cmNlKSxyPWMuZ2V0KGUuc291cmNlKT8/YkQoZS5zb3VyY2UsdCk7cmV0dXJuey4uLmUseFB0OmUueFB0K3IueFB0LHlQdDplLnlQdCtyLnlQdCxib3VuZHM6dEQoZS5ib3VuZHMsciksZXhjbHVzaW9uQm91bmRzOnREKGUuZXhjbHVzaW9uQm91bmRzLHIpLGNoaWxkOm4uY2hpbGQsc291cmNlOm59fSk7cmV0dXJuKGUuZmxvYXRpbmdUYWJsZXN8fGUucmVzb2x2ZWRGbG9hdGluZ1RhYmxlcykmJk9iamVjdC5hc3NpZ24ocyx7ZmxvYXRpbmdUYWJsZXM6ZixyZXNvbHZlZEZsb2F0aW5nVGFibGVzOnB9KSxzfTtyZXR1cm4gZS5raW5kPT09YHBhcmFncmFwaGA/YShlLHQpOm8oZSx0KX1mdW5jdGlvbiBDRChlLHQpe3JldHVybiB2RCh0KSxTRChlLHQpfWZ1bmN0aW9uIHdEKGUsdCl7eUQodCk7bGV0IG49U0QoZSx0LmRlc3RpbmF0aW9uLnRyYW5zbGF0aW9uKSxyPWVuY29kZVVSSUNvbXBvbmVudCh0Lm9jY3VycmVuY2VJZCksaT1uZXcgV2Vha01hcCxhPW5ldyBXZWFrTWFwLG89bmV3IFdlYWtNYXAscz1uZXcgTWFwLGM9bmV3IE1hcCxsPWU9PmAke3Qub2NjdXJyZW5jZUlkfS9ub2RlLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGUpfWAsdT1lPT5gJHt0Lm9jY3VycmVuY2VJZH0vYW5jaG9yLyR7ZW5jb2RlVVJJQ29tcG9uZW50KGUpfWAsZD1lPT5fRCh0Lm9jY3VycmVuY2VJZCxlKSxmPShlLG4pPT5gJHt0LmRlc3RpbmF0aW9uLmZsb3dEb21haW5JZH0vb2NjdXJyZW5jZS8ke3J9LyR7ZX0vJHtlbmNvZGVVUklDb21wb25lbnQobil9YCxwPWU9PmUua2luZD09PWBkcmF3aW5nYD97Li4uZSxkcmF3aW5nSWQ6bChlLmRyYXdpbmdJZCl9OmUua2luZD09PWBhbmNob3ItaG9zdGAmJmUuYW5jaG9yT2NjdXJyZW5jZUlkP3suLi5lLGFuY2hvck9jY3VycmVuY2VJZDp1KGUuYW5jaG9yT2NjdXJyZW5jZUlkKX06ZSxtPShlLHQpPT57bGV0IG49by5nZXQoZSk7aWYobil7aWYobi5kb21haW4hPT10KXRocm93IEVycm9yKGBpbmNvbXBhdGlibGUgcHJvamVjdGlvbiBvd25lcnNoaXBgKTtyZXR1cm4gbi52YWx1ZX1pZihlLmFuY2hvckxheWVyKXtsZXQgdD1zLmdldChlLmFuY2hvckxheWVyLm9jY3VycmVuY2VJZCk7aWYodCYmdCE9PWUpdGhyb3cgRXJyb3IoYGR1cGxpY2F0ZSBhbmNob3Igb2NjdXJyZW5jZSBvd25lcmApO3Muc2V0KGUuYW5jaG9yTGF5ZXIub2NjdXJyZW5jZUlkLGUpfWxldCByPXsuLi5lLGlkOmwoZS5pZCksZmxvd0RvbWFpbklkOnQsLi4uZS50ZXh0Qm94SWRzP3t0ZXh0Qm94SWRzOmUudGV4dEJveElkcy5tYXAobCl9Ont9LC4uLmUuYW5jaG9yTGF5ZXI/e2FuY2hvckxheWVyOnsuLi5lLmFuY2hvckxheWVyLG9jY3VycmVuY2VJZDp1KGUuYW5jaG9yTGF5ZXIub2NjdXJyZW5jZUlkKSxhY3F1aXNpdGlvbk9jY3VycmVuY2VJZDplLmFuY2hvckxheWVyLmFjcXVpc2l0aW9uT2NjdXJyZW5jZUlkPz9lLmFuY2hvckxheWVyLm9jY3VycmVuY2VJZH19Ont9fTtyZXR1cm4gby5zZXQoZSx7ZG9tYWluOnQsdmFsdWU6cn0pLHJ9LGg9ZT0+e2xldCB0PWYoYHRleHRib3hgLGUuaWQpO3JldHVybnsuLi5lLGlkOmwoZS5pZCksZmxvd0RvbWFpbklkOnQsc3Rvcnk6ey4uLmUuc3RvcnksYmxvY2tzOmUuc3RvcnkuYmxvY2tzLm1hcChlPT57aWYoZS5raW5kPT09YHBhcmFncmFwaGApcmV0dXJuIGcoZSx0KTtpZihlLmtpbmQ9PT1gdGFibGVgKXJldHVybiBiKGUsdCk7dGhyb3cgRXJyb3IoYFRleHQtYm94IHN0b3J5IGNvbnRhaW5zIHVuc3VwcG9ydGVkIHJldGFpbmVkIG5vZGU6ICR7ZS5raW5kfWApfSl9fX0sZz0oZSx0KT0+e2xldCBuPWEuZ2V0KGUpO2lmKG4pe2lmKG4uZG9tYWluIT09dCl0aHJvdyBFcnJvcihgaW5jb21wYXRpYmxlIHByb2plY3Rpb24gb3duZXJzaGlwYCk7cmV0dXJuIG4udmFsdWV9bGV0IHI9ey4uLmUsaWQ6bChlLmlkKSxmbG93RG9tYWluSWQ6dCxsaW5lczplLmxpbmVzLm1hcChlPT4oey4uLmUscGxhY2VtZW50czplLnBsYWNlbWVudHMubWFwKHApfSkpLGRyYXdpbmdzOmUuZHJhd2luZ3MubWFwKGU9Pm0oZSx0KSksdGV4dEJveGVzOmUudGV4dEJveGVzLm1hcChoKSxleGNsdXNpb25zOmUuZXhjbHVzaW9ucy5tYXAoZT0+KHsuLi5lLGlkOmUudmVydGljYWxPd25lcnNoaXA9PT1gcGFnZWAmJiFlLmFuY2hvck9jY3VycmVuY2VJZD9lLmlkOmwoZS5pZCksLi4uZS5hbmNob3JPY2N1cnJlbmNlSWQ/e2FuY2hvck9jY3VycmVuY2VJZDp1KGUuYW5jaG9yT2NjdXJyZW5jZUlkKX06e319KSksLi4uZS5hbmNob3JDb2xsaXNpb25zP3thbmNob3JDb2xsaXNpb25zOmUuYW5jaG9yQ29sbGlzaW9ucy5tYXAoZT0+KHsuLi5lLG9jY3VycmVuY2VJZDp1KGUub2NjdXJyZW5jZUlkKX0pKX06e30sLi4uZS5hbmNob3JGcmFtZXM/e2FuY2hvckZyYW1lczplLmFuY2hvckZyYW1lcy5tYXAoZT0+KHsuLi5lLG9jY3VycmVuY2VJZDp1KGUub2NjdXJyZW5jZUlkKX0pKX06e319O3JldHVybiBhLnNldChlLHtkb21haW46dCx2YWx1ZTpyfSkscn0sXz1lPT57bGV0IHQ9ZihgY2VsbGAsZS5pZCk7cmV0dXJuey4uLmUsaWQ6bChlLmlkKSxmbG93RG9tYWluSWQ6dCxibG9ja3M6ZS5ibG9ja3MubWFwKGU9Pih7Li4uZSxsYXlvdXQ6eChlLmxheW91dCx0KX0pKX19LHY9KGUsdCk9Pih7Li4uZSxpZDpsKGUuaWQpLGZsb3dEb21haW5JZDp0LC4uLmBvY2N1cnJlbmNlSWRgaW4gZSYmdHlwZW9mIGUub2NjdXJyZW5jZUlkPT1gc3RyaW5nYD97b2NjdXJyZW5jZUlkOmQoZS5vY2N1cnJlbmNlSWQpfTp7fSxjZWxsczplLmNlbGxzLm1hcChfKX0pLHk9ZT0+e2xldCB0PWYoYGNlbGxgLGUuaG9zdENlbGxJZCk7cmV0dXJuey4uLmUsb2NjdXJyZW5jZUlkOmQoZS5vY2N1cnJlbmNlSWQpLGhvc3RDZWxsSWQ6bChlLmhvc3RDZWxsSWQpLHRhYmxlSWQ6bChlLnRhYmxlSWQpLGNoaWxkOmIoZS5jaGlsZCx0KX19LGI9KGUsdCk9PntsZXQgbj1pLmdldChlKTtpZihuKXtpZihuLmRvbWFpbiE9PXQpdGhyb3cgRXJyb3IoYGluY29tcGF0aWJsZSBwcm9qZWN0aW9uIG93bmVyc2hpcGApO3JldHVybiBuLnZhbHVlfWxldCByPXsuLi5lLGlkOmwoZS5pZCksZmxvd0RvbWFpbklkOnQscm93czplLnJvd3MubWFwKGU9PnYoZSx0KSl9O2kuc2V0KGUse2RvbWFpbjp0LHZhbHVlOnJ9KTtsZXQgYT1uZXcgTWFwLG89ZT0+e2xldCB0PWEuZ2V0KGUpO2lmKHQpcmV0dXJuIHQ7bGV0IG49Yy5nZXQoZS5vY2N1cnJlbmNlSWQpO2lmKG4mJm4hPT1lKXRocm93IEVycm9yKGBkdXBsaWNhdGUgZmxvYXRpbmcgcGxhY2VtZW50IG9jY3VycmVuY2Ugb3duZXJgKTtjLnNldChlLm9jY3VycmVuY2VJZCxlKTtsZXQgcj15KGUpO3JldHVybiBhLnNldChlLHIpLHJ9LHM9KGUuZmxvYXRpbmdUYWJsZXM/P1tdKS5tYXAobyksdT0oZS5yZXNvbHZlZEZsb2F0aW5nVGFibGVzPz9bXSkubWFwKGU9PntsZXQgdD1vKGUuc291cmNlKTtyZXR1cm57Li4uZSxvY2N1cnJlbmNlSWQ6ZChlLm9jY3VycmVuY2VJZCksY2hpbGQ6dC5jaGlsZCxzb3VyY2U6dH19KTtyZXR1cm4oZS5mbG9hdGluZ1RhYmxlc3x8ZS5yZXNvbHZlZEZsb2F0aW5nVGFibGVzKSYmT2JqZWN0LmFzc2lnbihyLHtmbG9hdGluZ1RhYmxlczpzLHJlc29sdmVkRmxvYXRpbmdUYWJsZXM6dX0pLHJ9O2Z1bmN0aW9uIHgoZSx0KXtyZXR1cm4gZS5raW5kPT09YHBhcmFncmFwaGA/ZyhlLHQpOmIoZSx0KX1sZXQgUz1JZyh4KG4sdC5kZXN0aW5hdGlvbi5mbG93RG9tYWluSWQpLGBET0NYIGJvZHkgb2NjdXJyZW5jZSBwcm9qZWN0aW9uYCk7aWYoUy5raW5kIT09YHRhYmxlYHx8ZS5raW5kIT09YHRhYmxlYClyZXR1cm4gUztsZXQgQz1PYmplY3QuaXNGcm96ZW4oZS5jb2x1bW5XaWR0aHNQdCk/ZS5jb2x1bW5XaWR0aHNQdDpPYmplY3QuZnJlZXplKFsuLi5lLmNvbHVtbldpZHRoc1B0XSk7cmV0dXJuIE9iamVjdC5mcmVlemUoey4uLlMsY29sdW1uV2lkdGhzUHQ6Q30pfXZhciBURD1jbGFzcyBleHRlbmRzIEVycm9ye2NvZGU9YE5FWFRfQ09MVU1OX0RFU1RJTkFUSU9OX1VOQVZBSUxBQkxFYDtjb25zdHJ1Y3RvcihlLHQsbixyKXtzdXBlcihgbmV4dENvbHVtbiByZXF1aXJlcyBhIGZvbGxvd2luZyBjb2x1bW4gb24gdGhlIGN1cnJlbnQgcGFnZSwgYnV0IGNvbHVtbiAke2UrMX0gaXMgdW5hdmFpbGFibGUgKG91dGdvaW5nIGNvbHVtbnM6ICR7dH0sIGluY29taW5nIGNvbHVtbnM6ICR7bn0sIHJlYXNvbjogJHtyfSlgKSx0aGlzLm91dGdvaW5nQ29sdW1uSW5kZXg9ZSx0aGlzLm91dGdvaW5nQ29sdW1uQ291bnQ9dCx0aGlzLmluY29taW5nQ29sdW1uQ291bnQ9bix0aGlzLnJlYXNvbj1yLHRoaXMubmFtZT1gVW5zdXBwb3J0ZWRQYWdlRmxvd1RyYW5zaXRpb25FcnJvcmB9fTtmdW5jdGlvbiBFRChlLHQpe3JldHVybiBlLnNlY3Rpb25CaWRpP1suLi50XS5yZXZlcnNlKCk6Wy4uLnRdfWZ1bmN0aW9uIEREKGUpe2xldCB0PUVEKGUuc2VjdGlvbixlLmNvbHVtblN1YnNldCk7cmV0dXJuIHRbdC5pbmRleE9mKGUuY29sdW1uSW5kZXgpKzFdfWZ1bmN0aW9uIE9EKGUsdD17fSl7bGV0IG49TEMoZSkscj1SQyhlKSxpPXQucGFnZUNvbnRlbnRTdGFydEJsb2NrUHQ/P24sYT10LnBhZ2VDb250ZW50RW5kQmxvY2tQdD8/cixvPXQucmVnaW9uU3RhcnRCbG9ja1B0Pz9pLHM9dC5yZWdpb25FbmRCbG9ja1B0Pz9hLGM9dC5jdXJzb3JCbG9ja1B0Pz9vLGw9dC5kZWVwZXN0Q29sdW1uQmxvY2tQdD8/Yyx1PXQucGFnZUluZGV4Pz8wLGQ9T2JqZWN0LmZyZWV6ZShbLi4udC5jb2x1bW5TdWJzZXQ/P2UuY29sdW1ucy5tYXAoKGUsdCk9PnQpXSksZj1FRChlLGQpLHA9dC5jb2x1bW5JbmRleD8/ZlswXT8/LTE7aWYoIU51bWJlci5pc0ludGVnZXIodSl8fHU8MCl0aHJvdyBSYW5nZUVycm9yKGBQYWdlIGluZGV4IG11c3QgYmUgYSBub24tbmVnYXRpdmUgaW50ZWdlcmApO2lmKCFOdW1iZXIuaXNJbnRlZ2VyKHApfHxwPDB8fHA+PWUuY29sdW1ucy5sZW5ndGgpdGhyb3cgUmFuZ2VFcnJvcihgQ29sdW1uIGluZGV4IG11c3QgaWRlbnRpZnkgYSBjb2x1bW4gaW4gdGhlIGFjdGl2ZSBzZWN0aW9uYCk7aWYoZC5sZW5ndGg9PT0wfHxkLnNvbWUoKHQsbik9PiFOdW1iZXIuaXNJbnRlZ2VyKHQpfHx0PDB8fHQ+PWUuY29sdW1ucy5sZW5ndGh8fG4+MCYmdDw9ZFtuLTFdKXx8IWQuaW5jbHVkZXMocCkpdGhyb3cgUmFuZ2VFcnJvcihgQ29sdW1uIHN1YnNldCBtdXN0IGJlIG9yZGVyZWQsIHVuaXF1ZSwgYW5kIGNvbnRhaW4gdGhlIGFjdGl2ZSBjb2x1bW5gKTtpZighW2ksYSxvLHMsYyxsXS5ldmVyeShOdW1iZXIuaXNGaW5pdGUpKXRocm93IFJhbmdlRXJyb3IoYFBhZ2UtZmxvdyBjdXJzb3JzIGFuZCBib3VuZHMgbXVzdCBiZSBmaW5pdGVgKTtpZihpPm98fG8+c3x8cz5hfHxvPmN8fGM+c3x8Yz5sKXRocm93IFJhbmdlRXJyb3IoYFBhZ2UtZmxvdyBib3VuZHMgbXVzdCBjb250YWluIHRoZSByZWdpb24gYW5kIGxpdmUgY3Vyc29yYCk7cmV0dXJuIE9iamVjdC5mcmVlemUoe3BhZ2VJbmRleDp1LGNvbHVtbkluZGV4OnAscGFnZUhhc0NvbnRlbnQ6dC5wYWdlSGFzQ29udGVudD8/ITEsY3Vyc29yQmxvY2tQdDpjLHBhZ2VDb250ZW50U3RhcnRCbG9ja1B0OmkscGFnZUNvbnRlbnRFbmRCbG9ja1B0OmEscmVnaW9uU3RhcnRCbG9ja1B0Om8scmVnaW9uRW5kQmxvY2tQdDpzLGNvbHVtblN1YnNldDpkLGRlZXBlc3RDb2x1bW5CbG9ja1B0Omwsc2VjdGlvbjplfSl9ZnVuY3Rpb24ga0QoZSx0KXtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7c3RhdGU6ZSxldmVudHM6T2JqZWN0LmZyZWV6ZSh0Lm1hcChlPT5PYmplY3QuZnJlZXplKHsuLi5lfSkpKX0pfWZ1bmN0aW9uIEFEKGUsdCxuKXtpZighTnVtYmVyLmlzRmluaXRlKG4pfHxuPDApdGhyb3cgUmFuZ2VFcnJvcihgQSBmbG93IG5vZGUgY2hhcmdlIG11c3QgYmUgYSBmaW5pdGUgbm9uLW5lZ2F0aXZlIHZhbHVlYCk7bGV0IHI9ZS5jdXJzb3JCbG9ja1B0LGk9cituO3JldHVybiBrRChPYmplY3QuZnJlZXplKHsuLi5lLHBhZ2VIYXNDb250ZW50OiEwLGN1cnNvckJsb2NrUHQ6aSxkZWVwZXN0Q29sdW1uQmxvY2tQdDpNYXRoLm1heChlLmRlZXBlc3RDb2x1bW5CbG9ja1B0LGkpfSksW3t0eXBlOmBwbGFjZWAsbm9kZTp0LGJsb2NrU3RhcnRQdDpyLGJsb2NrRW5kUHQ6aX1dKX1mdW5jdGlvbiBqRChlLHQpe2xldCBuPU1hdGgubWF4KGUuZGVlcGVzdENvbHVtbkJsb2NrUHQsZS5jdXJzb3JCbG9ja1B0KSxyPUREKGUpO2lmKHIhPT12b2lkIDApcmV0dXJuIGtEKE9iamVjdC5mcmVlemUoey4uLmUsY29sdW1uSW5kZXg6cixjdXJzb3JCbG9ja1B0OmUucmVnaW9uU3RhcnRCbG9ja1B0LGRlZXBlc3RDb2x1bW5CbG9ja1B0Om59KSxbe3R5cGU6YG5leHQtY29sdW1uYH1dKTtsZXQgaT1lLnBhZ2VJbmRleCsxO3JldHVybiBrRChPRChlLnNlY3Rpb24se3BhZ2VJbmRleDppfSksW3t0eXBlOmBuZXh0LXBhZ2VgLHJlYXNvbjp0LHBhZ2VJbmRleDppLHNlY3Rpb25PY2N1cnJlbmNlSWQ6ZS5zZWN0aW9uLnNlY3Rpb25PY2N1cnJlbmNlSWQscGFyaXR5Qmxhbms6ITF9XSl9ZnVuY3Rpb24gTUQoZSx0KXtyZXR1cm4gZS5raW5kPT09dC5raW5kJiZlLmxpbmVQaXRjaFB0PT09dC5saW5lUGl0Y2hQdCYmZS5jaGFyU3BhY2VQdD09PXQuY2hhclNwYWNlUHR9ZnVuY3Rpb24gTkQoZSx0KXtyZXR1cm4gZS54UHQ9PT10LnhQdCYmZS55UHQ9PT10LnlQdCYmZS53aWR0aFB0PT09dC53aWR0aFB0JiZlLmhlaWdodFB0PT09dC5oZWlnaHRQdH1mdW5jdGlvbiBQRChlLHQpe3JldHVybiBlLnhQdDx0LnhQdCt0LndpZHRoUHQmJnQueFB0PGUueFB0K2Uud2lkdGhQdCYmZS55UHQ8dC55UHQrdC5oZWlnaHRQdCYmdC55UHQ8ZS55UHQrZS5oZWlnaHRQdH1mdW5jdGlvbiBGRChlLHQsbil7bGV0IHI9bj0+e3Rocm93IG5ldyBURChlLmNvbHVtbkluZGV4LGUuc2VjdGlvbi5jb2x1bW5zLmxlbmd0aCx0LmNvbHVtbnMubGVuZ3RoLG4pfSxpPWN2KGUuc2VjdGlvbi50ZXh0RGlyZWN0aW9uKSxhPWN2KHQudGV4dERpcmVjdGlvbik7aSE9PWEmJnIoYHdyaXRpbmctbW9kZWApO2xldCBvPW12KHt3aWR0aFB0OmUuc2VjdGlvbi5nZW9tZXRyeS5wYWdlV2lkdGgsaGVpZ2h0UHQ6ZS5zZWN0aW9uLmdlb21ldHJ5LnBhZ2VIZWlnaHR9LGkpLHM9bXYoe3dpZHRoUHQ6dC5nZW9tZXRyeS5wYWdlV2lkdGgsaGVpZ2h0UHQ6dC5nZW9tZXRyeS5wYWdlSGVpZ2h0fSxhKTsoby53aWR0aFB0IT09cy53aWR0aFB0fHxvLmhlaWdodFB0IT09cy5oZWlnaHRQdCkmJnIoYHBhZ2UtZXh0ZW50YCk7bGV0IGM9bi5pbmNvbWluZ1BhZ2VDb250ZW50U3RhcnRCbG9ja1B0Pz9MQyh0KSxsPW4uaW5jb21pbmdQYWdlQ29udGVudEVuZEJsb2NrUHQ/P1JDKHQpOyhjIT09ZS5wYWdlQ29udGVudFN0YXJ0QmxvY2tQdHx8bCE9PWUucGFnZUNvbnRlbnRFbmRCbG9ja1B0KSYmcihgYmxvY2stYmFuZGApLE1EKGUuc2VjdGlvbi5ncmlkLHQuZ3JpZCl8fHIoYGdyaWRgKTtsZXQgdT1FRChlLnNlY3Rpb24sZS5jb2x1bW5TdWJzZXQpLGQ9dS5pbmRleE9mKGUuY29sdW1uSW5kZXgpLGY9dVtkKzFdO2lmKGY9PT12b2lkIDApdGhyb3cgRXJyb3IoYG5leHRDb2x1bW4gZGVzdGluYXRpb24gcmVzb2x1dGlvbiByZXF1aXJlcyBhIHNhbWUtcGFnZSBzdWNjZXNzb3JgKTtsZXQgcD1idihpLG8pLG09ZS5zZWN0aW9uLmNvbHVtbnNbZl0saD12dihwLmxvZ2ljYWxUb1BoeXNpY2FsLHt4UHQ6bS54UHQseVB0OmUucmVnaW9uU3RhcnRCbG9ja1B0LHdpZHRoUHQ6bS53UHQsaGVpZ2h0UHQ6ZS5yZWdpb25FbmRCbG9ja1B0LWUucmVnaW9uU3RhcnRCbG9ja1B0fSksZz10LmNvbHVtbnMuZmluZEluZGV4KHQ9Pk5EKGgsdnYocC5sb2dpY2FsVG9QaHlzaWNhbCx7eFB0OnQueFB0LHlQdDplLnJlZ2lvblN0YXJ0QmxvY2tQdCx3aWR0aFB0OnQud1B0LGhlaWdodFB0OmUucmVnaW9uRW5kQmxvY2tQdC1lLnJlZ2lvblN0YXJ0QmxvY2tQdH0pKSk7ZzwwJiZyKGBwaHlzaWNhbC1jb2x1bW5gKTtsZXQgXz1FRCh0LHQuY29sdW1ucy5tYXAoKGUsdCk9PnQpKSx2PV8uaW5kZXhPZihnKTt2PDAmJnIoYHBoeXNpY2FsLWNvbHVtbmApO2xldCB5PU9iamVjdC5mcmVlemUoXy5zbGljZSh2KS5zb3J0KChlLHQpPT5lLXQpKSxiPU9iamVjdC5mcmVlemUodS5zbGljZSgwLGQrMSkuc29ydCgoZSx0KT0+ZS10KSkseD0odCxuKT0+e2xldCByPXQuY29sdW1uc1tuXTtyZXR1cm4gdnYocC5sb2dpY2FsVG9QaHlzaWNhbCx7eFB0OnIueFB0LHlQdDplLnJlZ2lvblN0YXJ0QmxvY2tQdCx3aWR0aFB0OnIud1B0LGhlaWdodFB0OmUucmVnaW9uRW5kQmxvY2tQdC1lLnJlZ2lvblN0YXJ0QmxvY2tQdH0pfSxTPWIubWFwKHQ9PngoZS5zZWN0aW9uLHQpKTtyZXR1cm4geS5zb21lKGU9PntsZXQgbj14KHQsZSk7cmV0dXJuIFMuc29tZShlPT5QRChlLG4pKX0pJiZyKGBwaHlzaWNhbC1vdmVybGFwYCksT2JqZWN0LmZyZWV6ZSh7dGFyZ2V0Q29sdW1uSW5kZXg6Zyx0YXJnZXRDb2x1bW5PcmRpbmFsOnYsY29sdW1uU3Vic2V0Onksb3V0Z29pbmdDb2x1bW5TdWJzZXQ6Yn0pfWZ1bmN0aW9uIElEKGUsdCxuKXtsZXQgcj1lLnBhZ2VJbmRleCsxO3JldHVybiBrRChPRCh0LHtwYWdlSW5kZXg6cn0pLFt7dHlwZTpgbmV4dC1wYWdlYCxyZWFzb246bixwYWdlSW5kZXg6cixzZWN0aW9uT2NjdXJyZW5jZUlkOnQuc2VjdGlvbk9jY3VycmVuY2VJZCxwYXJpdHlCbGFuazohMX1dKX1mdW5jdGlvbiBMRChlLHQpe2xldCBuPWUlMj09MDtyZXR1cm4gdD09PWBvZGRgP246IW59ZnVuY3Rpb24gUkQoZSx0LG4scil7bGV0IGk9ZS5wYWdlSW5kZXgrMSxhPVtdO3JldHVybiByIT09dm9pZCAwJiYhTEQoaSxyKSYmKGEucHVzaCh7dHlwZTpgbmV4dC1wYWdlYCxyZWFzb246YHBhcml0eWAscGFnZUluZGV4Omksc2VjdGlvbk9jY3VycmVuY2VJZDplLnNlY3Rpb24uc2VjdGlvbk9jY3VycmVuY2VJZCxwYXJpdHlCbGFuazohMH0pLGkrPTEpLGEucHVzaCh7dHlwZTpgbmV4dC1wYWdlYCxyZWFzb246bixwYWdlSW5kZXg6aSxzZWN0aW9uT2NjdXJyZW5jZUlkOnQuc2VjdGlvbk9jY3VycmVuY2VJZCxwYXJpdHlCbGFuazohMX0pLGtEKE9EKHQse3BhZ2VJbmRleDppfSksYSl9ZnVuY3Rpb24gekQoZSx0LG4pe3JldHVybiB0PT09YGxhc3RSZW5kZXJlZFBhZ2VCcmVha2A/a0QoZSxbXSk6dD09PWBjb2x1bW5gP2pEKGUsYGV4cGxpY2l0LWJyZWFrYCk6dD09PWBwYWdlQnJlYWtCZWZvcmVgJiYhZS5wYWdlSGFzQ29udGVudCYmZS5jb2x1bW5JbmRleD09PUVEKGUuc2VjdGlvbixlLmNvbHVtblN1YnNldClbMF0mJmUuY3Vyc29yQmxvY2tQdD09PWUucGFnZUNvbnRlbnRTdGFydEJsb2NrUHQ/a0QoZSxbXSk6dD09PWBwYWdlYD9SRChlLGUuc2VjdGlvbixgZXhwbGljaXQtYnJlYWtgLG4pOklEKGUsZS5zZWN0aW9uLGBwYWdlLWJyZWFrLWJlZm9yZWApfWZ1bmN0aW9uIEJEKGUsdCxuLHI9e30pe2lmKG49PT1gY29udGludW91c2AmJiFyLmhhc0Zvb3Rub3RlUmVmZXJlbmNlT25DdXJyZW50UGFnZSl7bGV0IG49ZS5zZWN0aW9uLmNvbHVtbnMubGVuZ3RoPjE/TWF0aC5tYXgoZS5jdXJzb3JCbG9ja1B0LGUuZGVlcGVzdENvbHVtbkJsb2NrUHQpOmUuY3Vyc29yQmxvY2tQdDtyZXR1cm4ga0QoT0QodCx7cGFnZUluZGV4OmUucGFnZUluZGV4LHBhZ2VDb250ZW50U3RhcnRCbG9ja1B0OmUucGFnZUNvbnRlbnRTdGFydEJsb2NrUHQscGFnZUNvbnRlbnRFbmRCbG9ja1B0OmUucGFnZUNvbnRlbnRFbmRCbG9ja1B0LGN1cnNvckJsb2NrUHQ6bixyZWdpb25TdGFydEJsb2NrUHQ6bixyZWdpb25FbmRCbG9ja1B0OmUucGFnZUNvbnRlbnRFbmRCbG9ja1B0LGRlZXBlc3RDb2x1bW5CbG9ja1B0Om4scGFnZUhhc0NvbnRlbnQ6ZS5wYWdlSGFzQ29udGVudH0pLFt7dHlwZTpgYmVnaW4tc2VjdGlvbmAscGxhY2VtZW50OmBzYW1lLXBhZ2UtYmxvY2tgLHNlY3Rpb246dCx0YXJnZXRDb2x1bW5PcmRpbmFsOjAsY29sdW1uU3Vic2V0OnQuY29sdW1ucy5tYXAoKGUsdCk9PnQpfV0pfWlmKG49PT1gbmV4dENvbHVtbmApe2lmKEREKGUpPT09dm9pZCAwKXtsZXQgbj1JRChlLHQsYHNlY3Rpb24tYnJlYWtgKTtyZXR1cm4ga0Qobi5zdGF0ZSxbLi4ubi5ldmVudHMse3R5cGU6YGJlZ2luLXNlY3Rpb25gLHNlY3Rpb246dH1dKX1sZXQgbj1GRChlLHQscik7cmV0dXJuIGtEKE9iamVjdC5mcmVlemUoey4uLmUsY29sdW1uSW5kZXg6bi50YXJnZXRDb2x1bW5JbmRleCxjb2x1bW5TdWJzZXQ6bi5jb2x1bW5TdWJzZXQsY3Vyc29yQmxvY2tQdDplLnJlZ2lvblN0YXJ0QmxvY2tQdCxkZWVwZXN0Q29sdW1uQmxvY2tQdDpNYXRoLm1heChlLmRlZXBlc3RDb2x1bW5CbG9ja1B0LGUuY3Vyc29yQmxvY2tQdCksc2VjdGlvbjp0fSksW3t0eXBlOmBuZXh0LWNvbHVtbmB9LHt0eXBlOmBiZWdpbi1zZWN0aW9uYCxwbGFjZW1lbnQ6YHNhbWUtcGFnZS1jb2x1bW5gLHNlY3Rpb246dCx0YXJnZXRDb2x1bW5PcmRpbmFsOm4udGFyZ2V0Q29sdW1uT3JkaW5hbCxjb2x1bW5TdWJzZXQ6bi5jb2x1bW5TdWJzZXQsb3V0Z29pbmdDb2x1bW5TdWJzZXQ6bi5vdXRnb2luZ0NvbHVtblN1YnNldH1dKX1pZihuPT09YGNvbnRpbnVvdXNgKXtsZXQgbj1JRChlLHQsYHNlY3Rpb24tYnJlYWtgKTtyZXR1cm4ga0Qobi5zdGF0ZSxbLi4ubi5ldmVudHMse3R5cGU6YGJlZ2luLXNlY3Rpb25gLHNlY3Rpb246dH1dKX1sZXQgaT1SRChlLHQsYHNlY3Rpb24tYnJlYWtgLG49PT1gb2RkUGFnZWA/YG9kZGA6bj09PWBldmVuUGFnZWA/YGV2ZW5gOnZvaWQgMCk7cmV0dXJuIGtEKGkuc3RhdGUsWy4uLmkuZXZlbnRzLHt0eXBlOmBiZWdpbi1zZWN0aW9uYCxzZWN0aW9uOnR9XSl9ZnVuY3Rpb24gVkQoZSx0LG4scil7bGV0IGk9ZSxhPTA7Zm9yKGxldCBvPWUrMTtvPD10O28rKyl7bGV0IGU9cihvKTtpZighKGU8PW4pKWJyZWFrO2k9byxhPWV9cmV0dXJue2VuZDppLGZpdFZhbHVlOmF9fWZ1bmN0aW9uIEhEKGUpe3JldHVybiFlLndpZG93Q29udHJvbHx8ZS5lbmQ+PWUudG90YWxMaW5lcz97a2luZDpga2VlcGB9OmUudG90YWxMaW5lcy1lLmVuZD09PTEmJmUuZW5kLWUuc3RhcnQ+PTI/e2tpbmQ6YGRyb3BMYXN0TGluZWB9OmUuc3RhcnQ9PT0wJiZlLmVuZC1lLnN0YXJ0PT09MSYmZS5jYW5SZWxvY2F0ZT97a2luZDpgcmVsb2NhdGVgfTp7a2luZDpga2VlcGB9fSQoe2lkOmB3b3JkLXRlcm1pbmFsLWNvbHVtbi1icmVha2AsZXZpZGVuY2U6e2tpbmQ6YHJlZ3Jlc3Npb24tdGVzdGAscmVmZXJlbmNlOmBwYWNrYWdlcy9kb2N4L3NyYy9wYWdpbmF0aW9uLnRlc3QudHMjaWdub3JlcyBhIHRlcm1pbmFsIGxhc3QtY29sdW1uIGJyZWFrIGJlZm9yZSBhIGhhcmQgcGFnZSBib3VuZGFyeWB9LGRlc2NyaXB0aW9uOmBUaGUgZXN0YWJsaXNoZWQgcGFnaW5hdGlvbiByZWdyZXNzaW9uIGNvbnRyYWN0IGRvZXMgbm90IG1hdGVyaWFsaXplIGEgY29sdW1uIHRyYW5zaXRpb24gd2hlbiBubyBib2R5IGZsb3cgY29udGVudCBvY2N1cnMgYmVmb3JlIHRoZSBuZXh0IGZvcmNlZCBwYWdlIG9yIG5vbi1jb250aW51b3VzIHNlY3Rpb24gYm91bmRhcnkuYH0pLCQoe2lkOmB3b3JkLXByZS1icmVhay1hbmNob3ItcGFyYWdyYXBoYCxldmlkZW5jZTp7a2luZDpgcmVncmVzc2lvbi10ZXN0YCxyZWZlcmVuY2U6YHBhY2thZ2VzL2RvY3gvc3JjL3BhZ2luYXRpb24udGVzdC50cyNkb2VzIG5vdCBwdXNoIGFuIGFuY2hvci1vbmx5IHByZS1icmVhayBwYXJhZ3JhcGggdG8gYSBuZXcgcGFnZSBqdXN0IGZvciBpdHMgZW1wdHkgbWFya2B9LGRlc2NyaXB0aW9uOmBUaGUgZXN0YWJsaXNoZWQgcGFnaW5hdGlvbiByZWdyZXNzaW9uIGNvbnRyYWN0IGtlZXBzIGFuIGFuY2hvci1vbmx5IHBhcmFncmFwaCBpbW1lZGlhdGVseSBiZWZvcmUgYW4gYXV0aG9yZWQgcGFnZSBicmVhayBpbiB0aGUgcHJlLWJyZWFrIGZsb3cgcmVnaW9uIHdpdGhvdXQgY2hhcmdpbmcgaXRzIG90aGVyd2lzZSB2aXNpYmxlIHBhcmFncmFwaCBtYXJrLmB9KSwkKHtpZDpgd29yZC1wcmUtYnJlYWstaW5saW5lLWRyYXdpbmctZ3JvdXBgLGV2aWRlbmNlOntraW5kOmByZWdyZXNzaW9uLXRlc3RgLHJlZmVyZW5jZTpgcGFja2FnZXMvZG9jeC9zcmMvcGFnaW5hdGlvbi50ZXN0LnRzI21vdmVzIGEgcHJlY2VkaW5nIGltYWdlIHdpdGggaXRzIHByZS1icmVhayBjYWxsb3V0IHdoZW4gdGhlIHBhaXIgb25seSBmaXRzIGZyZXNoYH0sZGVzY3JpcHRpb246YFRoZSBlc3RhYmxpc2hlZCBwYWdpbmF0aW9uIHJlZ3Jlc3Npb24gY29udHJhY3QgcmVsb2NhdGVzIGEgcHJlY2VkaW5nIGlubGluZSBEcmF3aW5nTUwgcmVzb3VyY2Ugd2l0aCBhbiBpbW1lZGlhdGVseSBmb2xsb3dpbmcgaG9zdC1vd25lZCBhbmNob3IgcGFyYWdyYXBoIGJlZm9yZSBhbiBhdXRob3JlZCBwYWdlIGJyZWFrIHdoZW4gdGhlIHBhaXIgZml0cyBvbmx5IGluIGEgZnJlc2ggZmxvdyByZWdpb24uYH0pLCQoe2lkOmB3b3JkLWNvbnRpbnVvdXMtc2VjdGlvbi1tYXJrLXNwYWNpbmdgLGV2aWRlbmNlOntraW5kOmByZWdyZXNzaW9uLXRlc3RgLHJlZmVyZW5jZTpgcGFja2FnZXMvZG9jeC9zcmMvYm9keS1sYXlvdXQtaW5wdXQudGVzdC50cyNwcm9qZWN0cyBtdXR1YWxseSBleGNsdXNpdmUgY29sbGFwc2VkLW1hcmsgYW5kIGRyb3AtcHJldmlvdXMtYWZ0ZXIgcm9sZXNgfSxkZXNjcmlwdGlvbjpgVGhlIHJldGFpbmVkIGJvZHkgaW5wdXQgcHJvamVjdHMgdGhlIGVzdGFibGlzaGVkIGNvbnRpbnVvdXMtc2VjdGlvbiBlbXB0eS1tYXJrIHNwYWNpbmcgYmVoYXZpb3IgaW50byBvbmUgbXV0dWFsbHkgZXhjbHVzaXZlIHJvbGUgYmVmb3JlIHBhZ2luYXRpb24uYH0pLCQoe2lkOmB3b3JkLWNvbnRleHR1YWwtc3BhY2luZy1wZXItc2lkZWAsZXZpZGVuY2U6e2tpbmQ6YHJlZ3Jlc3Npb24tdGVzdGAscmVmZXJlbmNlOmBwYWNrYWdlcy9kb2N4L3NyYy9jb250ZXh0dWFsLXNwYWNpbmctYm9keS1wYWludC50ZXN0LnRzI3BhaW50cyB0aGUgYWRqdWRpY2F0ZWQgc2l4LWNhc2UgZ2FwIHRhYmxlYH0sZGVzY3JpcHRpb246YEZvciBzYW1lLXN0eWxlIGFkamFjZW50IHBhcmFncmFwaHMsIGNvbnRleHR1YWxTcGFjaW5nIHJlbW92ZXMgb25seSB0aGUgY29udHJpYnV0aW9uIG93bmVkIGJ5IGVhY2ggdG9nZ2xpbmcgc2lkZTsgYSBjdXJyZW50LW9ubHkgdG9nZ2xlIHByZXNlcnZlcyB0aGUgcHJldmlvdXMgcGFyYWdyYXBoIHNwYWNlQWZ0ZXIgY29udHJpYnV0aW9uLmB9KSwkKHtpZDpgd29yZC1lbXB0eS1rZWVwLW5leHQtYnJpZGdlYCxldmlkZW5jZTp7a2luZDpgcmVncmVzc2lvbi10ZXN0YCxyZWZlcmVuY2U6YHBhY2thZ2VzL2RvY3gvc3JjL2xheW91dC9ib2R5LXBhZ2luYXRvci1wcm9kdWN0aW9uLnRlc3QudHMjYnJpZGdlcyBhbiB1bmRlY29yYXRlZCBlbXB0eSBrZWVwTmV4dCBtYXJrIHRocm91Z2ggdGhlIGZvbGxvd2luZyBwYXJhZ3JhcGhgfSxkZXNjcmlwdGlvbjpgV29yZCBwcmludCBwYWdpbmF0aW9uIHRyZWF0cyBhbiB1bmRlY29yYXRlZCBlbXB0eSBrZWVwLXdpdGgtbmV4dCBwYXJhZ3JhcGggYXMgYSBicmlkZ2U6IHRoZSBmb2xsb3dpbmcgcGFyYWdyYXBoIGlzIGFkbWl0dGVkIGNvbXBsZXRlbHkgd2l0aCB0aGUgZmlyc3QgaW5kaXZpc2libGUgY29udGVudCBvZiBpdHMgc3VjY2Vzc29yLmB9KSwkKHtpZDpgd29yZC1hdXRvbWF0aWMta2VlcC1uZXh0LXN0YXJ0LXNwYWNpbmdgLGV2aWRlbmNlOntraW5kOmByZWdyZXNzaW9uLXRlc3RgLHJlZmVyZW5jZTpgcGFja2FnZXMvZG9jeC9zcmMvbGF5b3V0L2JvZHktcGFnaW5hdG9yLXByb2R1Y3Rpb24udGVzdC50cyNzdXBwcmVzc2VzIGxlYWRpbmcgc3BhY2luZyB3aGVuIGEga2VlcE5leHQgdW5pdCBtb3ZlcyB0byBhbiBhdXRvbWF0aWMgcGFnZWB9LGRlc2NyaXB0aW9uOmBXaGVuIGF1dG9tYXRpYyBvdmVyZmxvdyByZWxvY2F0ZXMgYSBrZWVwLXdpdGgtbmV4dCB1bml0IHRvIGEgZnJlc2ggcGh5c2ljYWwgcGFnZSwgc3VwcHJlc3MgdGhlIGxlYWRpbmcgcGFyYWdyYXBoIHNwYWNlLWJlZm9yZSBmb3IgdGhhdCBncm91cGVkIHJlbG9jYXRpb24gd2l0aG91dCBjaGFuZ2luZyBvcmRpbmFyeSBvdmVyZmxvdyBvciBhdXRob3JlZC1icmVhayBzcGFjaW5nLmB9KSwkKHtpZDpgd29yZC10cmFpbGluZy1zcGFjZS1hZnRlci1maXQtYWRtaXNzaW9uYCxldmlkZW5jZTp7a2luZDpgcmVncmVzc2lvbi10ZXN0YCxyZWZlcmVuY2U6YHBhY2thZ2VzL2RvY3gvc3JjL2xheW91dC9wYXJhZ3JhcGgtcGFnaW5hdGlvbi50ZXN0LnRzI2FkbWl0cyBmaW5hbCB2aXNpYmxlIGNvbnRlbnQgd2hlbiBvbmx5IGF1dGhvcmVkIHNwYWNlQWZ0ZXIgY3Jvc3NlcyB0aGUgcmVnaW9uIGVkZ2VgfSxkZXNjcmlwdGlvbjpgQWRtaXQgdGhlIGZpbmFsIHZpc2libGUgcGFyYWdyYXBoIGNvbnRlbnQgYXQgYSBmbG93LXJlZ2lvbiBlZGdlIHdoZW4gb25seSBpdHMgYXV0aG9yZWQgdHJhaWxpbmcgc3BhY2UgY3Jvc3NlcyB0aGUgZWRnZSwgd2hpbGUgcmV0YWluaW5nIHRoYXQgc3BhY2UgZm9yIHBsYWNlbWVudCBhbmQgcGFpbnQuYH0pLCQoe2lkOmB3b3JkLXZlcnRpY2FsLXJsLWZpbmFsLWxpbmUtYmFzZWxpbmUtYWRtaXNzaW9uYCxldmlkZW5jZTp7a2luZDpgb2ZmaWNlLW9ic2VydmF0aW9uYCxzeW50aGV0aWNGaXh0dXJlSWQ6YHZlcnRpY2FsLXJsLWZpbmFsLWxpbmUtYmFzZWxpbmUtYWRtaXNzaW9uYCxhcHBsaWNhdGlvbjpgTWljcm9zb2Z0IFdvcmRgLHZlcnNpb246YDE2LjExMS4xYCxwbGF0Zm9ybTpgbWFjT1MgMjYuNS4yYH0sZGVzY3JpcHRpb246YEluIGEgdmVydGljYWwtcmwgc2VjdGlvbiwgV29yZCBhZG1pdHMgdGhlIGZpbmFsIHZpc2libGUgdGV4dCBjb2x1bW4gd2hlbiBpdHMgdHJhbnNmb3JtZWQgYmFzZWxpbmUgYW5kIHJldGFpbmVkIHZpc2libGUgaW5rIHJlbWFpbiBpbnNpZGUgdGhlIGJsb2NrLWVuZCBlZGdlIGV2ZW4gaWYgdGhlIGNvbXBsZXRlIGxvZ2ljYWwgbGluZSBib3ggY3Jvc3NlcyB0aGF0IGVkZ2UuIFRoZSBjb21wbGV0ZSByZXRhaW5lZCBhZHZhbmNlIHJlbWFpbnMgYXV0aG9yaXRhdGl2ZSBhZnRlciBhZG1pc3Npb24uYH0pLCQoe2lkOmB3b3JkLWxvd2VyZWQtZHJvcC1jYXAtYW5jaG9yLWxlYWRpbmdgLGV2aWRlbmNlOntraW5kOmBvZmZpY2Utb2JzZXJ2YXRpb25gLHN5bnRoZXRpY0ZpeHR1cmVJZDpgbG93ZXJlZC1kcm9wLWNhcC1hbmNob3ItbGVhZGluZ2AsYXBwbGljYXRpb246YE1pY3Jvc29mdCBXb3JkYCx2ZXJzaW9uOmAxNi4xMTEuMWAscGxhdGZvcm06YG1hY09TIDI2LjUuMmB9LGRlc2NyaXB0aW9uOmBXb3JkIGtlZXBzIHRoZSBmb2xsb3dpbmcgYW5jaG9yIHRleHQgYmVsb3cgYSBiYXNlbGluZS1sb3dlcmVkIGRyb3AtY2FwIGdseXBoIHdoaWxlIHByZXNlcnZpbmcgdGhlIGRyb3AgY2FwIGV4Y2x1c2lvbiBoZWlnaHQgYXV0aG9yZWQgYnkgZnJhbWVQciBsaW5lcy4gRUNNQS0zNzYgc3BlY2lmaWVzIHRob3NlIHR3byBpbnB1dHMgaW5kZXBlbmRlbnRseSBidXQgZG9lcyBub3QgcHJlc2NyaWJlIHRoaXMgaW50ZXJhY3Rpb24uYH0pO2Z1bmN0aW9uIFVEKGUpe3JldHVybiBNYXRoLm1heCgwLGUpfWZ1bmN0aW9uIFdEKGUpe3JldHVybiBlPT09YG5vbmVgfWZ1bmN0aW9uIEdEKGUpe3JldHVybiBNYXRoLm1heCgwLGUuYWR2YW5jZVB0LU1hdGgubWluKGUuYXV0aG9yZWRTcGFjZUFmdGVyUHQsZS5yZXRhaW5lZFNwYWNlQWZ0ZXJQdCkpfWZ1bmN0aW9uIEtEKGUpe3JldHVybiBlLm9yaWdpbi55UHQrKGUuaW5rQm91bmRzPy5kZXNjZW50UHQ/PzApfWZ1bmN0aW9uIHFEKGUpe2lmKGUua2luZD09PWByZXNvdXJjZWB8fGUua2luZD09PWBkcmF3aW5nYClyZXR1cm4gZS5ib3VuZHMueVB0K2UuYm91bmRzLmhlaWdodFB0O2lmKGUua2luZD09PWBhbmNob3ItaG9zdGApcmV0dXJuIG51bGw7aWYoZS5raW5kPT09YHRhYmApe2xldCB0PWUubGVhZGVyR2x5cGhzPz9bXTtyZXR1cm4gdC5sZW5ndGg+MD9NYXRoLm1heCguLi50Lm1hcChLRCkpOm51bGx9bGV0IHQ9ZS5wYWludE9wcz8/W10sbj10Lmxlbmd0aD4wP3QubWFwKHQ9PmUub3JpZ2luLnlQdCt0Lm9mZnNldC55UHQrKHQuYmxvY2tBeGlzSW5rQm91bmRzPy5lbmRQdD8/dC5pbmtCb3VuZHM/LmRlc2NlbnRQdD8/MCkpOltlLm9yaWdpbi55UHRdO2ZvcihsZXQgdCBvZiBlLmRlY29yYXRpb25zKXtsZXQgZT10LndpZHRoUHQvMjtuLnB1c2godC5mcm9tLnlQdCtlLHQudG8ueVB0K2UpO2ZvcihsZXQgciBvZiB0LnBhdGg/P1tdKW4ucHVzaChyLnlQdCtlKX1mb3IobGV0IHQgb2YgZS5oaWdobGlnaHRGcmFnbWVudHM/P1tdKW4ucHVzaCh0LnJlY3QueVB0K3QucmVjdC5oZWlnaHRQdCk7Zm9yKGxldCB0IG9mIGUucnVuQm9yZGVyRnJhZ21lbnRzPz9bXSl7bGV0IGU9dC53aWR0aFB0LzI7bi5wdXNoKHQuZnJvbS55UHQrZSx0LnRvLnlQdCtlKX1mb3IobGV0IHQgb2YgZS5lbXBoYXNpcz8uZ2x5cGhzPz9bXSluLnB1c2goS0QodCkpO2ZvcihsZXQgdCBvZiBlLnJ1Ynk/LnBhaW50T3BzPz9bXSluLnB1c2goS0QodCkpO2ZvcihsZXQgdCBvZiBlLmVtcGhhc2lzPy5wYXRocz8/W10pe2xldCBlPXQuc3Ryb2tlPT09bnVsbD8wOnQuc3Ryb2tlV2lkdGhQdC8yO2ZvcihsZXQgciBvZiB0LnBvaW50cyluLnB1c2goci55UHQrZSl9cmV0dXJuIE1hdGgubWF4KC4uLm4pfWZ1bmN0aW9uIEpEKGUpe2lmKGUud3JpdGluZ01vZGUhPT1gdmVydGljYWwtcmxgfHxlLmxvZ2ljYWxMaW5lQm94RXh0ZW50UHQ8PWUuYXZhaWxhYmxlQmxvY2tFeHRlbnRQdClyZXR1cm4gZS5sb2dpY2FsTGluZUJveEV4dGVudFB0O2xldCB0PWUucGFyYWdyYXBoLmxpbmVzLmF0KC0xKTtpZighdHx8dC5wbGFjZW1lbnRzLnNvbWUoZT0+ZS5raW5kPT09YHRleHRgJiYoZS5wYWludE9wcz8/W10pLnNvbWUoZT0+ZS5nbHlwaE9yaWVudGF0aW9uIT09dm9pZCAwJiZlLmJsb2NrQXhpc0lua0JvdW5kcz09PXZvaWQgMCkpKXJldHVybiBlLmxvZ2ljYWxMaW5lQm94RXh0ZW50UHQ7bGV0IG49dC5wbGFjZW1lbnRzLmZsYXRNYXAoZT0+e2xldCB0PXFEKGUpO3JldHVybiB0PT09bnVsbD9bXTpbdF19KTtpZihuLmxlbmd0aD09PTB8fGUucGFyYWdyYXBoLnNoYWRpbmcpcmV0dXJuIGUubG9naWNhbExpbmVCb3hFeHRlbnRQdDtmb3IobGV0IHQgb2YgZS5wYXJhZ3JhcGguYm9yZGVycyl7bGV0IGU9dC53aWR0aFB0LzI7bi5wdXNoKHQuZnJvbS55UHQrZSx0LnRvLnlQdCtlKX1pZihlLnBhcmFncmFwaC5wYXJhZ3JhcGhNYXJrJiYhZS5wYXJhZ3JhcGgucGFyYWdyYXBoTWFyay5oaWRkZW4pe2xldCB0PWUucGFyYWdyYXBoLnBhcmFncmFwaE1hcmsuYm91bmRzO24ucHVzaCh0LnlQdCt0LmhlaWdodFB0KX1yZXR1cm4gTWF0aC5tYXgoMCxNYXRoLm1heCguLi5uKS1lLnBhcmFncmFwaC5mbG93Qm91bmRzLnlQdCl9ZnVuY3Rpb24gWUQoZSl7cmV0dXJuIGUua2VlcE5leHQmJmUuaW5rbGVzcyYmZS51bmRlY29yYXRlZE1hcmt9ZnVuY3Rpb24gWEQoZSx0KXtsZXQgbj1lW3RdO2lmKG4/LmtpbmQhPT1gYm9keS1ibG9ja2B8fG4uYmxvY2sua2luZCE9PWBwYXJhZ3JhcGhgKXJldHVybjtsZXQgcj1lW3QrMV0saT1lW3QrMl0sYT1uLmJsb2NrLmlua2xlc3M9PT0hMCYmcj8ua2luZD09PWBiZWdpbi1zZWN0aW9uYCYmci5zZWN0aW9uLnN0YXJ0VHlwZT09PWBjb250aW51b3VzYDtyZXR1cm4gYSYmbi5ibG9jay5zcGFjZUJlZm9yZVB0PT09MD9gY29sbGFwc2UtbWFya2A6YT9gc3VwcHJlc3MtYmVmb3JlYDpuLmJsb2NrLmlua2xlc3M9PT0hMCYmcj8ua2luZD09PWBib2R5LWJsb2NrYCYmci5ibG9jay5raW5kPT09YHBhcmFncmFwaGAmJnIuYmxvY2suaW5rbGVzcz09PSEwJiZyLmJsb2NrLnNwYWNlQmVmb3JlUHQ9PT0wJiZpPy5raW5kPT09YGJlZ2luLXNlY3Rpb25gJiZpLnNlY3Rpb24uc3RhcnRUeXBlPT09YGNvbnRpbnVvdXNgP2Bkcm9wLXByZXZpb3VzLWFmdGVyYDp2b2lkIDB9ZnVuY3Rpb24gWkQoZSl7cmV0dXJuIGUuZHJhd2luZ3MubGVuZ3RoPjAmJmUubGluZXMuZXZlcnkoZT0+ZS5wbGFjZW1lbnRzLmV2ZXJ5KGU9PmUua2luZD09PWBkcmF3aW5nYHx8ZS5raW5kPT09YGFuY2hvci1ob3N0YCkpfWZ1bmN0aW9uIFFEKGUpe3JldHVybiBlLmxpbmVzLnNvbWUoZT0+ZS5wbGFjZW1lbnRzLnNvbWUoZT0+KGUua2luZD09PWByZXNvdXJjZWAmJihlLnJlc291cmNlS2luZD09PWBpbWFnZWB8fGUucmVzb3VyY2VLaW5kPT09YGNoYXJ0YCl8fGUua2luZD09PWBkcmF3aW5nYCkmJmUuYWR2YW5jZVB0PjAmJmUuYm91bmRzIT09dm9pZCAwJiZlLmJvdW5kcy53aWR0aFB0PjAmJmUuYm91bmRzLmhlaWdodFB0PjApKX1mdW5jdGlvbiAkRChlLHQpe2lmKCFaRChlKSlyZXR1cm4gbnVsbDtsZXQgbj1lLmRyYXdpbmdzLmZpbHRlcihlPT5lLmFuY2hvckxheWVyPy52ZXJ0aWNhbE93bmVyc2hpcD09PWBob3N0YCYmTnVtYmVyLmlzRmluaXRlKGUuZmxvd0JvdW5kcy54UHQpJiZOdW1iZXIuaXNGaW5pdGUoZS5mbG93Qm91bmRzLnlQdCkmJk51bWJlci5pc0Zpbml0ZShlLmZsb3dCb3VuZHMud2lkdGhQdCkmJk51bWJlci5pc0Zpbml0ZShlLmZsb3dCb3VuZHMuaGVpZ2h0UHQpJiZlLmZsb3dCb3VuZHMud2lkdGhQdD4wJiZlLmZsb3dCb3VuZHMuaGVpZ2h0UHQ+MCk7aWYobi5sZW5ndGghPT1lLmRyYXdpbmdzLmxlbmd0aClyZXR1cm4gbnVsbDtsZXQgcj1NYXRoLm1heCguLi5uLm1hcChlPT5lLmZsb3dCb3VuZHMueVB0K2UuZmxvd0JvdW5kcy5oZWlnaHRQdCkpO3JldHVybiBNYXRoLm1heCgwLHItdCl9ZnVuY3Rpb24gZU8oZSl7aWYoIVpEKGUpKXJldHVybiBudWxsO2xldHtwYXJhZ3JhcGhNYXJrOnQsLi4ubn09ZTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Li4ubixhZHZhbmNlUHQ6MCxmbG93Qm91bmRzOk9iamVjdC5mcmVlemUoey4uLmUuZmxvd0JvdW5kcyxoZWlnaHRQdDowfSl9KX1mdW5jdGlvbiB0TyhlKXtsZXQgdD1uZXcgU2V0LG49ITE7Zm9yKGxldCByPWUubGVuZ3RoLTE7cj49MDstLXIpe2xldCBpPWVbcl07aWYoaS5raW5kPT09YGJvZHktYmxvY2tgKXtuPWkuYmxvY2sua2luZCE9PWBwYXJhZ3JhcGhgfHwhaS5ibG9jay5wYWdlQnJlYWtCZWZvcmU7Y29udGludWV9aWYoaS5raW5kPT09YGFkamFjZW50LXRhYmxlLWdyb3VwYCl7bj0hMDtjb250aW51ZX1pZihpLmtpbmQ9PT1gYXV0aG9yZWQtYnJlYWtgKXtpLmJyZWFrPT09YGNvbHVtbmA/biYmdC5hZGQocik6bj0hMTtjb250aW51ZX1pLmtpbmQ9PT1gYmVnaW4tc2VjdGlvbmAmJmkuc2VjdGlvbi5zdGFydFR5cGUhPT1gY29udGludW91c2AmJihuPSExKX1yZXR1cm4gdH1mdW5jdGlvbiBuTyhlLHQsbixyLGk9LTEvMCxhPSEwLG89ITEpe3JldHVybiBzaChlLHQse2ZpcnN0Q29udGVudFNpOm4sbGFzdERyYXduU2k6cixtaW5QZXJHYXA6aSxzZWFDbHVzdGVyR2FwczpvLC4uLmE/e306e2lzR2FwQ2hhcjooKT0+ITF9fSl9ZnVuY3Rpb24gck8oZSl7aWYoIWUpcmV0dXJuIDA7bGV0IHQ9MDtmb3IobGV0IG4gb2YgZS5wZXJTZWcudmFsdWVzKCkpdCs9bi5zcGxpdEJlZm9yZS5sZW5ndGgrICshIW4udHJhaWxpbmdHYXA7cmV0dXJuIGUucGVyR2FwKnR9ZnVuY3Rpb24gaU8oZSx0LG4scixpKXtyZXR1cm4gdD49MD9udWxsOm5PKGUsdCxuLHIsLWkqLjI1LCExKX1jb25zdCBhTz1bYFVgLGBDYCxgRGAsYExgLGBSYCxgVGBdLG9PPVswLDE3MywxNzQsNzY4LDg4MCwxMTU1LDExNjIsMTQyNSwxNDcwLDE0NzEsMTQ3MiwxNDczLDE0NzUsMTQ3NiwxNDc4LDE0NzksMTQ4MCwxNTUyLDE1NjMsMTU2NCwxNTY1LDE1NjgsMTU2OSwxNTcwLDE1NzQsMTU3NSwxNTc2LDE1NzcsMTU3OCwxNTgzLDE1ODcsMTYwMCwxNjAxLDE2MDgsMTYwOSwxNjExLDE2MzIsMTY0NiwxNjQ4LDE2NDksMTY1MiwxNjUzLDE2NTYsMTY3MiwxNjkwLDE3MjgsMTcyOSwxNzMxLDE3NDAsMTc0MSwxNzQyLDE3NDMsMTc0NCwxNzQ2LDE3NDgsMTc0OSwxNzUwLDE3NTcsMTc1OSwxNzY1LDE3NjcsMTc2OSwxNzcwLDE3NzQsMTc3NiwxNzg2LDE3ODksMTc5MSwxNzkyLDE4MDcsMTgwOCwxODA5LDE4MTAsMTgxMywxODE4LDE4MjIsMTgyMywxODMyLDE4MzMsMTgzNCwxODM1LDE4MzYsMTgzNywxODM5LDE4NDAsMTg2NywxODY5LDE4NzAsMTg4MSwxODg0LDE4OTksMTkwMSwxOTA1LDE5MDYsMTkwNywxOTA5LDE5MTIsMTkxNCwxOTIwLDE5NTgsMTk2OSwxOTk0LDIwMjcsMjAzNiwyMDQyLDIwNDMsMjA0NSwyMDQ2LDIwNzAsMjA3NCwyMDc1LDIwODQsMjA4NSwyMDg4LDIwODksMjA5NCwyMTEyLDIxMTMsMjExOCwyMTIwLDIxMjEsMjEyMiwyMTMyLDIxMzMsMjEzNCwyMTM3LDIxNDAsMjE0NCwyMTQ1LDIxNDYsMjE1MCwyMTUxLDIxNTIsMjE1MywyMTU1LDIxNjAsMjE3OSwyMTgyLDIxODMsMjE4NSwyMTkwLDIxOTEsMjE5MiwyMTk5LDIyMDgsMjIxOCwyMjIxLDIyMjIsMjIyMywyMjI1LDIyMjcsMjIzMywyMjM0LDIyNDksMjI1MCwyMjc0LDIyNzUsMjMwNywyMzYyLDIzNjMsMjM2NCwyMzY1LDIzNjksMjM3NywyMzgxLDIzODIsMjM4NSwyMzkyLDI0MDIsMjQwNCwyNDMzLDI0MzQsMjQ5MiwyNDkzLDI0OTcsMjUwMSwyNTA5LDI1MTAsMjUzMCwyNTMyLDI1NTgsMjU1OSwyNTYxLDI1NjMsMjYyMCwyNjIxLDI2MjUsMjYyNywyNjMxLDI2MzMsMjYzNSwyNjM4LDI2NDEsMjY0MiwyNjcyLDI2NzQsMjY3NywyNjc4LDI2ODksMjY5MSwyNzQ4LDI3NDksMjc1MywyNzU4LDI3NTksMjc2MSwyNzY1LDI3NjYsMjc4NiwyNzg4LDI4MTAsMjgxNiwyODE3LDI4MTgsMjg3NiwyODc3LDI4NzksMjg4MCwyODgxLDI4ODUsMjg5MywyODk0LDI5MDEsMjkwMywyOTE0LDI5MTYsMjk0NiwyOTQ3LDMwMDgsMzAwOSwzMDIxLDMwMjIsMzA3MiwzMDczLDMwNzYsMzA3NywzMTMyLDMxMzMsMzEzNCwzMTM3LDMxNDIsMzE0NSwzMTQ2LDMxNTAsMzE1NywzMTU5LDMxNzAsMzE3MiwzMjAxLDMyMDIsMzI2MCwzMjYxLDMyNjMsMzI2NCwzMjcwLDMyNzEsMzI3NiwzMjc4LDMyOTgsMzMwMCwzMzI4LDMzMzAsMzM4NywzMzg5LDMzOTMsMzM5NywzNDA1LDM0MDYsMzQyNiwzNDI4LDM0NTcsMzQ1OCwzNTMwLDM1MzEsMzUzOCwzNTQxLDM1NDIsMzU0MywzNjMzLDM2MzQsMzYzNiwzNjQzLDM2NTUsMzY2MywzNzYxLDM3NjIsMzc2NCwzNzczLDM3ODQsMzc5MSwzODY0LDM4NjYsMzg5MywzODk0LDM4OTUsMzg5NiwzODk3LDM4OTgsMzk1MywzOTY3LDM5NjgsMzk3MywzOTc0LDM5NzYsMzk4MSwzOTkyLDM5OTMsNDAyOSw0MDM4LDQwMzksNDE0MSw0MTQ1LDQxNDYsNDE1Miw0MTUzLDQxNTUsNDE1Nyw0MTU5LDQxODQsNDE4Niw0MTkwLDQxOTMsNDIwOSw0MjEzLDQyMjYsNDIyNyw0MjI5LDQyMzEsNDIzNyw0MjM4LDQyNTMsNDI1NCw0OTU3LDQ5NjAsNTkwNiw1OTA5LDU5MzgsNTk0MCw1OTcwLDU5NzIsNjAwMiw2MDA0LDYwNjgsNjA3MCw2MDcxLDYwNzgsNjA4Niw2MDg3LDYwODksNjEwMCw2MTA5LDYxMTAsNjE1MSw2MTUyLDYxNTQsNjE1NSw2MTU4LDYxNTksNjE2MCw2MTc2LDYyNjUsNjI3Nyw2Mjc5LDYzMTMsNjMxNCw2MzE1LDY0MzIsNjQzNSw2NDM5LDY0NDEsNjQ1MCw2NDUxLDY0NTcsNjQ2MCw2Njc5LDY2ODEsNjY4Myw2Njg0LDY3NDIsNjc0Myw2NzQ0LDY3NTEsNjc1Miw2NzUzLDY3NTQsNjc1NSw2NzU3LDY3NjUsNjc3MSw2NzgxLDY3ODMsNjc4NCw2ODMyLDY4NzgsNjg4MCw2ODkyLDY5MTIsNjkxNiw2OTY0LDY5NjUsNjk2Niw2OTcxLDY5NzIsNjk3Myw2OTc4LDY5NzksNzAxOSw3MDI4LDcwNDAsNzA0Miw3MDc0LDcwNzgsNzA4MCw3MDgyLDcwODMsNzA4Niw3MTQyLDcxNDMsNzE0NCw3MTQ2LDcxNDksNzE1MCw3MTUxLDcxNTQsNzIxMiw3MjIwLDcyMjIsNzIyNCw3Mzc2LDczNzksNzM4MCw3MzkzLDczOTQsNzQwMSw3NDA1LDc0MDYsNzQxMiw3NDEzLDc0MTYsNzQxOCw3NjE2LDc2ODAsODIwMyw4MjA0LDgyMDUsODIwNiw4MjA4LDgyMzQsODIzOSw4Mjg4LDgyOTMsODI5OCw4MzA0LDg0MDAsODQzMywxMTUwMywxMTUwNiwxMTY0NywxMTY0OCwxMTc0NCwxMTc3NiwxMjMzMCwxMjMzNCwxMjQ0MSwxMjQ0Myw0MjYwNyw0MjYxMSw0MjYxMiw0MjYyMiw0MjY1NCw0MjY1Niw0MjczNiw0MjczOCw0MzAxMCw0MzAxMSw0MzAxNCw0MzAxNSw0MzAxOSw0MzAyMCw0MzA0NSw0MzA0Nyw0MzA1Miw0MzA1Myw0MzA3Miw0MzEyMiw0MzEyMyw0MzIwNCw0MzIwNiw0MzIzMiw0MzI1MCw0MzI2Myw0MzI2NCw0MzMwMiw0MzMxMCw0MzMzNSw0MzM0Niw0MzM5Miw0MzM5NSw0MzQ0Myw0MzQ0NCw0MzQ0Niw0MzQ1MCw0MzQ1Miw0MzQ1NCw0MzQ5Myw0MzQ5NCw0MzU2MSw0MzU2Nyw0MzU2OSw0MzU3MSw0MzU3Myw0MzU3NSw0MzU4Nyw0MzU4OCw0MzU5Niw0MzU5Nyw0MzY0NCw0MzY0NSw0MzY5Niw0MzY5Nyw0MzY5OCw0MzcwMSw0MzcwMyw0MzcwNSw0MzcxMCw0MzcxMiw0MzcxMyw0MzcxNCw0Mzc1Niw0Mzc1OCw0Mzc2Niw0Mzc2Nyw0NDAwNSw0NDAwNiw0NDAwOCw0NDAwOSw0NDAxMyw0NDAxNCw2NDI4Niw2NDI4Nyw2NTAyNCw2NTA0MCw2NTA1Niw2NTA3Miw2NTI3OSw2NTI4MCw2NTUyOSw2NTUzMiw2NjA0NSw2NjA0Niw2NjI3Miw2NjI3Myw2NjQyMiw2NjQyNyw2ODA5Nyw2ODEwMCw2ODEwMSw2ODEwMyw2ODEwOCw2ODExMiw2ODE1Miw2ODE1NSw2ODE1OSw2ODE2MCw2ODI4OCw2ODI5Myw2ODI5NCw2ODI5NSw2ODI5Niw2ODI5Nyw2ODI5OSw2ODMwMSw2ODMwMiw2ODMwNyw2ODMxMSw2ODMxMiw2ODMxNyw2ODMxOCw2ODMyMSw2ODMyMiw2ODMyNCw2ODMyNSw2ODMyNyw2ODMzMSw2ODMzNSw2ODMzNiw2ODQ4MCw2ODQ4MSw2ODQ4Miw2ODQ4Myw2ODQ4Niw2ODQ4OSw2ODQ5MCw2ODQ5Miw2ODQ5Myw2ODQ5NCw2ODQ5Niw2ODQ5Nyw2ODQ5OCw2ODUyMSw2ODUyNSw2ODUyNyw2ODg2NCw2ODg2NSw2ODg5OCw2ODg5OSw2ODkwMCw2ODkwNCw2ODk2OSw2ODk3NCw2OTI5MSw2OTI5Myw2OTMxNCw2OTMxNSw2OTMxNyw2OTMxOCw2OTMyMCw2OTM3MCw2OTM3Niw2OTQyNCw2OTQyNyw2OTQyOCw2OTQ0NSw2OTQ0Niw2OTQ1Nyw2OTQ2MCw2OTQ2MSw2OTQ4OCw2OTQ5Miw2OTQ5NCw2OTUwNiw2OTUxMCw2OTU1Miw2OTU1Myw2OTU1NCw2OTU1Niw2OTU1OSw2OTU2MCw2OTU2MSw2OTU2Myw2OTU2NSw2OTU2Niw2OTU2OCw2OTU2OSw2OTU3MCw2OTU3Miw2OTU3Myw2OTU3Nyw2OTU3OCw2OTU3OSw2OTU4MCw2OTYzMyw2OTYzNCw2OTY4OCw2OTcwMyw2OTc0NCw2OTc0NSw2OTc0Nyw2OTc0OSw2OTc1OSw2OTc2Miw2OTgxMSw2OTgxNSw2OTgxNyw2OTgxOSw2OTgyNiw2OTgyNyw2OTg4OCw2OTg5MSw2OTkyNyw2OTkzMiw2OTkzMyw2OTk0MSw3MDAwMyw3MDAwNCw3MDAxNiw3MDAxOCw3MDA3MCw3MDA3OSw3MDA4OSw3MDA5Myw3MDA5NSw3MDA5Niw3MDE5MSw3MDE5NCw3MDE5Niw3MDE5Nyw3MDE5OCw3MDIwMCw3MDIwNiw3MDIwNyw3MDIwOSw3MDIxMCw3MDM2Nyw3MDM2OCw3MDM3MSw3MDM3OSw3MDQwMCw3MDQwMiw3MDQ1OSw3MDQ2MSw3MDQ2NCw3MDQ2NSw3MDUwMiw3MDUwOSw3MDUxMiw3MDUxNyw3MDU4Nyw3MDU5Myw3MDYwNiw3MDYwNyw3MDYwOCw3MDYwOSw3MDYxMCw3MDYxMSw3MDYyNSw3MDYyNyw3MDcxMiw3MDcyMCw3MDcyMiw3MDcyNSw3MDcyNiw3MDcyNyw3MDc1MCw3MDc1MSw3MDgzNSw3MDg0MSw3MDg0Miw3MDg0Myw3MDg0Nyw3MDg0OSw3MDg1MCw3MDg1Miw3MTA5MCw3MTA5NCw3MTEwMCw3MTEwMiw3MTEwMyw3MTEwNSw3MTEzMiw3MTEzNCw3MTIxOSw3MTIyNyw3MTIyOSw3MTIzMCw3MTIzMSw3MTIzMyw3MTMzOSw3MTM0MCw3MTM0MSw3MTM0Miw3MTM0NCw3MTM1MCw3MTM1MSw3MTM1Miw3MTQ1Myw3MTQ1NCw3MTQ1NSw3MTQ1Niw3MTQ1OCw3MTQ2Miw3MTQ2Myw3MTQ2OCw3MTcyNyw3MTczNiw3MTczNyw3MTczOSw3MTk5NSw3MTk5Nyw3MTk5OCw3MTk5OSw3MjAwMyw3MjAwNCw3MjE0OCw3MjE1Miw3MjE1NCw3MjE1Niw3MjE2MCw3MjE2MSw3MjE5Myw3MjIwMyw3MjI0Myw3MjI0OSw3MjI1MSw3MjI1NSw3MjI2Myw3MjI2NCw3MjI3Myw3MjI3OSw3MjI4MSw3MjI4NCw3MjMzMCw3MjM0Myw3MjM0NCw3MjM0Niw3MjU0NCw3MjU0NSw3MjU0Niw3MjU0OSw3MjU1MCw3MjU1MSw3Mjc1Miw3Mjc1OSw3Mjc2MCw3Mjc2Niw3Mjc2Nyw3Mjc2OCw3Mjg1MCw3Mjg3Miw3Mjg3NCw3Mjg4MSw3Mjg4Miw3Mjg4NCw3Mjg4NSw3Mjg4Nyw3MzAwOSw3MzAxNSw3MzAxOCw3MzAxOSw3MzAyMCw3MzAyMiw3MzAyMyw3MzAzMCw3MzAzMSw3MzAzMiw3MzEwNCw3MzEwNiw3MzEwOSw3MzExMCw3MzExMSw3MzExMiw3MzQ1OSw3MzQ2MSw3MzQ3Miw3MzQ3NCw3MzUyNiw3MzUzMSw3MzUzNiw3MzUzNyw3MzUzOCw3MzUzOSw3MzU2Miw3MzU2Myw3ODg5Niw3ODkxMyw3ODkxOSw3ODkzNCw5MDM5OCw5MDQxMCw5MDQxMyw5MDQxNiw5MjkxMiw5MjkxNyw5Mjk3Niw5Mjk4Myw5NDAzMSw5NDAzMiw5NDA5NSw5NDA5OSw5NDE4MCw5NDE4MSwxMTM4MjEsMTEzODIzLDExMzgyNCwxMTM4MjgsMTE4NTI4LDExODU3NCwxMTg1NzYsMTE4NTk5LDExOTE0MywxMTkxNDYsMTE5MTU1LDExOTE3MSwxMTkxNzMsMTE5MTgwLDExOTIxMCwxMTkyMTQsMTE5MzYyLDExOTM2NSwxMjEzNDQsMTIxMzk5LDEyMTQwMywxMjE0NTMsMTIxNDYxLDEyMTQ2MiwxMjE0NzYsMTIxNDc3LDEyMTQ5OSwxMjE1MDQsMTIxNTA1LDEyMTUyMCwxMjI4ODAsMTIyODg3LDEyMjg4OCwxMjI5MDUsMTIyOTA3LDEyMjkxNCwxMjI5MTUsMTIyOTE3LDEyMjkxOCwxMjI5MjMsMTIzMDIzLDEyMzAyNCwxMjMxODQsMTIzMTkxLDEyMzU2NiwxMjM1NjcsMTIzNjI4LDEyMzYzMiwxMjQxNDAsMTI0MTQ0LDEyNDM5OCwxMjQ0MDAsMTI0NjQzLDEyNDY0NCwxMjQ2NDYsMTI0NjQ3LDEyNDY1NCwxMjQ2NTYsMTI0NjYxLDEyNDY2MiwxMjUxMzYsMTI1MTQzLDEyNTE4NCwxMjUyNTIsMTI1MjYwLDkxNzUwNSw5MTc1MDYsOTE3NTM2LDkxNzYzMiw5MTc3NjAsOTE4ZTNdLHNPPVswLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCwyLDAsNCwyLDQsMiw0LDIsNCwyLDEsMiw0LDIsNSwwLDIsNSw0LDAsNCwyLDQsMiw0LDIsNCwyLDQsMiw0LDIsNCwwLDQsNSwwLDUsMCw1LDAsNSw0LDAsMiwwLDIsMCw1LDQsNSwyLDQsMiw0LDIsNCwyLDQsMiw0LDIsNCw1LDAsNCwyLDQsMiw0LDIsNCwyLDQsMiw0LDIsMCw1LDAsMiw1LDAsMSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNCwyLDQsMiw0LDIsNCwyLDQsNSwwLDIsMCwyLDAsNCwyLDQsMCw0LDEsMiwwLDIsNCwyLDAsNSwyLDQsMCw0LDIsNCwyLDQsMiwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDIsMCwxLDUsMCw1LDAsMiwwLDUsMiw1LDIsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCwxLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCwyLDMsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCwyLDQsMCw0LDAsNCwwLDMsNCwyLDMsMiw0LDIsNCwwLDQsNSwwLDIsNCwwLDIsNCwyLDQsMiw0LDIsNCwyLDQsMiw0LDAsNCwyLDAsMywyLDQsMiw1LDAsNSwwLDUsMCw0LDIsMCwyLDAsNSwwLDIsNCwyLDAsNSwyLDQsMCwyLDQsMiw1LDAsMiwwLDIsNCwwLDIsNCwyLDQsMiwwLDIsNCwyLDAsNCwyLDMsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsNSwwLDUsMCw1LDAsMiw1LDAsNSwwLDUsMCw1LDBdLGNPPVsxNTg3LDE1ODgsMTU4OSwxNTkwLDE2OTAsMTY5MSwxNjkyLDE2OTMsMTY5NCwxNzg2LDE3ODcsMTg4NCwxOTAxLDE5MDQsMTkxNywxOTE4LDIyMjNdLGxPPVsxNTgwLDE1ODEsMTU4MiwxNjY1LDE2NjYsMTY2NywxNjY4LDE2NjksMTY3MCwxNjcxLDE3MjcsMTg3OSwxODgwLDE5MDIsMTkwMywxOTA2LDE5MTYsMjE4NiwyMjEwLDIyNDEsMjI0NSwyMjQ2XSx1Tz1bMTU3NiwxNTc4LDE1NzksMTY0NiwxNjU3LDE2NTgsMTY1OSwxNjYwLDE2NjEsMTY2MiwxNjYzLDE2NjQsMTg3MiwxODczLDE4NzQsMTg3NSwxODc2LDE4NzcsMTg3OCwyMjA4LDIyMDksMjIzMCwyMjMxLDIyMzIsMjIzOCwyMjM5LDIyNDBdLGRPPVsxNTc0LDE1ODUsMTU4NiwxNTk3LDE1OTgsMTU5OSwxNjA5LDE2MTAsMTY1NiwxNjgxLDE2ODIsMTY4MywxNjg0LDE2ODUsMTY4NiwxNjg3LDE2ODgsMTY4OSwxNzQwLDE3NDIsMTc0NCwxNzQ1LDE3NzUsMTg4MywxODk5LDE5MDAsMTkwNSwxOTA5LDE5MTAsMTkxMSwyMjE2LDIyMTcsMjIxOCwyMjI2LDIyMzMsMjIzNCw2OTMxOV0sZk89WzE1NzAsMTU3MSwxNTczLDE1NzUsMTU5MSwxNTkyLDE1OTUsMTU5NiwxNjAzLDE2MDQsMTY0OSwxNjUwLDE2NTEsMTY1MywxNjk1LDE3MDUsMTcwNywxNzA4LDE3MDksMTcxMCwxNzExLDE3MTIsMTcxMywxNzE0LDE3MTUsMTcxNiwxNzE3LDE3MTgsMTcxOSwxNzIwLDE4OTAsMTg5MSwxODkyLDE4OTgsMTkwNywxOTA4LDE5MTksMjE2MCwyMTYxLDIxNjIsMjE2MywyMTY0LDIxNjUsMjE2NiwyMTY3LDIxNjgsMjE2OSwyMTcwLDIxNzEsMjE3MiwyMTczLDIxNzQsMjE3NSwyMTc2LDIxNzcsMjE3OCwyMTg3LDIxODgsMjE4OSwyMjExLDIyMTQsMjIyNCwyMjI4LDIyNDIsMjI0NywyMjQ4LDY5MzE1LDY5MzE2XSxwTz1bMTU3MiwxNTkzLDE1OTQsMTYwMSwxNjAyLDE2MDgsMTY0NywxNjU0LDE2NTUsMTY5NiwxNjk3LDE2OTgsMTY5OSwxNzAwLDE3MDEsMTcwMiwxNzAzLDE3MDQsMTczMiwxNzMzLDE3MzQsMTczNSwxNzM2LDE3MzcsMTczOCwxNzM5LDE3NDMsMTc4OCwxODg1LDE4ODYsMTg4NywxODg4LDE4ODksMTkxMiwxOTEzLDIyMTIsMjIxMywyMjE5LDIyMjcsMjIyOSwyMjQzXTtmdW5jdGlvbiBtTyhlKXtsZXQgdD0wLG49b08ubGVuZ3RoLTEscj0tMTtmb3IoO3Q8PW47KXtsZXQgaT10KyhuLXQ+PjEpO29PW2ldPD1lPyhyPWksdD1pKzEpOm49aS0xfXJldHVybiByPDA/YFVgOmFPW3NPW3JdXT8/YFVgfWZ1bmN0aW9uIGhPKGUpe2xldCB0PW1PKGUpO3JldHVybiB0PT09YERgfHx0PT09YExgfHx0PT09YENgfWZ1bmN0aW9uIGdPKGUpe2xldCB0PW1PKGUpO3JldHVybiB0PT09YERgfHx0PT09YFJgfHx0PT09YENgfWNvbnN0IF9PPW5ldyBTZXQoWzE1NzUsMTU3MCwxNTcxLDE1NzMsMTY0OV0pLHZPPW5ldyBTZXQoY08pLHlPPW5ldyBTZXQobE8pLGJPPW5ldyBTZXQodU8pLHhPPW5ldyBTZXQoZE8pLFNPPW5ldyBTZXQoZk8pLENPPW5ldyBTZXQocE8pO3ZhciB3Tz1mdW5jdGlvbihlKXtyZXR1cm4gZVtlLk5vcm1hbD03XT1gTm9ybWFsYCxlW2UuV2F3PThdPWBXYXdgLGVbZS5CYVJhPTldPWBCYVJhYCxlW2UuQWxlZj0xMF09YEFsZWZgLGVbZS5IYWhEYWw9MTFdPWBIYWhEYWxgLGVbZS5TZWVuPTEyXT1gU2VlbmAsZVtlLkthc2hpZGE9MTNdPWBLYXNoaWRhYCxlfSh3T3x8e30pO2Z1bmN0aW9uIFRPKGUpe2xldCB0PVsuLi5lXS5tYXAoZT0+ZS5jb2RlUG9pbnRBdCgwKSksbj1bXSxyPXQubGVuZ3RoPjAmJm1PKHRbMF0pIT09YFRgPzA6LTE7Zm9yKGxldCBlPTE7ZTx0Lmxlbmd0aDtlKyspe2xldCBpPXRbZV07aWYobU8oaSkhPT1gVGApe2lmKHI+PTApe2xldCBhPXRbcl07IShhPT09MTYwNCYmX08uaGFzKGkpKSYmaE8oYSkmJmdPKGkpJiZuLnB1c2goZSl9cj1lfX1yZXR1cm4gbn1mdW5jdGlvbiBFTyhlLHQsbil7bGV0IHI9dC0xO2Zvcig7cj49MCYmbU8oZVtyXSk9PT1gVGA7KXItLTtsZXQgaT1lW3JdLGE9ZVt0XTtyZXR1cm4gaT09PTE2MDA/d08uS2FzaGlkYTp2Ty5oYXMoaSk/d08uU2Vlbjp5Ty5oYXMoaSk/d08uSGFoRGFsOmZ4KHQsbikmJlNPLmhhcyhhKT93Ty5BbGVmOmJPLmhhcyhpKSYmeE8uaGFzKGEpP3dPLkJhUmE6ZngodCxuKSYmQ08uaGFzKGEpP3dPLldhdzp3Ty5Ob3JtYWx9ZnVuY3Rpb24gRE8oZSl7bGV0IHQ9Wy4uLmVdLG49W107Zm9yKGxldCBlPTA7ZTx0Lmxlbmd0aDspe2Zvcig7ZTx0Lmxlbmd0aCYmL1xzL3UudGVzdCh0W2VdKTspZSsrO2lmKGU+PXQubGVuZ3RoKWJyZWFrO2xldCByPWUrMTtmb3IoO3I8dC5sZW5ndGgmJiEvXHMvdS50ZXN0KHRbcl0pOylyKys7bGV0IGk9dC5zbGljZShlLHIpLGE9aS5tYXAoZT0+ZS5jb2RlUG9pbnRBdCgwKSksbz1hLmxlbmd0aC0xO2Zvcig7bz49MCYmbU8oYVtvXSk9PT1gVGA7KW8tLTtsZXQgcz0tMSxjPS0xO2ZvcihsZXQgZSBvZiBUTyhpLmpvaW4oYGApKSl7bGV0IHQ9RU8oYSxlLG8pO3Q+PWMmJihzPWUsYz10KX1zPj0wJiZuLnB1c2goe2JlZm9yZUNwOmUrcyxwcmlvcml0eTpjfSksZT1yfXJldHVybiBufWZ1bmN0aW9uIE9PKGUsdCl7bGV0IG49Wy4uLmVdLHI9YGA7Zm9yKGxldCBlPTA7ZTxuLmxlbmd0aDtlKyspe2xldCBpPXQuZ2V0KGUpPz8wO2k+MCYmKHIrPWDZgGAucmVwZWF0KGkpKSxyKz1uW2VdfXJldHVybiByfWZ1bmN0aW9uIGtPKGUsdCxuLHIpe2lmKHQ8PS41KXJldHVybiBudWxsO2xldCBpPVtdO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCsrKXtsZXQgbj1lW3RdLnRleHQ7aWYobiE9PXZvaWQgMClmb3IobGV0e2JlZm9yZUNwOmUscHJpb3JpdHk6cn1vZiBETyhuKSlpLnB1c2goe3NpOnQsYmVmb3JlQ3A6ZSxwcmlvcml0eTpyLHRleHRPcmRlcjppLmxlbmd0aH0pfWlmKGkubGVuZ3RoPT09MClyZXR1cm4gbnVsbDtpLnNvcnQoKGUsdCk9PnQucHJpb3JpdHktZS5wcmlvcml0eXx8ZS50ZXh0T3JkZXItdC50ZXh0T3JkZXIpO2xldCBhPW49PT1gbG93YD8xOm49PT1gbWVkaXVtYD8yOjEvMCxvPWEscz1pLmxlbmd0aCo2NCxjPW5ldyBNYXAsbD1uZXcgTWFwLHU9bmV3IE1hcDtmb3IobGV0e3NpOnR9b2YgaSl7aWYodS5oYXModCkpY29udGludWU7bGV0IG49cih0LGVbdF0udGV4dCk7bC5zZXQodCxuKSx1LnNldCh0LG4pfWxldCBkPXQsZj0wO2ZvcihsZXQgdD0wO3Q8byYmZD4uNSYmZjxzO3QrKyl7bGV0IHQ9ITE7Zm9yKGxldHtzaTpuLGJlZm9yZUNwOm99b2YgaSl7aWYoZDw9LjV8fGY+PXMpYnJlYWs7bGV0IGk9Yy5nZXQobik7aXx8KGk9bmV3IE1hcCxjLnNldChuLGkpKTtsZXQgbD1pLmdldChvKT8/MDtpZihsPj1hKWNvbnRpbnVlO2kuc2V0KG8sbCsxKTtsZXQgcD1yKG4sT08oZVtuXS50ZXh0LGkpKSxtPXAtdS5nZXQobik7bT4wJiZtPD1kKzFlLTY/KHUuc2V0KG4scCksZC09bSxmKyssdD0hMCk6bD09PTA/aS5kZWxldGUobyk6aS5zZXQobyxsKX1pZighdClicmVha31sZXQgcD1uZXcgTWFwO2ZvcihsZXRbdCxuXW9mIGMpe2xldCByPVsuLi5uLmVudHJpZXMoKV0uZmlsdGVyKChbLGVdKT0+ZT4wKS5zb3J0KChbZV0sW3RdKT0+ZS10KS5tYXAoKFtlLHRdKT0+KHtiZWZvcmVDcDplLGNvdW50OnR9KSk7ci5sZW5ndGghPT0wJiZwLnNldCh0LHt0ZXh0Ok9PKGVbdF0udGV4dCxuKSxpbnNlcnRpb25zOnIsYWR2YW5jZURlbHRhUHg6dS5nZXQodCktbC5nZXQodCl9KX1pZihwLnNpemU9PT0wKXJldHVybiBudWxsO2xldCBtPVsuLi5wLnZhbHVlcygpXS5yZWR1Y2UoKGUsdCk9PmUrdC5hZHZhbmNlRGVsdGFQeCwwKTtyZXR1cm57cGVyU2VnOnAsYXBwbGllZFB4Om0scmVzaWR1YWxQeDp0LW19fWZ1bmN0aW9uIEFPKGUpe3JldHVybiBPYmplY3QuZnJlZXplKHtzdGF0dXM6YHVuc3VwcG9ydGVkYCxjb21tYW5kOk9iamVjdC5mcmVlemUoe2tpbmQ6YG5vb3BgfSksZGlhZ25vc3RpY3M6T2JqZWN0LmZyZWV6ZShbT2JqZWN0LmZyZWV6ZSh7Y29kZTpgVU5TVVBQT1JURURfRkVBVFVSRWAsc2V2ZXJpdHk6YGVycm9yYCxtZXNzYWdlOmV9KV0pfSl9ZnVuY3Rpb24gak8oZSl7cmV0dXJuIGU/e3R5cGU6ZS50eXBlLHc6ZS53LGxlbjplLmxlbn06dm9pZCAwfWZ1bmN0aW9uIE1PKGUpe2lmKGUpcmV0dXJuIGUuZmlsbFR5cGU9PT1gZ3JhZGllbnRgP3tmaWxsVHlwZTpgZ3JhZGllbnRgLHN0b3BzOmUuc3RvcHMubWFwKGU9Pih7cG9zaXRpb246ZS5wb3NpdGlvbixjb2xvcjplLmNvbG9yfSkpLGFuZ2xlOmUuYW5nbGUsZ3JhZFR5cGU6ZS5ncmFkVHlwZSwuLi5lLnNjYWxlZD09PXZvaWQgMD97fTp7c2NhbGVkOmUuc2NhbGVkfSwuLi5lLnBhdGg9PT12b2lkIDA/e306e3BhdGg6ZS5wYXRofSwuLi5lLmZpbGxUb1JlY3Q9PT12b2lkIDA/e306e2ZpbGxUb1JlY3Q6ey4uLmUuZmlsbFRvUmVjdH19LC4uLmUudGlsZVJlY3Q9PT12b2lkIDA/e306e3RpbGVSZWN0OnsuLi5lLnRpbGVSZWN0fX0sLi4uZS5mbGlwPT09dm9pZCAwP3t9OntmbGlwOmUuZmxpcH0sLi4uZS5yb3RXaXRoU2hhcGU9PT12b2lkIDA/e306e3JvdFdpdGhTaGFwZTplLnJvdFdpdGhTaGFwZX19OntmaWxsVHlwZTpgcGF0dGVybmAsZmc6ZS5mZyxiZzplLmJnLHByZXNldDplLnByZXNldH19ZnVuY3Rpb24gTk8oZSl7aWYoIWUuc3Ryb2tlfHwhZS5zdHJva2VXaWR0aHx8ZS5zdHJva2VXaWR0aDw9MClyZXR1cm4gbnVsbDtsZXQgdD1NTyhlLnN0cm9rZUZpbGwpO3JldHVybntjb2xvcjplLnN0cm9rZSx3aWR0aDplLnN0cm9rZVdpZHRoLC4uLnQ/e2ZpbGw6dH06e30sLi4uZS5zdHJva2VEYXNoP3tkYXNoU3R5bGU6ZS5zdHJva2VEYXNofTp7fSwuLi5lLnN0cm9rZUN1c3RvbURhc2g/Lmxlbmd0aD97Y3VzdG9tRGFzaDplLnN0cm9rZUN1c3RvbURhc2h9Ont9LC4uLmUuc3Ryb2tlQ2FwP3tsaW5lQ2FwOmUuc3Ryb2tlQ2FwfTp7fSwuLi5lLnN0cm9rZUpvaW4/e2xpbmVKb2luOmUuc3Ryb2tlSm9pbn06e30sLi4uZS5zdHJva2VNaXRlckxpbWl0IT09dm9pZCAwJiZlLnN0cm9rZU1pdGVyTGltaXQhPT1udWxsP3ttaXRlckxpbWl0OmUuc3Ryb2tlTWl0ZXJMaW1pdH06e30sLi4uZS5zdHJva2VBbGlnbm1lbnQ/e2FsaWdubWVudDplLnN0cm9rZUFsaWdubWVudH06e30sLi4uZS5zdHJva2VDb21wb3VuZD97Y21wZDplLnN0cm9rZUNvbXBvdW5kfTp7fSwuLi5qTyhlLmhlYWRFbmQpP3toZWFkRW5kOmpPKGUuaGVhZEVuZCl9Ont9LC4uLmpPKGUudGFpbEVuZCk/e3RhaWxFbmQ6ak8oZS50YWlsRW5kKX06e319fWZ1bmN0aW9uIFBPKGUsdCxuLHIsaSl7bGV0IGE9ciE9PXZvaWQgMCYmKHIudGV4dFBhdGhPayE9PXZvaWQgMHx8ci5vbiE9PXZvaWQgMHx8ci5maXRTaGFwZSE9PXZvaWQgMHx8ci5maXRQYXRoIT09dm9pZCAwfHxyLnRyaW0hPT12b2lkIDB8fHIueFNjYWxlIT09dm9pZCAwKTtpZihyIT09dm9pZCAwJiYoIWF8fHIudGV4dFBhdGhPaz09PSEwJiZyLm9uPT09ITApKXtpZihlLmZpbGw/LmZpbGxUeXBlPT09YGltYWdlYClyZXR1cm4gQU8oYFZNTCB0ZXh0UGF0aCB3aXRoIGEgRHJhd2luZ01MIGltYWdlIGZpbGwgaXMgbm90IHJlbmRlcmVkYCk7aWYoci5maXRQYXRoPT09ITApcmV0dXJuIEFPKGBWTUwgdGV4dFBhdGggZml0UGF0aD10cnVlIGlzIG5vdCByZW5kZXJlZGApO2lmKHIueFNjYWxlPT09ITApcmV0dXJuIEFPKGBWTUwgdGV4dFBhdGggeFNjYWxlPXRydWUgaXMgbm90IHJlbmRlcmVkYCk7aWYoci5zdHJpbmcudHJpbSgpLmxlbmd0aD09PTApcmV0dXJuIE9iamVjdC5mcmVlemUoe3N0YXR1czpgcGxhbm5lZGAsY29tbWFuZDpPYmplY3QuZnJlZXplKHtraW5kOmBub29wYH0pfSk7aWYoIW4pdGhyb3cgRXJyb3IoYFNoYXBlIHRleHRQYXRoIGFjcXVpc2l0aW9uIHJlcXVpcmVzIFRleHRMYXlvdXRTZXJ2aWNlYCk7bGV0IGk9YT9yLmZpdFNoYXBlPT09ITA6ITA7aWYoci5mb250U2l6ZVB0IT09dm9pZCAwJiYoIU51bWJlci5pc0Zpbml0ZShyLmZvbnRTaXplUHQpfHxyLmZvbnRTaXplUHQ8MCkpdGhyb3cgUmFuZ2VFcnJvcihgVk1MIHRleHRQYXRoIGZvbnRTaXplUHQgbXVzdCBiZSBmaW5pdGUgYW5kIG5vbi1uZWdhdGl2ZWApO2lmKCFpJiZyLmZvbnRTaXplUHQ9PT12b2lkIDApcmV0dXJuIEFPKGBWTUwgdGV4dFBhdGggZml0U2hhcGU9ZmFsc2UgcmVxdWlyZXMgYW4gYXV0aG9yZWQgZm9udC1zaXplYCk7aWYoci5mb250U2l6ZVB0PT09MClyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7c3RhdHVzOmBwbGFubmVkYCxjb21tYW5kOk9iamVjdC5mcmVlemUoe2tpbmQ6YG5vb3BgfSl9KTtsZXQgbz1yLmZvbnRTaXplUHQ/PzEscz1yLmZvbnRGYW1pbHk/P3ZvaWQgMCxjPW4uc2hhcGUoe3RleHQ6ci5zdHJpbmcsZm9udFNpemVQdDpvLGZvbnRzOnthc2NpaTpzLGhpZ2hBbnNpOnMsZWFzdEFzaWE6cyxjb21wbGV4U2NyaXB0OnN9LHdlaWdodDpyLmJvbGQ/NzAwOjQwMCxzdHlsZTpyLml0YWxpYz9gaXRhbGljYDpgbm9ybWFsYCxtZWFzdXJlOiEwfSk7aWYoci50cmltPT09ITAmJiFjLmlua0JvdW5kcylyZXR1cm4gQU8oYFZNTCB0ZXh0UGF0aCB0cmltPXRydWUgcmVxdWlyZXMgZ2x5cGggaW5rIGJvdW5kc2ApO2xldCBsPXIudHJpbT09PSEwP2MuaW5rQm91bmRzPy54TWluUHQ/PzA6MCx1PXIudHJpbT09PSEwP2MuaW5rQm91bmRzPy54TWF4UHQ/PzA6Yy5hZHZhbmNlUHQsZD1yLnRyaW09PT0hMD9jLmlua0JvdW5kcz8uYXNjZW50UHQ/PzA6Yy5hc2NlbnRQdCxmPXIudHJpbT09PSEwP2MuaW5rQm91bmRzPy5kZXNjZW50UHQ/PzA6Yy5kZXNjZW50UHQscD17eFB0OmwseVB0Oi1kLHdpZHRoUHQ6dS1sLGhlaWdodFB0OmQrZn07aWYoIU51bWJlci5pc0Zpbml0ZShjLmFkdmFuY2VQdCl8fE9iamVjdC52YWx1ZXMocCkuc29tZShlPT4hTnVtYmVyLmlzRmluaXRlKGUpKXx8Yy5zcGFucy5zb21lKGU9PiFOdW1iZXIuaXNGaW5pdGUoZS5hZHZhbmNlUHQpKSl0aHJvdyBFcnJvcihgU2hhcGUgdGV4dFBhdGggYWNxdWlzaXRpb24gcHJvZHVjZWQgbm9uLWZpbml0ZSBtZXRyaWNzYCk7cmV0dXJuIHAud2lkdGhQdDw9MHx8cC5oZWlnaHRQdDw9MHx8Yy5zcGFucy5sZW5ndGg9PT0wP0FPKGBWTUwgdGV4dFBhdGggcHJvZHVjZWQgZW1wdHkgZ2x5cGggbWV0cmljc2ApOk9iamVjdC5mcmVlemUoe3N0YXR1czpgcGxhbm5lZGAsY29tbWFuZDpJZyh7a2luZDpgd2F0ZXJtYXJrLXRleHRgLHJlY3Q6ey4uLnR9LHRleHQ6ci5zdHJpbmcsZmlsbDplLmZpbGw/ey4uLmUuZmlsbCwuLi5lLmZpbGwuZmlsbFR5cGU9PT1gZ3JhZGllbnRgP3tzdG9wczplLmZpbGwuc3RvcHMubWFwKGU9Pih7Li4uZX0pKX06e319Om51bGwsb3BhY2l0eTpNYXRoLm1heCgwLE1hdGgubWluKDEsZS5maWxsT3BhY2l0eT8/MSkpLHJvdGF0aW9uRGVnOmUucm90YXRpb24/PzAsZml0U2hhcGU6aSxmb250U2l6ZVB0Om8sc291cmNlQm91bmRzOnAsc3BhbnM6Yy5zcGFucy5tYXAoZT0+KHt0ZXh0OmUudGV4dCxhZHZhbmNlUHQ6ZS5hZHZhbmNlUHQsZm9udFJvdXRlOmUuZm9udFJvdXRlLGZvbnRXZWlnaHQ6ZS5mb250LndlaWdodCxmb250U3R5bGU6ZS5mb250LnN0eWxlfSkpfSxgVk1MIHRleHRQYXRoIGNvbW1hbmRgKX0pfWxldCBvPXtyZWN0Ont4OnQueFB0LHk6dC55UHQsdzp0LndpZHRoUHQsaDp0LmhlaWdodFB0fSxnZW9tZXRyeTplLnByZXNldEdlb21ldHJ5P3traW5kOmBwcmVzZXRgLG5hbWU6ZS5wcmVzZXRHZW9tZXRyeSxhZGp1c3RtZW50czpbLi4uZS5hZGpWYWx1ZXM/P1tdXX06e2tpbmQ6YGN1c3RvbWAsc3VicGF0aHM6ZS5zdWJwYXRocy5tYXAoZT0+ZS5tYXAoZT0+KHsuLi5lfSkpKX0sZmlsbDplLmZpbGwmJmUuZmlsbC5maWxsVHlwZSE9PWBpbWFnZWA/ey4uLmUuZmlsbCwuLi5lLmZpbGwuZmlsbFR5cGU9PT1gZ3JhZGllbnRgP3tzdG9wczplLmZpbGwuc3RvcHMubWFwKGU9Pih7Li4uZX0pKX06e319Om51bGwsc3Ryb2tlOk5PKGUpLHRyYW5zZm9ybTp7cm90YXRpb25EZWc6ZS5yb3RhdGlvbj8/MCxmbGlwSDplLmZsaXBIPz8hMSxmbGlwVjplLmZsaXBWPz8hMX19O2lmKGUuZmlsbD8uZmlsbFR5cGU9PT1gaW1hZ2VgKXtpZihlLmZpbGwudGlsZSE9PXZvaWQgMClyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7c3RhdHVzOmB1bnN1cHBvcnRlZGAsY29tbWFuZDpPYmplY3QuZnJlZXplKHtraW5kOmBub29wYH0pLGRpYWdub3N0aWNzOk9iamVjdC5mcmVlemUoW09iamVjdC5mcmVlemUoe2NvZGU6YFVOU1VQUE9SVEVEX0ZFQVRVUkVgLHNldmVyaXR5OmBlcnJvcmAsbWVzc2FnZTpgVGlsZWQgRHJhd2luZ01MIHNoYXBlIGltYWdlIGZpbGxzIGFyZSBub3QgcmVuZGVyZWRgfSldKX0pO2lmKCFpKXRocm93IEVycm9yKGBEcmF3aW5nTUwgc2hhcGUgaW1hZ2UgZmlsbCByZXF1aXJlcyBhIHJldGFpbmVkIGltYWdlIHJlc291cmNlIGtleWApO3JldHVybiBPYmplY3QuZnJlZXplKHtzdGF0dXM6YHBsYW5uZWRgLGNvbW1hbmQ6SWcoe2tpbmQ6YGRyYXdpbmdtbC1pbWFnZS1maWxsYCxwbGFuOm8scmVzb3VyY2VLZXk6aSwuLi5lLmZpbGwuZmlsbFJlY3Q9PT12b2lkIDA/e306e2ZpbGxSZWN0OntsOmUuZmlsbC5maWxsUmVjdC5sPz8wLHQ6ZS5maWxsLmZpbGxSZWN0LnQ/PzAscjplLmZpbGwuZmlsbFJlY3Qucj8/MCxiOmUuZmlsbC5maWxsUmVjdC5iPz8wfX19LGBEcmF3aW5nTUwgc2hhcGUgaW1hZ2UtZmlsbCBjb21tYW5kYCl9KX1yZXR1cm4gT2JqZWN0LmZyZWV6ZSh7c3RhdHVzOmBwbGFubmVkYCxjb21tYW5kOklnKHtraW5kOmBkcmF3aW5nbWwtc2hhcGVgLHBsYW46b30sYERyYXdpbmdNTCBzaGFwZSBjb21tYW5kYCl9KX1mdW5jdGlvbiBGTyhlLHQpe2xldCBuPWUuZm9udEZhbWlseT8/bnVsbDtyZXR1cm57Zm9udFNpemVQdDp0LGZvbnRzOnthc2NpaTpuLGhpZ2hBbnNpOm4sZWFzdEFzaWE6ZS5mb250RmFtaWx5RWFzdEFzaWE/P24sY29tcGxleFNjcmlwdDpufSx3ZWlnaHQ6NDAwLHN0eWxlOmBub3JtYWxgLGNvbXBsZXhTY3JpcHQ6ITF9fWZ1bmN0aW9uIElPKGUsdD17c3Rvcnk6YHRleHRib3hgLHN0b3J5SW5zdGFuY2U6YHNoYXBlYCxwYXRoOltdfSxuPUZPKXtyZXR1cm4gSWcoKGUudGV4dEJsb2Nrcz8/W10pLm1hcCgoZSxyKT0+e2xldCBpPXtzdG9yeTpgdGV4dGJveGAsc3RvcnlJbnN0YW5jZTp0LnN0b3J5SW5zdGFuY2UscGF0aDpbLi4udC5wYXRoLHJdfSxhPWUucnVucz8ubGVuZ3RoP2UucnVuczpbe3RleHQ6ZS50ZXh0LGZvbnRTaXplUHQ6ZS5mb250U2l6ZVB0LGNvbG9yOmUuY29sb3IsZm9udEZhbWlseTplLmZvbnRGYW1pbHksYm9sZDplLmJvbGQsaXRhbGljOmUuaXRhbGljfV0sbz1lLnBhcmFncmFwaE1hcmtDb2xvcj09PXZvaWQgMD9lLmNvbG9yPz9hWzBdPy5jb2xvcjplLnBhcmFncmFwaE1hcmtDb2xvcj8/dm9pZCAwLHM9ZS5udW1iZXJpbmc/ey4uLmUubnVtYmVyaW5nLC4uLmUubnVtYmVyaW5nLmNvbG9yPT1udWxsJiYhZS5udW1iZXJpbmcuY29sb3JBdXRvJiZvP3tjb2xvcjpvfTp7fX06bnVsbDtyZXR1cm57c291cmNlOmksc3BhY2luZzp7YmVmb3JlUHQ6ZS5zcGFjZUJlZm9yZT8/MCxhZnRlclB0OmUuc3BhY2VBZnRlcj8/MH0scnVuczphLm1hcCh0PT4oe3RleHQ6dC50ZXh0LGZvbnRTaXplUHQ6dC5mb250U2l6ZVB0LC4uLnQuY29sb3I/P2UuY29sb3I/e2NvbG9yOmAjJHt0LmNvbG9yPz9lLmNvbG9yfWB9Ont9LC4uLnQuZm9udEZhbWlseXx8ZS5mb250RmFtaWx5P3tmb250RmFtaWx5OnQuZm9udEZhbWlseT8/ZS5mb250RmFtaWx5Pz92b2lkIDB9Ont9LC4uLnQuZm9udEZhbWlseUVhc3RBc2lhP3tmb250RmFtaWx5RWFzdEFzaWE6dC5mb250RmFtaWx5RWFzdEFzaWF9Ont9LGJvbGQ6dC5ib2xkPz9lLmJvbGQ/PyExLGl0YWxpYzp0Lml0YWxpYz8/ZS5pdGFsaWM/PyExLC4uLnQucnVieT97cnVieTp0LnJ1Ynl9Ont9fSkpLGFsaWdubWVudDplLmFsaWdubWVudD8/YGxlZnRgLGluZGVudExlZnRQdDplLmluZGVudExlZnQ/PzAsaW5kZW50UmlnaHRQdDplLmluZGVudFJpZ2h0Pz8wLGluZGVudEZpcnN0UHQ6ZS5pbmRlbnRGaXJzdD8/MCxsaW5lU3BhY2luZzplLmxpbmVTcGFjaW5nVmFsPT1udWxsP251bGw6e3ZhbHVlOmUubGluZVNwYWNpbmdWYWwscnVsZTplLmxpbmVTcGFjaW5nUnVsZT09PWBleGFjdGB8fGUubGluZVNwYWNpbmdSdWxlPT09YGF0TGVhc3RgP2UubGluZVNwYWNpbmdSdWxlOmBhdXRvYCxleHBsaWNpdDohMH0sdGFiU3RvcHM6KGUudGFiU3RvcHM/P1tdKS5tYXAoZT0+KHsuLi5lfSkpLC4uLmUuYmlkaT09PXZvaWQgMD97fTp7YmlkaTplLmJpZGl9LGNvbnRleHR1YWxTcGFjaW5nOmUuY29udGV4dHVhbFNwYWNpbmc/PyExLC4uLmUuc3R5bGVJZD09PXZvaWQgMD97fTp7c3R5bGVJZDplLnN0eWxlSWR9LC4uLnM/e251bWJlcmluZzpzLG51bWJlcmluZ01hcmtlclNoYXBlSW5wdXQ6bihzLGUuZm9udFNpemVQdCl9Ont9LC4uLmUuaW1hZ2VQYXRoP3tpbWFnZTp7aW1hZ2VQYXRoOmUuaW1hZ2VQYXRoLG1pbWVUeXBlOmUubWltZVR5cGU/P2BhcHBsaWNhdGlvbi9vY3RldC1zdHJlYW1gLC4uLmUuc3ZnSW1hZ2VQYXRoP3tzdmdJbWFnZVBhdGg6ZS5zdmdJbWFnZVBhdGh9Ont9LHdpZHRoUHQ6ZS5pbWFnZVdpZHRoUHQ/PzAsaGVpZ2h0UHQ6ZS5pbWFnZUhlaWdodFB0Pz8wfX06e319fSksYERPQ1ggdGV4dCBib3ggYWNxdWlzaXRpb24gaW5wdXRgKX1mdW5jdGlvbiBMTyhlKXtpZighTnVtYmVyLmlzRmluaXRlKGUuYWR2YW5jZVB0KXx8ZS5hZHZhbmNlUHQ8PTApdGhyb3cgUmFuZ2VFcnJvcihgVGFiIGxlYWRlciBnbHlwaCBhZHZhbmNlIG11c3QgYmUgZmluaXRlIGFuZCBwb3NpdGl2ZWApO2xldCB0PU1hdGguZmxvb3IoZS5pbnRlcnZhbC53aWR0aFB0L2UuYWR2YW5jZVB0KSxuPWUuaW50ZXJ2YWwud2lkdGhQdC10KmUuYWR2YW5jZVB0O3JldHVybiBBcnJheS5mcm9tKHtsZW5ndGg6dH0sKHQscik9Pih7dGV4dDplLmdseXBoLG9yaWdpbjp7eFB0OmUuaW50ZXJ2YWwueFB0K24vMityKmUuYWR2YW5jZVB0LHlQdDplLmJhc2VsaW5lUHR9LGZvbnRSb3V0ZTplLmZvbnRSb3V0ZSxmb250U2l6ZVB0OmUuZm9udFNpemVQdCxmb250V2VpZ2h0OmUuZm9udFdlaWdodCxmb250U3R5bGU6ZS5mb250U3R5bGUsY29sb3I6ZS5jb2xvcn0pKX1mdW5jdGlvbiBSTyhlKXtsZXQgdDtpZihlLnJhaXNlUHQhPT12b2lkIDApdD1lLmJhc2VPcmlnaW4ueVB0LWUucmFpc2VQdDtlbHNlIGlmKGUuYmFzZUlua1RvcFB0IT09dm9pZCAwJiZlLmd1aWRlSW5rQm90dG9tRnJvbUJhc2VsaW5lUHQhPT12b2lkIDApdD1lLmJhc2VJbmtUb3BQdC1lLmd1aWRlSW5rQm90dG9tRnJvbUJhc2VsaW5lUHQ7ZWxzZSB0aHJvdyBFcnJvcihgUnVieSBnZW9tZXRyeSByZXF1aXJlcyBhdXRob3JlZCB3Omhwc1JhaXNlIG9yIHJldGFpbmVkIGJhc2UvZ3VpZGUgaW5rIGJvdW5kc2ApO2xldCBuPWUuYmFzZU9yaWdpbi54UHQrKGUuYmFzZUFkdmFuY2VQdC1lLmd1aWRlQWR2YW5jZVB0KS8yO3JldHVybiBlLnNwYW5zLm1hcChlPT4oe3RleHQ6ZS50ZXh0LG9yaWdpbjp7eFB0Om4rZS5vZmZzZXRQdCx5UHQ6dH0sZm9udFJvdXRlOmUuZm9udFJvdXRlLGZvbnRTaXplUHQ6ZS5mb250U2l6ZVB0LGZvbnRXZWlnaHQ6ZS5mb250V2VpZ2h0LGZvbnRTdHlsZTplLmZvbnRTdHlsZSxjb2xvcjplLmNvbG9yfSkpfWZ1bmN0aW9uIHpPKGUpe3JldHVybi0oZS5pbmtCb3VuZHM/LmFzY2VudFB0Pz9lLmFzY2VudFB0KX1mdW5jdGlvbiBCTyhlKXtyZXR1cm4gZS5pbmtCb3VuZHM/LmRlc2NlbnRQdD8/ZS5kZXNjZW50UHR9ZnVuY3Rpb24gVk8oZSl7bGV0IHQ9ZS5pbmtCb3VuZHM/ZS5pbmtCb3VuZHMuYXNjZW50UHQrZS5pbmtCb3VuZHMuZGVzY2VudFB0Ok1hdGgubWluKGUuYXNjZW50UHQsZS5kZXNjZW50UHQpO2lmKCFOdW1iZXIuaXNGaW5pdGUodCl8fHQ8PTApdGhyb3cgRXJyb3IoYFJldGFpbmVkIGRlY29yYXRpb24gcHJvYmUgcmVxdWlyZXMgcG9zaXRpdmUgc2VsZWN0ZWQtZmFjZSBpbmtgKTtyZXR1cm4gdH1mdW5jdGlvbiBITyhlKXtyZXR1cm4gZT09PWBkb3VibGVgfHxlPT09YGRibGA/YGRvdWJsZWA6ZT8uaW5jbHVkZXMoYGRvdGApP2Bkb3R0ZWRgOmU/LmluY2x1ZGVzKGBkYXNoYCk/YGRhc2hlZGA6ZT8uaW5jbHVkZXMoYHdhdmVgKT9gd2F2eWA6YHNvbGlkYH1mdW5jdGlvbiBVTyhlLHQsbil7bGV0IHI9TWF0aC5tYXgoMCx0LnhQdC1lLnhQdCksaT1uKjIsYT1NYXRoLm1heCgxLE1hdGguY2VpbChyL2kpKTtyZXR1cm4gQXJyYXkuZnJvbSh7bGVuZ3RoOmErMX0sKHQsaSk9Pih7eFB0OmUueFB0K3IqaS9hLHlQdDplLnlQdCsoaSUyPT0wPy1uLzI6bi8yKX0pKX1mdW5jdGlvbiBXTyhlKXtsZXQgdD1bXSxuPWUub3JpZ2luLnhQdCtlLmFkdmFuY2VQdDtpZihlLnVuZGVybGluZSl7bGV0IHI9Vk8oZS51bmRlcmxpbmUucHJvYmUpLGk9ZS5vcmlnaW4ueVB0Kyh6TyhlLnVuZGVybGluZS5wcm9iZSkrQk8oZS51bmRlcmxpbmUucHJvYmUpKS8yLGE9ZS5vcmlnaW4ueVB0K0JPKGUuYmFzZSkrci8yLG89TWF0aC5tYXgoaSxhKSxzPUhPKGUudW5kZXJsaW5lLmF1dGhvcmVkU3R5bGUpLGM9e2tpbmQ6YHVuZGVybGluZWAsLi4uZS51bmRlcmxpbmUuYXV0aG9yZWRTdHlsZT09PXZvaWQgMD97fTp7YXV0aG9yZWRTdHlsZTplLnVuZGVybGluZS5hdXRob3JlZFN0eWxlfSxjb2xvcjplLnVuZGVybGluZS5jb2xvcix3aWR0aFB0OnJ9O2lmKHM9PT1gZG91YmxlYCl7bGV0IGk9bytyKjI7dC5wdXNoKHsuLi5jLHN0eWxlOmBzb2xpZGAsZnJvbTp7eFB0OmUub3JpZ2luLnhQdCx5UHQ6b30sdG86e3hQdDpuLHlQdDpvfX0sey4uLmMsc3R5bGU6YHNvbGlkYCxmcm9tOnt4UHQ6ZS5vcmlnaW4ueFB0LHlQdDppfSx0bzp7eFB0Om4seVB0Oml9fSl9ZWxzZXtsZXQgaT17eFB0OmUub3JpZ2luLnhQdCx5UHQ6b30sYT17eFB0Om4seVB0Om99O3QucHVzaCh7Li4uYyxzdHlsZTpzLGZyb206aSx0bzphLC4uLnM9PT1gd2F2eWA/e3BhdGg6VU8oaSxhLHIpfTp7fSwuLi5zPT09YGRvdHRlZGA/e2Rhc2hQYXR0ZXJuUHQ6W3IscioyXX06e30sLi4ucz09PWBkYXNoZWRgP3tkYXNoUGF0dGVyblB0OltyKjQsciozXX06e319KX19aWYoZS5zdHJpa2Upe2xldCByPVZPKGUuc3RyaWtlLnByb2JlKTtpZihlLnN0cmlrZS5kb3VibGUmJmUuc3RyaWtlLmRvdWJsZVByb2JlKXtsZXQgaT1lLm9yaWdpbi55UHQrek8oZS5zdHJpa2UuZG91YmxlUHJvYmUpK3IvMixhPWUub3JpZ2luLnlQdCtCTyhlLnN0cmlrZS5kb3VibGVQcm9iZSktci8yO2ZvcihsZXQgbyBvZltpLGFdKXQucHVzaCh7a2luZDpgc3RyaWtldGhyb3VnaGAsY29sb3I6ZS5jb2xvcix3aWR0aFB0OnIsc3R5bGU6YHNvbGlkYCxmcm9tOnt4UHQ6ZS5vcmlnaW4ueFB0LHlQdDpvfSx0bzp7eFB0Om4seVB0Om99fSl9ZWxzZXtsZXQgaT1lLm9yaWdpbi55UHQrKHpPKGUuc3RyaWtlLnByb2JlKStCTyhlLnN0cmlrZS5wcm9iZSkpLzI7dC5wdXNoKHtraW5kOmBzdHJpa2V0aHJvdWdoYCxjb2xvcjplLmNvbG9yLHdpZHRoUHQ6cixzdHlsZTpgc29saWRgLGZyb206e3hQdDplLm9yaWdpbi54UHQseVB0Oml9LHRvOnt4UHQ6bix5UHQ6aX19KX19cmV0dXJuIHR9ZnVuY3Rpb24gR08oZSl7bGV0IHQ9ZS5tYXJrLmlua0JvdW5kcy54TWF4UHQtZS5tYXJrLmlua0JvdW5kcy54TWluUHQsbj1lLm1hcmsuaW5rQm91bmRzLmFzY2VudFB0K2UubWFyay5pbmtCb3VuZHMuZGVzY2VudFB0O2lmKCEodD4wKXx8IShuPjApKXRocm93IEVycm9yKGBSZXRhaW5lZCBlbXBoYXNpcyBnbHlwaCByZXF1aXJlcyBwb3NpdGl2ZSBzZWxlY3RlZC1mYWNlIGluayBib3VuZHNgKTtsZXQgcj1bXTtmb3IobGV0IHQgb2YgZS5jbHVzdGVySW5rKXtpZigvXlxzKyQvdS50ZXN0KHQudGV4dCkpY29udGludWU7bGV0IG49ZS5jbHVzdGVycy5maW5kKGU9PmUucmFuZ2Uuc3RhcnQ9PT10LnJhbmdlLnN0YXJ0JiZlLnJhbmdlLmVuZD09PXQucmFuZ2UuZW5kKTtpZighbil0aHJvdyBFcnJvcihgUmV0YWluZWQgZW1waGFzaXMgY2x1c3RlciBpbmsgZG9lcyBub3QgbWF0Y2ggc2hhcGVkIGNsdXN0ZXIgZ2VvbWV0cnlgKTtsZXQgaT0oZS5vcmlnaW4ueFB0K24ub2Zmc2V0LnhQdCt0Lmluay54TWluUHQqZS5zY2FsZVgrKGUub3JpZ2luLnhQdCtuLm9mZnNldC54UHQrdC5pbmsueE1heFB0KmUuc2NhbGVYKSkvMi0oZS5tYXJrLmlua0JvdW5kcy54TWluUHQrZS5tYXJrLmlua0JvdW5kcy54TWF4UHQpLzIsYT1lLmF1dGhvcmVkPT09YHVuZGVyRG90YD9lLm9yaWdpbi55UHQrdC5pbmsuZGVzY2VudFB0K2UubWFyay5pbmtCb3VuZHMuYXNjZW50UHQ6ZS5vcmlnaW4ueVB0LXQuaW5rLmFzY2VudFB0LWUubWFyay5pbmtCb3VuZHMuZGVzY2VudFB0O3IucHVzaCh7dGV4dDplLmdseXBoLG9yaWdpbjp7eFB0OmkseVB0OmF9LGZvbnRSb3V0ZTplLm1hcmsuZm9udFJvdXRlLGZvbnRTaXplUHQ6ZS5tYXJrLmZvbnRTaXplUHQsZm9udFdlaWdodDplLm1hcmsuZm9udFdlaWdodCxmb250U3R5bGU6ZS5tYXJrLmZvbnRTdHlsZSxjb2xvcjplLm1hcmsuY29sb3IsaW5rQm91bmRzOmUubWFyay5pbmtCb3VuZHN9KX1yZXR1cm4gcn1mdW5jdGlvbiBLTyhlLHQpe3JldHVybiBlLnZhbD09PXQudmFsJiZlLmNvbG9yPT09dC5jb2xvciYmZS53aWR0aFB0PT09dC53aWR0aFB0JiZlLnNwYWNlUHQ9PT10LnNwYWNlUHQmJmUudGhlbWVDb2xvcj09PXQudGhlbWVDb2xvciYmZS50aGVtZVRpbnQ9PT10LnRoZW1lVGludCYmZS50aGVtZVNoYWRlPT09dC50aGVtZVNoYWRlJiZlLnNoYWRvdz09PXQuc2hhZG93JiZlLmZyYW1lPT09dC5mcmFtZX1mdW5jdGlvbiBxTyhlKXtsZXQgdD1bXSxuPTA7Zm9yKDtuPGUubGVuZ3RoOyl7bGV0IHI9ZVtuXSxpPW4rMSxhPXIuYm91bmRzLnhQdCtyLmJvdW5kcy53aWR0aFB0K3IudHJhaWxpbmdTbGFja1B0O2Zvcig7aTxlLmxlbmd0aDspe2xldCB0PWVbaV07aWYoIUtPKHIuYm9yZGVyLHQuYm9yZGVyKXx8TWF0aC5hYnModC5ib3VuZHMueFB0LWEpPjFlLTZ8fHQuYm91bmRzLnlQdCE9PXIuYm91bmRzLnlQdHx8dC5ib3VuZHMuaGVpZ2h0UHQhPT1yLmJvdW5kcy5oZWlnaHRQdClicmVhazthPXQuYm91bmRzLnhQdCt0LmJvdW5kcy53aWR0aFB0K3QudHJhaWxpbmdTbGFja1B0LGkrPTF9bGV0IG89ci5ib3VuZHMueFB0LXIuYm9yZGVyLnNwYWNlUHQscz1yLmJvdW5kcy55UHQtci5ib3JkZXIuc3BhY2VQdCxjPWErci5ib3JkZXIuc3BhY2VQdCxsPXIuYm91bmRzLnlQdCtyLmJvdW5kcy5oZWlnaHRQdCtyLmJvcmRlci5zcGFjZVB0LHU9e2NvbG9yOnIuYm9yZGVyLmNvbG9yLHdpZHRoUHQ6ci5ib3JkZXIud2lkdGhQdCwuLi5DdihyLmJvcmRlci52YWwsci5ib3JkZXIud2lkdGhQdCl9O3QucHVzaCh7Li4udSxlZGdlOmB0b3BgLGZyb206e3hQdDpvLHlQdDpzfSx0bzp7eFB0OmMseVB0OnN9fSx7Li4udSxlZGdlOmByaWdodGAsZnJvbTp7eFB0OmMseVB0OnN9LHRvOnt4UHQ6Yyx5UHQ6bH19LHsuLi51LGVkZ2U6YGJvdHRvbWAsZnJvbTp7eFB0Om8seVB0Omx9LHRvOnt4UHQ6Yyx5UHQ6bH19LHsuLi51LGVkZ2U6YGxlZnRgLGZyb206e3hQdDpvLHlQdDpzfSx0bzp7eFB0Om8seVB0Omx9fSksbj1pfXJldHVybiB0fWNvbnN0IEpPPSQoe2lkOmB3b3JkLXplcm8tcmVsYXRpdmUtc2l6ZWAsZXZpZGVuY2U6e2tpbmQ6YHJlZ3Jlc3Npb24tdGVzdGAscmVmZXJlbmNlOmBwYWNrYWdlcy9kb2N4L3NyYy9sYXlvdXQvYW5jaG9yLWZyYW1lLnRlc3QudHMjdXNlcyB3cDpleHRlbnQgd2hlbiBXb3JkIGRvZXMgbm90IHN1cHBvcnQgYW4gZXhhY3QtemVybyByZWxhdGl2ZSBzaXplYH0sZGVzY3JpcHRpb246YFdvcmQgMjAxMCBhY2NlcHRzIG9ubHkgcG9zaXRpdmUgd3AxNDpwY3RXaWR0aCBhbmQgd3AxNDpwY3RIZWlnaHQgdmFsdWVzIHVuZGVyIFtNUy1PRFJBV1hNTF0gbm90ZXMgMTI1LzEyNi4gUHJlc2VydmUgYW4gYXV0aG9yZWQgemVybyBhcyBhY3F1aXNpdGlvbiBldmlkZW5jZSB3aGlsZSByZXNvbHZpbmcgdGhlIG9iamVjdCBmcm9tIHdwOmV4dGVudC5gfSk7JCh7aWQ6YHdvcmQtdmVydGljYWwtc2VjdGlvbi1waHlzaWNhbC1kcmF3aW5nLWxheWVyYCxldmlkZW5jZTp7a2luZDpgcmVncmVzc2lvbi10ZXN0YCxyZWZlcmVuY2U6YHBhY2thZ2VzL2RvY3gvc3JjL2FuY2hvci12ZXJ0aWNhbC1waHlzaWNhbC50ZXN0LnRzI2xhbmRzIGFuIHVwcmlnaHQtc2VjdGlvbiBhbmNob3IgYXQgdGhlIHJlY29yZGVkIHBoeXNpY2FsIGNlbnRyb2lkYH0sZGVzY3JpcHRpb246YFJlc29sdmUgYW5jaG9yZWQgZHJhd2luZ3MgaW4gYW4gdXByaWdodCB2ZXJ0aWNhbCBzZWN0aW9uIGFnYWluc3QgdGhlIHBoeXNpY2FsIHBhZ2UgZnJhbWUgaW5kZXBlbmRlbnRseSBvZiB0aGUgcm90YXRlZCB0ZXh0LWZsb3cgY29vcmRpbmF0ZSBzcGFjZS5gfSksJCh7aWQ6YHdvcmQtcGFnZS1sZXZlbC1mbG9hdC1wcmVzY2FuYCxldmlkZW5jZTp7a2luZDpgcmVncmVzc2lvbi10ZXN0YCxyZWZlcmVuY2U6YHBhY2thZ2VzL2RvY3gvc3JjL3BhZ2UtYW5jaG9yLXByZXNjYW4udGVzdC50cyNwcmUtc2NhbiBSRUdJU1RFUlMgYSBwYWdlLWxldmVsIChyZWxhdGl2ZUZyb209Im1hcmdpbiIpIHdyYXAgZmxvYXQgb24gYW4gZWFybGllci1zY2FubmVkIHBhcmFncmFwaGB9LGRlc2NyaXB0aW9uOmBBIHdyYXBwaW5nIGRyYXdpbmcgd2hvc2UgdmVydGljYWwgcmVmZXJlbmNlIGlzIHBhZ2UtbGV2ZWwgcGFydGljaXBhdGVzIGZyb20gcGFnZSBzdGFydCBzbyBzb3VyY2UtZWFybGllciBwYXJhZ3JhcGhzIG9uIHRoYXQgcGFnZSBzZWUgaXRzIGV4Y2x1c2lvbi5gfSksJCh7aWQ6YHdvcmQtcGFyYWdyYXBoLWFuY2hvci1wcmUtc3BhY2luZy1vcmlnaW5gLGV2aWRlbmNlOntraW5kOmByZWdyZXNzaW9uLXRlc3RgLHJlZmVyZW5jZTpgcGFja2FnZXMvZG9jeC9zcmMvYW5jaG9yLXBhcmFncmFwaC1zcGFjZWJlZm9yZS50ZXN0LnRzI2FuY2hvcnMgYSB3cmFwU3F1YXJlIHBhcmFncmFwaCBmbG9hdCBhdCB0aGUgcHJlLXNwYWNlQmVmb3JlIHBhcmFncmFwaCB0b3BgfSxkZXNjcmlwdGlvbjpgUmVzb2x2ZSBhIHBhcmFncmFwaC1yZWxhdGl2ZSBhbmNob3JlZCBkcmF3aW5nIGZyb20gdGhlIHBhcmFncmFwaCB0b3AgYmVmb3JlIGFwcGx5aW5nIHRoZSBwYXJhZ3JhcGggc3BhY2VCZWZvcmUgY29udHJpYnV0aW9uLmB9KSwkKHtpZDpgd29yZC12ZXJ0aWNhbC1zZWN0aW9uLXBoeXNpY2FsLWhlYWRlci1mb290ZXJgLGV2aWRlbmNlOntraW5kOmByZWdyZXNzaW9uLXRlc3RgLHJlZmVyZW5jZTpgcGFja2FnZXMvZG9jeC9zcmMvdmVydGljYWwtaGVhZGVyLWZvb3Rlci50ZXN0LnRzI3JlY292ZXJzIHRoZSBwaHlzaWNhbCBwYWdlIGJveCArIG1hcmdpbnMgZnJvbSB0aGUgbG9naWNhbCAoc3dhcHBlZCkgc2VjdGlvbmB9LGRlc2NyaXB0aW9uOmBQYWludCBhIHZlcnRpY2FsIHNlY3Rpb24gaGVhZGVyIGFuZCBmb290ZXIgaW4gdGhlIHVucm90YXRlZCBwaHlzaWNhbCBwYWdlIGZyYW1lIHJhdGhlciB0aGFuIHJvdGF0aW5nIHRoZW0gd2l0aCB0aGUgYm9keSB0ZXh0IGZsb3cuYH0pLCQoe2lkOmB3b3JkLWZyYW1lLWF1dG8td3JhcC1hcm91bmRgLGV2aWRlbmNlOntraW5kOmByZWdyZXNzaW9uLXRlc3RgLHJlZmVyZW5jZTpgcGFja2FnZXMvZG9jeC9zcmMvZnJhbWUtZ2VvbWV0cnkudGVzdC50cyN3cmFwPSJhcm91bmQiIGFuZCAiYXV0byIg4oaSIHNxdWFyZSBmbG9hdCAoYXV0byDiiaEgYXJvdW5kIGluIFdvcmQpYH0sZGVzY3JpcHRpb246YFJlc29sdmUgYW4gYXV0aG9yZWQgZnJhbWUgd3JhcCB2YWx1ZSBvZiBhdXRvIHRocm91Z2ggdGhlIHNhbWUgc3F1YXJlIHNpZGUtd3JhcCBwYXRoIGFzIGFyb3VuZC5gfSksJCh7aWQ6YHdvcmQtbG93ZXItbGF5ZXItc2FtZS1wYXJhZ3JhcGgtYW5jaG9yLWNvbXBvc2l0aW9uYCxldmlkZW5jZTp7a2luZDpgb2ZmaWNlLW9ic2VydmF0aW9uYCxzeW50aGV0aWNGaXh0dXJlSWQ6YGxvd2VyLWxheWVyLXNhbWUtcGFyYWdyYXBoLWFuY2hvci1jb21wb3NpdGlvbmAsYXBwbGljYXRpb246YE1pY3Jvc29mdCBXb3JkYCx2ZXJzaW9uOmAxNi4xMTEuMWAscGxhdGZvcm06YG1hY09TIDI2LjUuMmB9LGRlc2NyaXB0aW9uOmBXb3JkIHByZXNlcnZlcyBhIHNvdXJjZS1sYXRlciwgbG93ZXIteiwgcGFnZS1vd25lZCBkcmF3aW5nIGF0IGl0cyBhdXRob3JlZCBwb3NpdGlvbiB3aGVuIGl0IGJlbG9uZ3MgdG8gdGhlIHNhbWUgYW5jaG9yIHBhcmFncmFwaCBhcyBhbHJlYWR5IGNvbXBvc2VkIGhpZ2hlciBsYXllcnMuIFRoaXMgaXMgYSBXb3JkLW9ic2VydmVkIGNvbXBhdGliaWxpdHkgb3ZlcnJpZGUgdG8gRUNNQS0zNzYgwqcyMC40LjIuMywgbm90IGEgbm9ybWF0aXZlIE9PWE1MIHJ1bGUuYH0pLCQoe2lkOmB3b3JkLXRleHRib3gtdmlzaWJsZS1hbmNob3ItZXh0ZW50YCxldmlkZW5jZTp7a2luZDpgb2ZmaWNlLW9ic2VydmF0aW9uYCxzeW50aGV0aWNGaXh0dXJlSWQ6YHRleHRib3gtdmlzaWJsZS1hbmNob3ItZXh0ZW50YCxhcHBsaWNhdGlvbjpgTWljcm9zb2Z0IFdvcmRgLHZlcnNpb246YDE2LjExMS4xYCxwbGF0Zm9ybTpgbWFjT1MgMjYuNS4yYH0sZGVzY3JpcHRpb246YEZvciBEcmF3aW5nTUwgbWlkZGxlIGFuZCBib3R0b20gdGV4dCBhbmNob3JpbmcsIGRlcml2ZSB0aGUgcG9zaXRpb25lZCBleHRlbnQgdGhyb3VnaCB0aGUgbGFzdCB2aXNpYmxlIHJldGFpbmVkIGJsb2NrIHdoaWxlIHByZXNlcnZpbmcgc3RydWN0dXJhbCB0cmFpbGluZyBlbXB0eSBwYXJhZ3JhcGhzIGFuZCB0ZXJtaW5hbCBwYXJhZ3JhcGggc3BhY2luZyBpbiB0aGUgY29tcGxldGUgc3RvcnkuYH0pLCQoe2lkOmB3b3JkLW92ZXJsYXBwaW5nLWxheW91dC1pbi1jZWxsLW92ZXJsYXlgLGV2aWRlbmNlOntraW5kOmByZWdyZXNzaW9uLXRlc3RgLHJlZmVyZW5jZTpgcGFja2FnZXMvZG9jeC9zcmMvdGFibGUtY2VsbC1hbmNob3ItcmVmbG93LnRlc3QudHMjZG9lcyBub3QgZ3JvdyBhbiBhdXRvbWF0aWMgcm93IGZvciBhbiBvdmVybGFwcGluZyBsYXlvdXRJbkNlbGwgd3JhcE5vbmUgb2JqZWN0YH0sZGVzY3JpcHRpb246YFdvcmQgbGVhdmVzIGFuIG92ZXJsYXAtcGVybWl0dGVkLCBub24td3JhcHBpbmcgbGF5b3V0SW5DZWxsIGRyYXdpbmcgYXMgYW4gb3ZlcmxheSBpbnN0ZWFkIG9mIGdyb3dpbmcgaXRzIGF1dG9tYXRpYyB0YWJsZSByb3cuIFRoaXMgaXMgYW4gT2ZmaWNlIGNvbXBhdGliaWxpdHkgZXhjZXB0aW9uIHRvIHRoZSBnZW5lcmFsIHJlc2l6ZSBiZWhhdmlvciBpbiBFQ01BLTM3NiDCpzIwLjQuMi4zIGxheW91dEluQ2VsbDsgbm9uLW92ZXJsYXAgZHJhd2luZ3MgcmV0YWluIG5vcm1hdGl2ZSBjZWxsIGNvbnRhaW5tZW50LmB9KTtmdW5jdGlvbiBZTyhlLHQpe3JldHVybiFlfHx0IT09YG5vbmVgfWZ1bmN0aW9uIFhPKGUpe3JldHVybiBlLnNoYWRpbmd8fGUuYm9yZGVycy5sZW5ndGg+MHx8ZS5yZXNvdXJjZXMubGVuZ3RoPjB8fGUuZHJhd2luZ3MubGVuZ3RoPjB8fGUudGV4dEJveGVzLmxlbmd0aD4wfHxlLmxpbmVOdW1iZXJzPy5zb21lKGU9PmUucGFpbnRPcHMubGVuZ3RoPjApPyEwOmUubGluZXMuc29tZShlPT5lLnBsYWNlbWVudHMuc29tZShlPT5lLmtpbmQ9PT1gdGV4dGB8fGUua2luZD09PWByZXNvdXJjZWB8fGUua2luZD09PWBkcmF3aW5nYD8hMDplLmtpbmQ9PT1gdGFiYCYmKGUubGVhZGVyR2x5cGhzPy5sZW5ndGg/PzApPjApKX1mdW5jdGlvbiBaTyhlKXtsZXQgdD1lLmZsb3dCb3VuZHMueVB0LG47Zm9yKGxldCByIG9mIGUuYmxvY2tzKXtpZihyLmtpbmQ9PT1gdGFibGVgKXtuPU1hdGgubWF4KG4/P3Qsci5mbG93Qm91bmRzLnlQdCtyLmFkdmFuY2VQdCk7Y29udGludWV9ci5raW5kIT09YHBhcmFncmFwaGB8fCFYTyhyKXx8KG49TWF0aC5tYXgobj8/dCxyLmZsb3dCb3VuZHMueVB0K01hdGgubWF4KDAsci5hZHZhbmNlUHQtci5zcGFjaW5nLmFmdGVyUHQpKSl9cmV0dXJuIG49PT12b2lkIDA/MDpNYXRoLm1heCgwLG4tdCl9ZnVuY3Rpb24gUU8oZSl7cmV0dXJuIGU9PT0wfWZ1bmN0aW9uICRPKGUsdCl7cmV0dXJuIGU9PW51bGw/IXQ6ZSE9PWBwYXJhZ3JhcGhgJiZlIT09YGxpbmVgJiZlIT09YGNoYXJhY3RlcmB9ZnVuY3Rpb24gZWsoZSx0LG4pe3JldHVybiBlPT09YHBhZ2VgJiZ0IT09bnVsbCYmbiE9PXZvaWQgMCYmdDxufWNvbnN0IHRrPTIxNjAwO2Z1bmN0aW9uIG5rKGUsdCxuKXtyZXR1cm57Y29kZTplLHBhdGg6dCxtZXNzYWdlOm59fWZ1bmN0aW9uIHJrKGUpe3JldHVybiB0eXBlb2YgZT09YG51bWJlcmAmJk51bWJlci5pc0Zpbml0ZShlKX1mdW5jdGlvbiBpayhlKXtyZXR1cm4gcmsoZS54UHQpJiZyayhlLnlQdCkmJnJrKGUud2lkdGhQdCkmJnJrKGUuaGVpZ2h0UHQpJiZlLndpZHRoUHQ+PTAmJmUuaGVpZ2h0UHQ+PTB9ZnVuY3Rpb24gYWsoZSl7cmV0dXJuIGUua2luZD09PWBhbGlnbmA/ZS52YWx1ZTplLmtpbmQ9PT1gb2Zmc2V0YD9lLnZhbHVlUHQ6ZS5raW5kPT09YHBlcmNlbnRgP2UuZnJhY3Rpb246bnVsbH1mdW5jdGlvbiBvayhlLHQsbixyPSExKXtsZXQgaT10W2VdO3JldHVybntheGlzOmUsc3RhdHVzOmB1bnN1cHBvcnRlZGAscmVsYXRpdmVGcm9tOnI/YHBhZ2VgOmkucmVsYXRpdmVGcm9tLGNob2ljZUtpbmQ6cj9gc2ltcGxlLXBvc2l0aW9uYDppLmNob2ljZS5raW5kLGNob2ljZVZhbHVlOnI/ZT09PWBob3Jpem9udGFsYD90LnNpbXBsZVBvc2l0aW9uLnhQdDp0LnNpbXBsZVBvc2l0aW9uLnlQdDphayhpLmNob2ljZSksaXNzdWVDb2RlOm4uY29kZX19ZnVuY3Rpb24gc2soZSx0LG4scil7bGV0IGk9bltlXTtyZXR1cm4gaT09PW51bGw/e3Byb2JsZW06bmsoYG1pc3NpbmctcmVmZXJlbmNlLWZyYW1lYCxyLGAke2V9IGZyYW1lIGlzIHJlcXVpcmVkYCl9OmlrKGkpP3tiYXNlOntzdGFydFB0OnQ9PT1gaG9yaXpvbnRhbGA/aS54UHQ6aS55UHQsZW5kUHQ6dD09PWBob3Jpem9udGFsYD9pLnhQdCtpLndpZHRoUHQ6aS55UHQraS5oZWlnaHRQdCxyZWZlcmVuY2VGcmFtZTplfX06e3Byb2JsZW06bmsoYGludmFsaWQtcmVmZXJlbmNlLWZyYW1lYCxyLGAke2V9IGZyYW1lIG11c3QgYmUgZmluaXRlIGFuZCBub24tbmVnYXRpdmVgKX19ZnVuY3Rpb24gY2soZSx0LG4scil7bGV0IGk9c2soYHBhZ2VgLHQsbixyKTtpZighaS5iYXNlKXJldHVybiBpO2xldCBhPXNrKGBtYXJnaW5gLHQsbixyKTtpZighYS5iYXNlKXJldHVybiBhO2xldCBvPW4ucGFnZSxzPW4ubWFyZ2luLGM9ZT09PWBsZWZ0TWFyZ2luYHx8ZT09PWByaWdodE1hcmdpbmA7aWYoYyE9PSh0PT09YGhvcml6b250YWxgKSlyZXR1cm57cHJvYmxlbTpuayhgdW5zdXBwb3J0ZWQtcmVsYXRpdmUtZnJvbWAscixgJHtlfSBpcyBub3QgdmFsaWQgZm9yIHRoZSAke3R9IGF4aXNgKX07bGV0IGw9Yz9vLnhQdDpvLnlQdCx1PWM/by54UHQrby53aWR0aFB0Om8ueVB0K28uaGVpZ2h0UHQsZD1jP3MueFB0OnMueVB0LGY9Yz9zLnhQdCtzLndpZHRoUHQ6cy55UHQrcy5oZWlnaHRQdDtpZihkPGx8fGY+dSlyZXR1cm57cHJvYmxlbTpuayhgaW52YWxpZC1yZWZlcmVuY2UtZnJhbWVgLHIsYG1hcmdpbiBmcmFtZSBtdXN0IGJlIGNvbnRhaW5lZCBieSB0aGUgcGFnZSBmcmFtZWApfTtsZXQgcD1lPT09YGxlZnRNYXJnaW5gfHxlPT09YHRvcE1hcmdpbmA7cmV0dXJue2Jhc2U6e3N0YXJ0UHQ6cD9sOmYsZW5kUHQ6cD9kOnUscmVmZXJlbmNlRnJhbWU6ZX19fWZ1bmN0aW9uIGxrKGUsdCxuLHIpe2lmKHQ9PT1gcGFnZWB8fHQ9PT1gbWFyZ2luYHx8ZT09PWBob3Jpem9udGFsYCYmKHQ9PT1gY29sdW1uYHx8dD09PWBjaGFyYWN0ZXJgKXx8ZT09PWB2ZXJ0aWNhbGAmJih0PT09YHBhcmFncmFwaGB8fHQ9PT1gbGluZWApKXJldHVybiBzayh0LGUsbixyKTtpZihlPT09YGhvcml6b250YWxgJiYodD09PWBsZWZ0TWFyZ2luYHx8dD09PWByaWdodE1hcmdpbmApfHxlPT09YHZlcnRpY2FsYCYmKHQ9PT1gdG9wTWFyZ2luYHx8dD09PWBib3R0b21NYXJnaW5gKSlyZXR1cm4gY2sodCxlLG4scik7aWYodD09PWBpbnNpZGVNYXJnaW5gfHx0PT09YG91dHNpZGVNYXJnaW5gKXtpZihuLnBhZ2VQYXJpdHk9PT1udWxsKXJldHVybntwcm9ibGVtOm5rKGBtaXNzaW5nLXBhZ2UtcGFyaXR5YCxyLGAke3R9IHJlcXVpcmVzIGV4cGxpY2l0IHBhZ2UgcGFyaXR5YCl9O2xldCBpPXQ9PT1gaW5zaWRlTWFyZ2luYD09KG4ucGFnZVBhcml0eT09PWBvZGRgKTtyZXR1cm57Li4uY2soZT09PWBob3Jpem9udGFsYD9pP2BsZWZ0TWFyZ2luYDpgcmlnaHRNYXJnaW5gOmk/YHRvcE1hcmdpbmA6YGJvdHRvbU1hcmdpbmAsZSxuLHIpLHBhcml0eVJlcXVpcmVkOiEwfX1yZXR1cm57cHJvYmxlbTpuayhgdW5zdXBwb3J0ZWQtcmVsYXRpdmUtZnJvbWAscixgJHt0fSBpcyBub3QgYSB2YWxpZCAke2V9IHJlZmVyZW5jZWApfX1mdW5jdGlvbiB1ayhlLHQsbil7bGV0IHI9dC5yZWxhdGl2ZVNpemVbZV0saT1lPT09YGhvcml6b250YWxgP2B3aWR0aGA6YGhlaWdodGAsYT0obj1udWxsKT0+e2xldCByPWU9PT1gaG9yaXpvbnRhbGA/dC5leHRlbnQud2lkdGhTdGF0dXM6dC5leHRlbnQuaGVpZ2h0U3RhdHVzLGE9ZT09PWBob3Jpem9udGFsYD90LmV4dGVudC53aWR0aFB0OnQuZXh0ZW50LmhlaWdodFB0O3JldHVybiByPT09YG1pc3NpbmdgP3twcm9ibGVtOm5rKGBtaXNzaW5nLXNpemVgLGBleHRlbnQuJHtpfWAsYCR7aX0gaXMgcmVxdWlyZWRgKX06ciE9PWB2YWxpZGB8fCFyayhhKXx8YTw9MD97cHJvYmxlbTpuayhgaW52YWxpZC1zaXplYCxgZXh0ZW50LiR7aX1gLGAke2l9IGV4dGVudCBtdXN0IGJlIGZpbml0ZSBhbmQgcG9zaXRpdmVgKX06e3Jlc29sdmVkOnt2YWx1ZVB0OmEsZGlhZ25vc3RpYzp7c291cmNlOmBleHRlbnRgLHZhbHVlUHQ6YSxyZWxhdGl2ZUZyb206bj8ucmVsYXRpdmVGcm9tPz9udWxsLHJlZmVyZW5jZUZyYW1lOm51bGwsZnJhY3Rpb246bj8uZnJhY3Rpb24/P251bGwsLi4ubj09PW51bGw/e306e2NvbXBhdGliaWxpdHlGYWxsYmFjazpKTy5pZH19fX19O2lmKHI9PT1udWxsKXJldHVybiBhKCk7bGV0IG89YHJlbGF0aXZlU2l6ZS4ke2V9YDtpZihyLmZyYWN0aW9uU3RhdHVzPT09YG1pc3NpbmdgfHxyLmZyYWN0aW9uPT09bnVsbClyZXR1cm57cHJvYmxlbTpuayhgbWlzc2luZy1yZWxhdGl2ZS1zaXplLWZyYWN0aW9uYCxgJHtvfS5mcmFjdGlvbmAsYHJlbGF0aXZlIHNpemUgZnJhY3Rpb24gaXMgcmVxdWlyZWRgKX07aWYoci5mcmFjdGlvblN0YXR1cyE9PWB2YWxpZGB8fCFyayhyLmZyYWN0aW9uKSlyZXR1cm57cHJvYmxlbTpuayhgaW52YWxpZC1yZWxhdGl2ZS1zaXplLWZyYWN0aW9uYCxgJHtvfS5mcmFjdGlvbmAsYHJlbGF0aXZlIHNpemUgZnJhY3Rpb24gbXVzdCBiZSBmaW5pdGVgKX07aWYoci5mcmFjdGlvbjwwKXJldHVybntwcm9ibGVtOm5rKGBpbnZhbGlkLXJlbGF0aXZlLXNpemUtZnJhY3Rpb25gLGAke299LmZyYWN0aW9uYCxgcmVsYXRpdmUgc2l6ZSBmcmFjdGlvbiBtdXN0IGJlIG5vbi1uZWdhdGl2ZWApfTtpZihRTyhyLmZyYWN0aW9uKSlyZXR1cm4gYSh7cmVsYXRpdmVGcm9tOnIucmVsYXRpdmVGcm9tLGZyYWN0aW9uOnIuZnJhY3Rpb259KTtpZihyLnJlbGF0aXZlRnJvbVN0YXR1cz09PWBtaXNzaW5nYHx8ci5yZWxhdGl2ZUZyb209PT1udWxsKXJldHVybntwcm9ibGVtOm5rKGBtaXNzaW5nLXJlbGF0aXZlLXNpemUtcmVmZXJlbmNlYCxgJHtvfS5yZWxhdGl2ZUZyb21gLGByZWxhdGl2ZSBzaXplIHJlZmVyZW5jZSBpcyByZXF1aXJlZGApfTtpZihyLnJlbGF0aXZlRnJvbVN0YXR1cyE9PWB2YWxpZGApcmV0dXJue3Byb2JsZW06bmsoYGludmFsaWQtcmVsYXRpdmUtc2l6ZS1yZWZlcmVuY2VgLGAke299LnJlbGF0aXZlRnJvbWAsYHJlbGF0aXZlIHNpemUgcmVmZXJlbmNlIGlzIGludmFsaWRgKX07bGV0IHM9bGsoZSxyLnJlbGF0aXZlRnJvbSxuLGAke299LnJlbGF0aXZlRnJvbWApO2lmKCFzLmJhc2UpcmV0dXJue3Byb2JsZW06bmsocy5wcm9ibGVtPy5jb2RlPT09YG1pc3NpbmctcmVmZXJlbmNlLWZyYW1lYD9gbWlzc2luZy1yZWxhdGl2ZS1zaXplLXJlZmVyZW5jZWA6YGludmFsaWQtcmVsYXRpdmUtc2l6ZS1yZWZlcmVuY2VgLGAke299LnJlbGF0aXZlRnJvbWAscy5wcm9ibGVtPy5tZXNzYWdlPz9gcmVsYXRpdmUgc2l6ZSByZWZlcmVuY2UgY2Fubm90IGJlIHJlc29sdmVkYCl9O2xldCBjPShzLmJhc2UuZW5kUHQtcy5iYXNlLnN0YXJ0UHQpKnIuZnJhY3Rpb247cmV0dXJuIXJrKGMpfHxjPDA/e3Byb2JsZW06bmsoYGludmFsaWQtcmVsYXRpdmUtc2l6ZS1mcmFjdGlvbmAsYCR7b30uZnJhY3Rpb25gLGByZWxhdGl2ZSBzaXplIHJlc3VsdCBtdXN0IGJlIGZpbml0ZSBhbmQgbm9uLW5lZ2F0aXZlYCl9OntyZXNvbHZlZDp7dmFsdWVQdDpjLGRpYWdub3N0aWM6e3NvdXJjZTpgcmVsYXRpdmVgLHZhbHVlUHQ6YyxyZWxhdGl2ZUZyb206ci5yZWxhdGl2ZUZyb20scmVmZXJlbmNlRnJhbWU6cy5iYXNlLnJlZmVyZW5jZUZyYW1lLGZyYWN0aW9uOnIuZnJhY3Rpb259fX19ZnVuY3Rpb24gZGsoZSx0LG4scil7bGV0IGk9bltlXSxhPWU7aWYoaS5yZWxhdGl2ZUZyb21TdGF0dXM9PT1gbWlzc2luZ2B8fGkucmVsYXRpdmVGcm9tPT09bnVsbCl7bGV0IHQ9bmsoYG1pc3NpbmctcmVsYXRpdmUtZnJvbWAsYCR7YX0ucmVsYXRpdmVGcm9tYCxgJHtlfSByZWxhdGl2ZUZyb20gaXMgcmVxdWlyZWRgKTtyZXR1cm57ZGlhZ25vc3RpYzpvayhlLG4sdCkscHJvYmxlbTp0fX1pZihpLnJlbGF0aXZlRnJvbVN0YXR1cyE9PWB2YWxpZGApe2xldCB0PW5rKGBpbnZhbGlkLXJlbGF0aXZlLWZyb21gLGAke2F9LnJlbGF0aXZlRnJvbWAsYCR7ZX0gcmVsYXRpdmVGcm9tIGlzIGludmFsaWRgKTtyZXR1cm57ZGlhZ25vc3RpYzpvayhlLG4sdCkscHJvYmxlbTp0fX1sZXQgbz1sayhlLGkucmVsYXRpdmVGcm9tLHIsYCR7YX0ucmVsYXRpdmVGcm9tYCk7aWYoIW8uYmFzZSl7bGV0IHQ9by5wcm9ibGVtO3JldHVybntkaWFnbm9zdGljOm9rKGUsbix0KSxwcm9ibGVtOnR9fWxldCBzPWkuY2hvaWNlO2lmKHMua2luZD09PWBtaXNzaW5nYCl7bGV0IHQ9bmsoYG1pc3NpbmctYXhpcy1jaG9pY2VgLGAke2F9LmNob2ljZWAsYCR7ZX0gY2hvaWNlIGlzIHJlcXVpcmVkYCk7cmV0dXJue2RpYWdub3N0aWM6b2soZSxuLHQpLHByb2JsZW06dH19aWYocy5raW5kPT09YGludmFsaWRgKXtsZXQgdD1uayhgaW52YWxpZC1heGlzLWNob2ljZWAsYCR7YX0uY2hvaWNlYCxgJHtlfSBjaG9pY2UgaXMgaW52YWxpZGApO3JldHVybntkaWFnbm9zdGljOm9rKGUsbix0KSxwcm9ibGVtOnR9fWxldCBjPW8uYmFzZS5lbmRQdC1vLmJhc2Uuc3RhcnRQdCxsLHU7aWYocy5raW5kPT09YG9mZnNldGApe2lmKCFyayhzLnZhbHVlUHQpKXtsZXQgdD1uayhgaW52YWxpZC1heGlzLXZhbHVlYCxgJHthfS5jaG9pY2VgLGBvZmZzZXQgbXVzdCBiZSBmaW5pdGVgKTtyZXR1cm57ZGlhZ25vc3RpYzpvayhlLG4sdCkscHJvYmxlbTp0fX1sPW8uYmFzZS5zdGFydFB0K3MudmFsdWVQdCx1PXMudmFsdWVQdH1lbHNlIGlmKHMua2luZD09PWBwZXJjZW50YCl7aWYoIXJrKHMuZnJhY3Rpb24pKXtsZXQgdD1uayhgaW52YWxpZC1heGlzLXZhbHVlYCxgJHthfS5jaG9pY2VgLGBwZXJjZW50YWdlIG11c3QgYmUgZmluaXRlYCk7cmV0dXJue2RpYWdub3N0aWM6b2soZSxuLHQpLHByb2JsZW06dH19bD1vLmJhc2Uuc3RhcnRQdCtjKnMuZnJhY3Rpb24sdT1zLmZyYWN0aW9ufWVsc2UgaWYocy5raW5kPT09YGFsaWduYCl7aWYoIShlPT09YGhvcml6b250YWxgP1tgbGVmdGAsYGNlbnRlcmAsYHJpZ2h0YCxgaW5zaWRlYCxgb3V0c2lkZWBdLmluY2x1ZGVzKHMudmFsdWUpOltgdG9wYCxgY2VudGVyYCxgYm90dG9tYCxgaW5zaWRlYCxgb3V0c2lkZWBdLmluY2x1ZGVzKHMudmFsdWUpKSl7bGV0IHQ9bmsoYGludmFsaWQtYXhpcy12YWx1ZWAsYCR7YX0uY2hvaWNlYCxgJHtzLnZhbHVlfSBpcyBpbnZhbGlkYCk7cmV0dXJue2RpYWdub3N0aWM6b2soZSxuLHQpLHByb2JsZW06dH19aWYoKHMudmFsdWU9PT1gaW5zaWRlYHx8cy52YWx1ZT09PWBvdXRzaWRlYCkmJnIucGFnZVBhcml0eT09PW51bGwpe2xldCB0PW5rKGBtaXNzaW5nLXBhZ2UtcGFyaXR5YCxgZnJhbWVzLnBhZ2VQYXJpdHlgLGAke3MudmFsdWV9IGFsaWdubWVudCByZXF1aXJlcyBleHBsaWNpdCBwYWdlIHBhcml0eWApO3JldHVybntkaWFnbm9zdGljOm9rKGUsbix0KSxwcm9ibGVtOnR9fWxldCBpPWU9PT1gaG9yaXpvbnRhbGA/YGxlZnRgOmB0b3BgLGQ9ZT09PWBob3Jpem9udGFsYD9gcmlnaHRgOmBib3R0b21gLGY9cy52YWx1ZT09PWBpbnNpZGVgLHA9ci5wYWdlUGFyaXR5PT09YG9kZGAsbT1zLnZhbHVlPT09aXx8ZiYmcHx8cy52YWx1ZT09PWBvdXRzaWRlYCYmIXAsaD1zLnZhbHVlPT09ZHx8ZiYmIXB8fHMudmFsdWU9PT1gb3V0c2lkZWAmJnA7bD1tP28uYmFzZS5zdGFydFB0Omg/by5iYXNlLmVuZFB0LXQ6by5iYXNlLnN0YXJ0UHQrKGMtdCkvMix1PXMudmFsdWV9ZWxzZXtsZXQgdD1uayhgaW52YWxpZC1heGlzLWNob2ljZWAsYCR7YX0uY2hvaWNlYCxgJHtlfSBjaG9pY2UgaXMgaW52YWxpZGApO3JldHVybntkaWFnbm9zdGljOm9rKGUsbix0KSxwcm9ibGVtOnR9fWlmKCFyayhsKSl7bGV0IHQ9bmsoYGludmFsaWQtYXhpcy12YWx1ZWAsYCR7YX0uY2hvaWNlYCxgcmVzb2x2ZWQgb3JpZ2luIGlzIG5vdCBmaW5pdGVgKTtyZXR1cm57ZGlhZ25vc3RpYzpvayhlLG4sdCkscHJvYmxlbTp0fX1yZXR1cm57dmFsdWVQdDpsLGRpYWdub3N0aWM6e2F4aXM6ZSxzdGF0dXM6YHJlc29sdmVkYCxyZWxhdGl2ZUZyb206aS5yZWxhdGl2ZUZyb20scmVmZXJlbmNlRnJhbWU6by5iYXNlLnJlZmVyZW5jZUZyYW1lLGNob2ljZUtpbmQ6cy5raW5kLGNob2ljZVZhbHVlOnUsYmFzZVN0YXJ0UHQ6by5iYXNlLnN0YXJ0UHQsYmFzZUVuZFB0Om8uYmFzZS5lbmRQdCxyZXNvbHZlZE9yaWdpblB0OmwscGFnZVBhcml0eTpzLmtpbmQ9PT1gYWxpZ25gJiYocy52YWx1ZT09PWBpbnNpZGVgfHxzLnZhbHVlPT09YG91dHNpZGVgKT9yLnBhZ2VQYXJpdHk6bnVsbH19fWZ1bmN0aW9uIGZrKGUsdCxuKXtsZXQgcj1lPT09YGhvcml6b250YWxgP24ueFB0Om4ueVB0LGk9ZT09PWBob3Jpem9udGFsYD9uLnhQdCtuLndpZHRoUHQ6bi55UHQrbi5oZWlnaHRQdCxhPXIrdDtyZXR1cm57dmFsdWVQdDphLGRpYWdub3N0aWM6e2F4aXM6ZSxzdGF0dXM6YHJlc29sdmVkYCxyZWxhdGl2ZUZyb206YHBhZ2VgLHJlZmVyZW5jZUZyYW1lOmBwYWdlYCxjaG9pY2VLaW5kOmBzaW1wbGUtcG9zaXRpb25gLGNob2ljZVZhbHVlOnQsYmFzZVN0YXJ0UHQ6cixiYXNlRW5kUHQ6aSxyZXNvbHZlZE9yaWdpblB0OmEscGFnZVBhcml0eTpudWxsfX19Y29uc3QgcGs9W2B0b3BgLGByaWdodGAsYGJvdHRvbWAsYGxlZnRgXTtmdW5jdGlvbiBtayhlLHQpe3JldHVybiBlW2Ake3R9U3RhdHVzYF19ZnVuY3Rpb24gaGsoZSx0KXtyZXR1cm4gZVtgJHt0fVB0YF19ZnVuY3Rpb24gZ2soZSx0LG4pe2xldCByPXBrLnNvbWUodD0+bWsoZSx0KSE9PWBtaXNzaW5nYCk7aWYoIW4mJiFyKXJldHVybnt2YWx1ZXM6e3RvcFB0OjAscmlnaHRQdDowLGJvdHRvbVB0OjAsbGVmdFB0OjB9fTtsZXQgaT17dG9wUHQ6MCxyaWdodFB0OjAsYm90dG9tUHQ6MCxsZWZ0UHQ6MH07Zm9yKGxldCBuIG9mIHBrKXtsZXQgcj1tayhlLG4pLGE9aGsoZSxuKTtpZihyIT09YHZhbGlkYHx8IXJrKGEpKXJldHVybntwcm9ibGVtOm5rKGBpbnZhbGlkLWVmZmVjdC1leHRlbnRgLGAke3R9LiR7bn1gLGBwcmVzZW50IGVmZmVjdEV4dGVudCByZXF1aXJlcyBmb3VyIGZpbml0ZSBlZGdlIHZhbHVlc2ApfTtpW2Ake259UHRgXT1hfXJldHVybnt2YWx1ZXM6aX19ZnVuY3Rpb24gX2soZSx0KXtsZXQgbj17dG9wUHQ6MCxyaWdodFB0OjAsYm90dG9tUHQ6MCxsZWZ0UHQ6MH0scj17fTtmb3IobGV0IGkgb2YgcGspe2xldCBhPW1rKHQsaSksbz1tayhlLGkpLHM9YT09PWB2YWxpZGB8fGE9PT1gaW52YWxpZGA/e3N0YXR1czphLHZhbHVlOmhrKHQsaSksc291cmNlOmB3cmFwYH06bz09PWB2YWxpZGB8fG89PT1gaW52YWxpZGA/e3N0YXR1czpvLHZhbHVlOmhrKGUsaSksc291cmNlOmBhbmNob3JgfTp7c3RhdHVzOmBtaXNzaW5nYCx2YWx1ZTpudWxsLHNvdXJjZTpgaW1wbGljaXQtemVyb2B9O2lmKHMuc3RhdHVzPT09YGludmFsaWRgfHxzLnN0YXR1cz09PWB2YWxpZGAmJighcmsocy52YWx1ZSl8fHMudmFsdWU8MCkpcmV0dXJue3Byb2JsZW06bmsoYGludmFsaWQtZGlzdGFuY2VgLGAke3Muc291cmNlPT09YHdyYXBgP2B3cmFwLmRpc3RhbmNlc2A6YGFuY2hvckRpc3RhbmNlc2B9LiR7aX1gLGB3cmFwIGRpc3RhbmNlIG11c3QgYmUgZmluaXRlIGFuZCBub24tbmVnYXRpdmVgKX07bltgJHtpfVB0YF09cy5zdGF0dXM9PT1gbWlzc2luZ2A/MDpzLnZhbHVlLHJbaV09cy5zb3VyY2V9cmV0dXJue3Jlc29sdmVkOnt2YWx1ZXM6bixzb3VyY2VzOnJ9fX1mdW5jdGlvbiB2ayhlLHQpe2xldCBuPXt4UHQ6ZS54UHQtdC5sZWZ0UHQseVB0OmUueVB0LXQudG9wUHQsd2lkdGhQdDplLndpZHRoUHQrdC5sZWZ0UHQrdC5yaWdodFB0LGhlaWdodFB0OmUuaGVpZ2h0UHQrdC50b3BQdCt0LmJvdHRvbVB0fTtyZXR1cm4gaWsobik/bjpudWxsfWZ1bmN0aW9uIHlrKGUsdCl7bGV0IG49ZS53cmFwLnBvbHlnb247aWYobj09PW51bGx8fG4uaW52YWxpZFBvaW50Q291bnQhPT0wfHxuLmNvb3JkaW5hdGVTcGFjZS53aWR0aCE9PXRrfHxuLmNvb3JkaW5hdGVTcGFjZS5oZWlnaHQhPT10a3x8bi5wb2ludHMubGVuZ3RoPDMpcmV0dXJue3Byb2JsZW06bmsoYGludmFsaWQtd3JhcC1wb2x5Z29uYCxgd3JhcC5wb2x5Z29uYCxgdGlnaHQgYW5kIHRocm91Z2ggd3JhcHBpbmcgcmVxdWlyZSBhIHZhbGlkIGZpeGVkIDIxNjAwIGJ5IDIxNjAwIHBvbHlnb25gKX07bGV0IHI9W107Zm9yKGxldFtlLGldb2Ygbi5wb2ludHMuZW50cmllcygpKXtpZighcmsoaS54KXx8IXJrKGkueSkpcmV0dXJue3Byb2JsZW06bmsoYGludmFsaWQtd3JhcC1wb2x5Z29uYCxgd3JhcC5wb2x5Z29uLnBvaW50cy4ke2V9YCxgcG9seWdvbiBjb29yZGluYXRlcyBtdXN0IGJlIGZpbml0ZWApfTtyLnB1c2goe3hQdDp0LnhQdCtpLngvdGsqdC53aWR0aFB0LHlQdDp0LnlQdCtpLnkvdGsqdC5oZWlnaHRQdH0pfWxldCBpPXIubWFwKGU9PmUueFB0KSxhPXIubWFwKGU9PmUueVB0KSxvPU1hdGgubWluKC4uLmkpLHM9TWF0aC5tYXgoLi4uaSksYz1NYXRoLm1pbiguLi5hKSxsPU1hdGgubWF4KC4uLmEpO3JldHVybntwb2x5Z29uOntlZGl0ZWQ6bi5lZGl0ZWQscG9pbnRzOnJ9LGJvdW5kczp7eFB0Om8seVB0OmMsd2lkdGhQdDpzLW8saGVpZ2h0UHQ6bC1jfX19ZnVuY3Rpb24gYmsoZSl7cmV0dXJue2Nvb3JkaW5hdGVTcGFjZTpgYW5jaG9yLWZyYW1lYCxncm91cEFwcGxpY2F0aW9uOmBwYXJzZXItcmVzb2x2ZWQtY2hpbGQtZnJhbWVgLGdyb3VwOmU9PT1udWxsP251bGw6e2NoaWxkU291cmNlSWQ6ZS5jaGlsZFNvdXJjZUlkLHNvdXJjZUluZGV4OmUuc291cmNlSW5kZXgsc291cmNlQ291bnQ6ZS5zb3VyY2VDb3VudCx0cmFuc2Zvcm1DaGFpbjplLnRyYW5zZm9ybUNoYWluLm1hcChlPT4oey4uLmV9KSksY2hpbGRUcmFuc2Zvcm06ZS5jaGlsZFRyYW5zZm9ybT09PW51bGw/bnVsbDp7Li4uZS5jaGlsZFRyYW5zZm9ybX0scmVzb2x2ZWRDaGlsZEZyYW1lOnsuLi5lLnJlc29sdmVkQ2hpbGRGcmFtZX19fX1mdW5jdGlvbiB4ayhlKXtyZXR1cm4gSWcoZSxgYW5jaG9yIGZyYW1lIHJlc3VsdGApfWZ1bmN0aW9uIFNrKGUpe2xldHthY3F1aXNpdGlvbjp0LGZyYW1lczpufT1lO2ZvcihsZXQgZSBvZltgcmVsYXRpdmVIZWlnaHRgLGBiZWhpbmREb2NgLGBsb2NrZWRgLGBsYXlvdXRJbkNlbGxgLGBhbGxvd092ZXJsYXBgXSl7bGV0IG49dC5iZWhhdmlvcltgJHtlfVN0YXR1c2BdLHI9dC5iZWhhdmlvcltlXTtpZihuPT09YHZhbGlkYCYmciE9PW51bGwpY29udGludWU7bGV0IGk9bmsobj09PWBtaXNzaW5nYD9gbWlzc2luZy1yZXF1aXJlZC1iZWhhdmlvcmA6YGludmFsaWQtcmVxdWlyZWQtYmVoYXZpb3JgLGBiZWhhdmlvci4ke2V9YCxgQ1RfQW5jaG9yIHJlcXVpcmVzIGEgJHtlfSB2YWx1ZWApO3JldHVybiB4ayh7c3RhdHVzOmB1bnN1cHBvcnRlZGAsb2NjdXJyZW5jZUlkOnQub2NjdXJyZW5jZUlkLGF4ZXM6e2hvcml6b250YWw6b2soYGhvcml6b250YWxgLHQsaSksdmVydGljYWw6b2soYHZlcnRpY2FsYCx0LGkpfSxpc3N1ZXM6W2ldfSl9bGV0IHI9W10saT11ayhgaG9yaXpvbnRhbGAsdCxuKSxhPXVrKGB2ZXJ0aWNhbGAsdCxuKTtpLnByb2JsZW0mJnIucHVzaChpLnByb2JsZW0pLGEucHJvYmxlbSYmci5wdXNoKGEucHJvYmxlbSk7bGV0IG8scyxjPWkucHJvYmxlbT8/YS5wcm9ibGVtO2lmKGN8fCFpLnJlc29sdmVkfHwhYS5yZXNvbHZlZCl7bGV0IGU9YztvPXtkaWFnbm9zdGljOm9rKGBob3Jpem9udGFsYCx0LGUpfSxzPXtkaWFnbm9zdGljOm9rKGB2ZXJ0aWNhbGAsdCxlKX19ZWxzZSBpZih0LnNpbXBsZVBvc2l0aW9uLnN0YXR1cz09PWBpbnZhbGlkYCl7bGV0IGU9bmsoYGludmFsaWQtc2ltcGxlLXBvc2l0aW9uYCxgc2ltcGxlUG9zaXRpb24uZW5hYmxlZGAsYHNpbXBsZVBvcyBlbmFibGVtZW50IGlzIGludmFsaWRgKTtyLnB1c2goZSksbz17ZGlhZ25vc3RpYzpvayhgaG9yaXpvbnRhbGAsdCxlLCEwKSxwcm9ibGVtOmV9LHM9e2RpYWdub3N0aWM6b2soYHZlcnRpY2FsYCx0LGUsITApLHByb2JsZW06ZX19ZWxzZSBpZih0LnNpbXBsZVBvc2l0aW9uLnN0YXR1cz09PWB2YWxpZGAmJnQuc2ltcGxlUG9zaXRpb24uZW5hYmxlZD09PSEwKXtsZXQgZT1zayhgcGFnZWAsYGhvcml6b250YWxgLG4sYGZyYW1lcy5wYWdlYCksaT10LnNpbXBsZVBvc2l0aW9uLnhQdCxhPXQuc2ltcGxlUG9zaXRpb24ueVB0O2lmKCFlLmJhc2V8fG4ucGFnZT09PW51bGx8fCFpayhuLnBhZ2UpKXtsZXQgbj1lLnByb2JsZW0/P25rKGBpbnZhbGlkLXJlZmVyZW5jZS1mcmFtZWAsYGZyYW1lcy5wYWdlYCxgc2ltcGxlIHBvc2l0aW9uaW5nIHJlcXVpcmVzIGEgdmFsaWQgcGFnZSBmcmFtZWApO3IucHVzaChuKSxvPXtkaWFnbm9zdGljOm9rKGBob3Jpem9udGFsYCx0LG4sITApLHByb2JsZW06bn0scz17ZGlhZ25vc3RpYzpvayhgdmVydGljYWxgLHQsbiwhMCkscHJvYmxlbTpufX1lbHNlIGlmKHQuc2ltcGxlUG9zaXRpb24ueFN0YXR1cyE9PWB2YWxpZGB8fCFyayhpKSl7bGV0IGU9dC5zaW1wbGVQb3NpdGlvbi54U3RhdHVzPT09YGludmFsaWRgLG49bmsoZT9gaW52YWxpZC1zaW1wbGUtcG9zaXRpb25gOmBtaXNzaW5nLXNpbXBsZS1jb29yZGluYXRlYCxgc2ltcGxlUG9zaXRpb24ueGAsZT9gc2ltcGxlIHBvc2l0aW9uIHggaXMgbGV4aWNhbGx5IGludmFsaWRgOmBzaW1wbGUgcG9zaXRpb24geCBpcyByZXF1aXJlZGApO3IucHVzaChuKSxvPXtkaWFnbm9zdGljOm9rKGBob3Jpem9udGFsYCx0LG4sITApLHByb2JsZW06bn0scz17ZGlhZ25vc3RpYzpvayhgdmVydGljYWxgLHQsbiwhMCkscHJvYmxlbTpufX1lbHNlIGlmKHQuc2ltcGxlUG9zaXRpb24ueVN0YXR1cyE9PWB2YWxpZGB8fCFyayhhKSl7bGV0IGU9dC5zaW1wbGVQb3NpdGlvbi55U3RhdHVzPT09YGludmFsaWRgLG49bmsoZT9gaW52YWxpZC1zaW1wbGUtcG9zaXRpb25gOmBtaXNzaW5nLXNpbXBsZS1jb29yZGluYXRlYCxgc2ltcGxlUG9zaXRpb24ueWAsZT9gc2ltcGxlIHBvc2l0aW9uIHkgaXMgbGV4aWNhbGx5IGludmFsaWRgOmBzaW1wbGUgcG9zaXRpb24geSBpcyByZXF1aXJlZGApO3IucHVzaChuKSxvPXtkaWFnbm9zdGljOm9rKGBob3Jpem9udGFsYCx0LG4sITApLHByb2JsZW06bn0scz17ZGlhZ25vc3RpYzpvayhgdmVydGljYWxgLHQsbiwhMCkscHJvYmxlbTpufX1lbHNlIG89ZmsoYGhvcml6b250YWxgLGksbi5wYWdlKSxzPWZrKGB2ZXJ0aWNhbGAsYSxuLnBhZ2UpfWVsc2V7bGV0IGU9ZGsoYGhvcml6b250YWxgLGkucmVzb2x2ZWQudmFsdWVQdCx0LG4pLGM9ZGsoYHZlcnRpY2FsYCxhLnJlc29sdmVkLnZhbHVlUHQsdCxuKTtvPXsuLi5lLGRpYWdub3N0aWM6ZS5kaWFnbm9zdGljfSxzPXsuLi5jLGRpYWdub3N0aWM6Yy5kaWFnbm9zdGljfSxlLnByb2JsZW0mJnIucHVzaChlLnByb2JsZW0pLGMucHJvYmxlbSYmci5wdXNoKGMucHJvYmxlbSl9aWYoci5sZW5ndGg+MHx8IWkucmVzb2x2ZWR8fCFhLnJlc29sdmVkfHxvLnZhbHVlUHQ9PT12b2lkIDB8fHMudmFsdWVQdD09PXZvaWQgMClyZXR1cm4geGsoe3N0YXR1czpgdW5zdXBwb3J0ZWRgLG9jY3VycmVuY2VJZDp0Lm9jY3VycmVuY2VJZCxheGVzOntob3Jpem9udGFsOm8uZGlhZ25vc3RpYyx2ZXJ0aWNhbDpzLmRpYWdub3N0aWN9LGlzc3VlczpyfSk7bGV0IGw9e3hQdDpvLnZhbHVlUHQseVB0OnMudmFsdWVQdCx3aWR0aFB0OmkucmVzb2x2ZWQudmFsdWVQdCxoZWlnaHRQdDphLnJlc29sdmVkLnZhbHVlUHR9LHU9Z2sodC5wYXJlbnRFZmZlY3RFeHRlbnQsYHBhcmVudEVmZmVjdEV4dGVudGAsITEpO2lmKHUucHJvYmxlbXx8IXUudmFsdWVzKXtsZXQgZT11LnByb2JsZW07cmV0dXJuIHhrKHtzdGF0dXM6YHVuc3VwcG9ydGVkYCxvY2N1cnJlbmNlSWQ6dC5vY2N1cnJlbmNlSWQsYXhlczp7aG9yaXpvbnRhbDpvLmRpYWdub3N0aWMsdmVydGljYWw6cy5kaWFnbm9zdGljfSxpc3N1ZXM6W2VdfSl9bGV0IGQ9dmsobCx1LnZhbHVlcyk7aWYoZD09PW51bGwpe2xldCBlPW5rKGBpbnZhbGlkLWVmZmVjdC1leHRlbnRgLGBwYXJlbnRFZmZlY3RFeHRlbnRgLGBwYXJlbnQgZWZmZWN0IGV4dGVudHMgcHJvZHVjZSBpbnZhbGlkIGluayBib3VuZHNgKTtyZXR1cm4geGsoe3N0YXR1czpgdW5zdXBwb3J0ZWRgLG9jY3VycmVuY2VJZDp0Lm9jY3VycmVuY2VJZCxheGVzOntob3Jpem9udGFsOm8uZGlhZ25vc3RpYyx2ZXJ0aWNhbDpzLmRpYWdub3N0aWN9LGlzc3VlczpbZV19KX1pZih0LndyYXAua2luZD09PWBtaXNzaW5nYHx8dC53cmFwLmtpbmQ9PT1gaW52YWxpZGApe2xldCBlPW5rKHQud3JhcC5raW5kPT09YG1pc3NpbmdgP2BtaXNzaW5nLXdyYXAta2luZGA6YGludmFsaWQtd3JhcC1raW5kYCxgd3JhcC5raW5kYCxgZXhhY3RseSBvbmUgdmFsaWQgd3JhcCBraW5kIGlzIHJlcXVpcmVkYCk7cmV0dXJuIHhrKHtzdGF0dXM6YHVuc3VwcG9ydGVkYCxvY2N1cnJlbmNlSWQ6dC5vY2N1cnJlbmNlSWQsYXhlczp7aG9yaXpvbnRhbDpvLmRpYWdub3N0aWMsdmVydGljYWw6cy5kaWFnbm9zdGljfSxpc3N1ZXM6W2VdfSl9bGV0IGY9X2sodC5hbmNob3JEaXN0YW5jZXMsdC53cmFwLmRpc3RhbmNlcyk7aWYoZi5wcm9ibGVtfHwhZi5yZXNvbHZlZClyZXR1cm4geGsoe3N0YXR1czpgdW5zdXBwb3J0ZWRgLG9jY3VycmVuY2VJZDp0Lm9jY3VycmVuY2VJZCxheGVzOntob3Jpem9udGFsOm8uZGlhZ25vc3RpYyx2ZXJ0aWNhbDpzLmRpYWdub3N0aWN9LGlzc3VlczpbZi5wcm9ibGVtXX0pO2xldCBwPXQud3JhcC5raW5kPT09YHNxdWFyZWB8fHQud3JhcC5raW5kPT09YHRpZ2h0YHx8dC53cmFwLmtpbmQ9PT1gdGhyb3VnaGAsbT1wJiZbYGJvdGhTaWRlc2AsYGxlZnRgLGByaWdodGAsYGxhcmdlc3RgXS5pbmNsdWRlcyh0LndyYXAuc2lkZT8/YGApP3Qud3JhcC5zaWRlOm51bGw7aWYocCYmbT09PW51bGwpe2xldCBlPW5rKGBpbnZhbGlkLXdyYXAtc2lkZWAsYHdyYXAuc2lkZWAsYHNxdWFyZSwgdGlnaHQsIGFuZCB0aHJvdWdoIHdyYXBwaW5nIHJlcXVpcmUgYW4gYXV0aG9yZWQgd3JhcCBzaWRlYCk7cmV0dXJuIHhrKHtzdGF0dXM6YHVuc3VwcG9ydGVkYCxvY2N1cnJlbmNlSWQ6dC5vY2N1cnJlbmNlSWQsYXhlczp7aG9yaXpvbnRhbDpvLmRpYWdub3N0aWMsdmVydGljYWw6cy5kaWFnbm9zdGljfSxpc3N1ZXM6W2VdfSl9bGV0IGg9dS52YWx1ZXMsZz1way5zb21lKGU9Pm1rKHQucGFyZW50RWZmZWN0RXh0ZW50LGUpIT09YG1pc3NpbmdgKT9gcGFyZW50YDpgbm9uZWA7aWYodC53cmFwLmVmZmVjdEV4dGVudCE9PW51bGwpe2xldCBlPWdrKHQud3JhcC5lZmZlY3RFeHRlbnQsYHdyYXAuZWZmZWN0RXh0ZW50YCwhMCk7aWYoZS5wcm9ibGVtfHwhZS52YWx1ZXMpcmV0dXJuIHhrKHtzdGF0dXM6YHVuc3VwcG9ydGVkYCxvY2N1cnJlbmNlSWQ6dC5vY2N1cnJlbmNlSWQsYXhlczp7aG9yaXpvbnRhbDpvLmRpYWdub3N0aWMsdmVydGljYWw6cy5kaWFnbm9zdGljfSxpc3N1ZXM6W2UucHJvYmxlbV19KTtoPWUudmFsdWVzLGc9YHdyYXAtY2hpbGRgfWxldCBfPW51bGwsdj1udWxsLHk9bnVsbDtpZih0LndyYXAua2luZD09PWB0aWdodGB8fHQud3JhcC5raW5kPT09YHRocm91Z2hgKXtsZXQgZT15ayh0LGwpO2lmKGUucHJvYmxlbXx8IWUucG9seWdvbnx8IWUuYm91bmRzKXJldHVybiB4ayh7c3RhdHVzOmB1bnN1cHBvcnRlZGAsb2NjdXJyZW5jZUlkOnQub2NjdXJyZW5jZUlkLGF4ZXM6e2hvcml6b250YWw6by5kaWFnbm9zdGljLHZlcnRpY2FsOnMuZGlhZ25vc3RpY30saXNzdWVzOltlLnByb2JsZW1dfSk7Xz1lLnBvbHlnb24sdj17d2lkdGg6MjE2MDAsaGVpZ2h0OjIxNjAwfSx5PWUuYm91bmRzLGg9e3RvcFB0OjAscmlnaHRQdDowLGJvdHRvbVB0OjAsbGVmdFB0OjB9LGc9YG5vbmVgfWVsc2UgaWYodC53cmFwLmtpbmQhPT1gbm9uZWAmJih5PXZrKGwsaCkseT09PW51bGwpKXtsZXQgZT1uayhgaW52YWxpZC1lZmZlY3QtZXh0ZW50YCxgd3JhcC5lZmZlY3RFeHRlbnRgLGB3cmFwcGluZyBlZmZlY3QgZXh0ZW50cyBwcm9kdWNlIGludmFsaWQgYm91bmRzYCk7cmV0dXJuIHhrKHtzdGF0dXM6YHVuc3VwcG9ydGVkYCxvY2N1cnJlbmNlSWQ6dC5vY2N1cnJlbmNlSWQsYXhlczp7aG9yaXpvbnRhbDpvLmRpYWdub3N0aWMsdmVydGljYWw6cy5kaWFnbm9zdGljfSxpc3N1ZXM6W2VdfSl9bGV0IGI9eT09PW51bGw/bnVsbDp2ayh5LGYucmVzb2x2ZWQudmFsdWVzKTtpZih5IT09bnVsbCYmYj09PW51bGwpe2xldCBlPW5rKGBpbnZhbGlkLWRpc3RhbmNlYCxgd3JhcC5kaXN0YW5jZXNgLGBkaXN0YW5jZXMgcHJvZHVjZSBpbnZhbGlkIGJvdW5kc2ApO3JldHVybiB4ayh7c3RhdHVzOmB1bnN1cHBvcnRlZGAsb2NjdXJyZW5jZUlkOnQub2NjdXJyZW5jZUlkLGF4ZXM6e2hvcml6b250YWw6by5kaWFnbm9zdGljLHZlcnRpY2FsOnMuZGlhZ25vc3RpY30saXNzdWVzOltlXX0pfXJldHVybiB4ayh7c3RhdHVzOmByZXNvbHZlZGAsb2NjdXJyZW5jZUlkOnQub2NjdXJyZW5jZUlkLGF4ZXM6e2hvcml6b250YWw6by5kaWFnbm9zdGljLHZlcnRpY2FsOnMuZGlhZ25vc3RpY30saXNzdWVzOltdLGdlb21ldHJ5OntvYmplY3RGcmFtZTpsLGlua0JvdW5kczpkLHdyYXBCb3VuZHM6YixzaXplOntob3Jpem9udGFsOmkucmVzb2x2ZWQuZGlhZ25vc3RpYyx2ZXJ0aWNhbDphLnJlc29sdmVkLmRpYWdub3N0aWN9LHBhcmVudEVmZmVjdEV4dGVudDp1LnZhbHVlcyx3cmFwOntraW5kOnQud3JhcC5raW5kLHNpZGU6bSxkaXN0YW5jZXM6Zi5yZXNvbHZlZC52YWx1ZXMsZGlzdGFuY2VTb3VyY2VzOmYucmVzb2x2ZWQuc291cmNlcyxlZmZlY3RFeHRlbnQ6aCxlZmZlY3RFeHRlbnRTb3VyY2U6Zyxjb29yZGluYXRlU3BhY2U6dixwb2x5Z29uOl99LHRyYW5zZm9ybTpiayh0Lmdyb3VwKX19KX1mdW5jdGlvbiBDayhlLHQsbixyKXtpZighZSlyZXR1cm4gcjtsZXQgaT0hIShlLnN0eWxlSWQmJmUuc3R5bGVJZD09PXQuc3R5bGVJZCksYT0hIShpJiZlLmNvbnRleHR1YWxTcGFjaW5nKSxvPSEhKGkmJnQuY29udGV4dHVhbFNwYWNpbmcpO3JldHVybiBhJiZvPzA6bz9uOmE/TWF0aC5tYXgoci1uLDApOk1hdGgubWF4KG4scil9ZnVuY3Rpb24gd2soZSx0LG4scil7bGV0IGk9Q2soZSx0LG4sciksYT1pPD1uO3JldHVybntzdXBwcmVzc0JlZm9yZTphLG92ZXJsYXA6bisoYT8wOnIpLWl9fWZ1bmN0aW9uIFRrKGUpe3JldHVybiBPYmplY3QuZnJlZXplKGUucGFnZXMubWFwKGU9Pk9iamVjdC5mcmVlemUoe3BhZ2VJbmRleDplLnBhZ2VJbmRleCxkaXNwbGF5UGFnZU51bWJlcjplLnBhZ2VOdW1iZXIuZGlzcGxheU51bWJlcixwYWdlTnVtYmVyRm9ybWF0OmUucGFnZU51bWJlci5mb3JtYXR9KSkpfWZ1bmN0aW9uIEVrKGUpe2lmKGUuZmllbGRUeXBlPT09YHBhZ2VgKXJldHVybmBwYWdlYDtpZigvbnVtUGFnZXMvaS50ZXN0KGUuZmllbGRUeXBlKXx8L05VTVBBR0VTL2kudGVzdChlLmluc3RydWN0aW9uKSlyZXR1cm5gdG90YWwtcGFnZXNgfWZ1bmN0aW9uIERrKGUpe3JldHVybiBlLnNvbWUoZT0+ZS50eXBlPT09YHBhcmFncmFwaGA/ZS5ydW5zLnNvbWUoZT0+ZS50eXBlPT09YGZpZWxkYD9FayhlKSE9PXZvaWQgMDohMSk6ZS50eXBlPT09YHRhYmxlYD9lLnJvd3Muc29tZShlPT5lLmNlbGxzLnNvbWUoZT0+RGsoZS5jb250ZW50KSkpOiExKX1mdW5jdGlvbiBPayhlLHQ9W10sbj1bXSl7cmV0dXJuIERrKGUpfHx0LnNvbWUoZT0+RGsoZS5jb250ZW50KSl8fG4uc29tZShlPT5EayhlKSl9Y29uc3Qga2s9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gQWsoZSl7bGV0IHQ9bmV3IFNldChlLmRyYXdpbmdzLmZsYXRNYXAoZT0+e2xldCB0PWUuYW5jaG9yTGF5ZXI/LmFjcXVpc2l0aW9uT2NjdXJyZW5jZUlkPz9lLmFuY2hvckxheWVyPy5vY2N1cnJlbmNlSWQ7cmV0dXJuIHQ9PT12b2lkIDA/W106W3RdfSkpO3JldHVybiBPYmplY3QuZnJlZXplKHtleGNsdXNpb25zOk9iamVjdC5mcmVlemUoZS5leGNsdXNpb25zLmZpbHRlcihlPT4hZS5pZC5zdGFydHNXaXRoKGB0YWJsZS1maW5hbC1mcmFtZTpgKSYmKGUuYW5jaG9yT2NjdXJyZW5jZUlkPT09dm9pZCAwfHwhdC5oYXMoZS5hbmNob3JPY2N1cnJlbmNlSWQpKSkpLGNvbGxpc2lvbnM6T2JqZWN0LmZyZWV6ZSgoZS5hbmNob3JDb2xsaXNpb25zPz9bXSkuZmlsdGVyKGU9PiF0LmhhcyhlLm9jY3VycmVuY2VJZCkpKX0pfWZ1bmN0aW9uIGprKGUpe3JldHVybiBuZXcgU2V0KChlLmFuY2hvckZyYW1lcz8/W10pLmZsYXRNYXAoZT0+ZS5zdGF0dXM9PT1gcmVzb2x2ZWRgP1tlLm9jY3VycmVuY2VJZF06W10pKX1mdW5jdGlvbiBNayhlKXtsZXQgdD1qayhlKSxuPShlLmFuY2hvckNvbGxpc2lvbnM/P1tdKS5maWx0ZXIoZT0+dC5oYXMoZS5vY2N1cnJlbmNlSWQpKSxyPW5ldyBTZXQobi5tYXAoZT0+ZS5vY2N1cnJlbmNlSWQpKTtmb3IobGV0IGUgb2YgdClpZighci5oYXMoZSkpdGhyb3cgRXJyb3IoYFBhcmFncmFwaCBhbmNob3Igb21pdHRlZCBjb2xsaXNpb24gZ2VvbWV0cnk6ICR7ZX1gKTtyZXR1cm4gT2JqZWN0LmZyZWV6ZShuKX1mdW5jdGlvbiBOayhlKXtsZXQgdD1qayhlKTtyZXR1cm4gT2JqZWN0LmZyZWV6ZShlLmV4Y2x1c2lvbnMuZmlsdGVyKGU9PmUuYW5jaG9yT2NjdXJyZW5jZUlkIT09dm9pZCAwJiZ0LmhhcyhlLmFuY2hvck9jY3VycmVuY2VJZCkpKX1mdW5jdGlvbiBQayhlKXtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Zmxvd0RvbWFpbklkOmUsY29sbGlzaW9uczpPYmplY3QuZnJlZXplKFtdKSxleGNsdXNpb25zOk9iamVjdC5mcmVlemUoW10pfSl9ZnVuY3Rpb24gRmsoZSx0KXtsZXQgbj1ray5nZXQoZSk7bnx8KG49bmV3IE1hcCxray5zZXQoZSxuKSk7bGV0IHI9bi5nZXQodCk7aWYocilyZXR1cm4gcjtsZXQgaT1Qayh0KTtyZXR1cm4gbi5zZXQodCxpKSxpfWZ1bmN0aW9uIElrKGUsdCxuKXtsZXQgcj1ray5nZXQoZSk7aWYoIXJ8fHIuZ2V0KHQuZmxvd0RvbWFpbklkKSE9PXQpdGhyb3cgRXJyb3IoYFBhcmFncmFwaCB3cmFwIHJlZ2lzdHJ5IHRyYW5zYWN0aW9uIGlzIHN0YWxlYCk7ci5zZXQodC5mbG93RG9tYWluSWQsTGsodCxuKSl9ZnVuY3Rpb24gTGsoZSx0KXtpZih0LmZsb3dEb21haW5JZCE9PWUuZmxvd0RvbWFpbklkKXRocm93IEVycm9yKGBQYXJhZ3JhcGggd3JhcCByZWdpc3RyeSBjYW5ub3QgY3Jvc3MgZmxvdyBkb21haW5zYCk7bGV0IG49bmV3IFNldChlLmNvbGxpc2lvbnMubWFwKGU9PmUub2NjdXJyZW5jZUlkKSkscj1Nayh0KTtmb3IobGV0IGUgb2Ygcil7aWYobi5oYXMoZS5vY2N1cnJlbmNlSWQpKXRocm93IEVycm9yKGBQYXJhZ3JhcGggd3JhcCBvY2N1cnJlbmNlIGNvbW1pdHRlZCB0d2ljZTogJHtlLm9jY3VycmVuY2VJZH1gKTtuLmFkZChlLm9jY3VycmVuY2VJZCl9bGV0IGk9TmsodCksYT1uZXcgU2V0KHIubWFwKGU9PmUub2NjdXJyZW5jZUlkKSksbz1uZXcgU2V0O2ZvcihsZXQgZSBvZiBpKXtsZXQgdD1lLmFuY2hvck9jY3VycmVuY2VJZDtpZih0PT09dm9pZCAwfHwhYS5oYXModCkpdGhyb3cgRXJyb3IoYE93bmVkIHBhcmFncmFwaCB3cmFwIGV4Y2x1c2lvbiBvbWl0dGVkIGl0cyBjb2xsaXNpb24gb2NjdXJyZW5jZWApO2lmKG8uaGFzKHQpKXRocm93IEVycm9yKGBQYXJhZ3JhcGggd3JhcCBvY2N1cnJlbmNlIHByb2R1Y2VkIGR1cGxpY2F0ZSBleGNsdXNpb25zOiAke3R9YCk7by5hZGQodCl9cmV0dXJuIE9iamVjdC5mcmVlemUoe2Zsb3dEb21haW5JZDplLmZsb3dEb21haW5JZCxjb2xsaXNpb25zOk9iamVjdC5mcmVlemUoWy4uLmUuY29sbGlzaW9ucywuLi5yXSksZXhjbHVzaW9uczpPYmplY3QuZnJlZXplKFsuLi5lLmV4Y2x1c2lvbnMsLi4uaV0pfSl9ZnVuY3Rpb24gUmsoZSx0KXtpZighTnVtYmVyLmlzRmluaXRlKGUpfHxlPDApdGhyb3cgUmFuZ2VFcnJvcihgJHt0fSBtdXN0IGJlIGZpbml0ZSBhbmQgbm9uLW5lZ2F0aXZlYCk7cmV0dXJuIGV9ZnVuY3Rpb24gemsoZSl7aWYoISghZXx8ZS50eXBlIT09YHRleHRgJiZlLnR5cGUhPT1gZmllbGRgKSlyZXR1cm4gZS50eXBvZ3JhcGh5SW5wdXR9ZnVuY3Rpb24gQmsoZSl7c3dpdGNoKGUpe2Nhc2VgbGVmdGA6cmV0dXJuYGxlZnRgO2Nhc2VgcmlnaHRgOnJldHVybmByaWdodGA7ZGVmYXVsdDpyZXR1cm5gY2VudGVyYH19ZnVuY3Rpb24gVmsoZSl7cmV0dXJuIFJrKGUubWVhc3VyZWRXaWR0aFB0LGBzZWdtZW50Lm1lYXN1cmVkV2lkdGhQdGApfWZ1bmN0aW9uIEhrKGUpe3JldHVybiBlLm1hcChlPT5lLmtpbmQ9PT1gdGV4dGAmJiFlLmZpeGVkUGl0Y2g/e3RleHQ6ZS50ZXh0fTp7fSl9ZnVuY3Rpb24gVWsoZSl7cmV0dXJuIGU9PT1gbG93S2FzaGlkYWA/YGxvd2A6ZT09PWBtZWRpdW1LYXNoaWRhYD9gbWVkaXVtYDplPT09YGhpZ2hLYXNoaWRhYD9gaGlnaGA6bnVsbH1mdW5jdGlvbiBXayhlLHQpe2lmKCFlLnRleHRMYXlvdXRTZXJ2aWNlfHwhZS50ZXh0U2hhcGVSZXF1ZXN0KXRocm93IEVycm9yKGBLYXNoaWRhIGFjcXVpc2l0aW9uIHJlcXVpcmVzIHRoZSByZXRhaW5lZCBUZXh0TGF5b3V0U2VydmljZSBhdXRob3JpdHlgKTtsZXQgbj1lLnRleHRMYXlvdXRTZXJ2aWNlLnNoYXBlKHsuLi5lLnRleHRTaGFwZVJlcXVlc3QsdGV4dDp0LG1lYXN1cmU6ITB9KSxyPWUuYmFzZVBhaW50T3BzWzBdPy5zY2FsZVg/PzEsaT1lLmJhc2VQYWludE9wc1swXT8ubGV0dGVyU3BhY2luZ1B0Pz8wO3JldHVybiBuLmFkdmFuY2VQdCpyK1suLi50XS5sZW5ndGgqaX1mdW5jdGlvbiBHayhlLHQpe2lmKCFlKXJldHVybiBudWxsO2xldCBuPXJPKGUpLHI9bmV3IE1hcCxpPTA7Zm9yKGxldFtuLGFdb2YgZS5wZXJTZWcpe2xldCBlPXRbbl0sbz1hLnNwbGl0QmVmb3JlO2lmKGU/LmtpbmQ9PT1gdGV4dGApe2xldCB0PW5ldyBTZXQoZS5jbHVzdGVycy5zbGljZSgxKS5tYXAodD0+dC5yYW5nZS5zdGFydC1lLnJhbmdlLnN0YXJ0KSksbj1bLi4uZS50ZXh0XSxyPVswXTtmb3IobGV0IGUgb2YgbilyLnB1c2goKHIuYXQoLTEpPz8wKStlLmxlbmd0aCk7bz1vLmZpbHRlcihlPT50LmhhcyhyW2VdPz8tMSkpfWxldCBzPXRbbisxXSxjPWEudHJhaWxpbmdHYXAmJiEocz8ua2luZD09PWB0ZXh0YCYmcy5icmVha0JlZm9yZT09PSExKTtpKz1vLmxlbmd0aCsgKyEhYyxyLnNldChuLHtzcGxpdEJlZm9yZTpbLi4ub10sdHJhaWxpbmdHYXA6YyxpbnRlcm5hbFN0cmV0Y2g6MH0pfWlmKGk9PT0wKXJldHVybiBudWxsO2xldCBhPW4vaTtmb3IobGV0IGUgb2Ygci52YWx1ZXMoKSllLmludGVybmFsU3RyZXRjaD1lLnNwbGl0QmVmb3JlLmxlbmd0aCphO3JldHVybntwZXJHYXA6YSxwZXJTZWc6cn19ZnVuY3Rpb24gS2soZSx0LG4pe2lmKCF0fHx0LnNwbGl0QmVmb3JlLmxlbmd0aD09PTApcmV0dXJue2NsdXN0ZXJzOmUuY2x1c3RlcnMscGFpbnRPcHM6ZS5iYXNlUGFpbnRPcHN9O2xldCByPVsuLi5lLnRleHRdLGk9Wy4uLnQuc3BsaXRCZWZvcmVdO2lmKGkuc29tZSgoZSx0KT0+ZTw9MHx8ZT49ci5sZW5ndGh8fHQ+MCYmZTw9KGlbdC0xXT8/MCkpKXRocm93IEVycm9yKGBJbnRlcm5hbCBwYXJhZ3JhcGgganVzdGlmaWNhdGlvbiBjb250YWlucyBhbiBpbnZhbGlkIGNvZGUtcG9pbnQgY3V0YCk7bGV0IGE9WzBdO2ZvcihsZXQgZSBvZiByKWEucHVzaCgoYS5hdCgtMSk/PzApK2UubGVuZ3RoKTtsZXQgbz1pLm1hcChlPT5hW2VdPz8tMSkscz1uZXcgU2V0KGUuY2x1c3RlcnMubWFwKHQ9PnQucmFuZ2Uuc3RhcnQtZS5yYW5nZS5zdGFydCkpO2lmKG8uc29tZShlPT4hcy5oYXMoZSkpKXRocm93IEVycm9yKGBJbnRlcm5hbCBwYXJhZ3JhcGgganVzdGlmaWNhdGlvbiBtdXN0IHNwbGl0IGF0IHNoYXBlZCBjbHVzdGVyIGJvdW5kYXJpZXNgKTtsZXQgYz1bMCwuLi5pLHIubGVuZ3RoXSxsPVtdO2ZvcihsZXQgdD0wO3Q8Yy5sZW5ndGgtMTt0Kz0xKXtsZXQgcj1jW3RdPz8wLGk9Y1t0KzFdPz9yLG89ZS5yYW5nZS5zdGFydCsoYVtyXT8/MCkscz1lLmNsdXN0ZXJzLmZpbmQoZT0+ZS5yYW5nZS5zdGFydD09PW8pO2lmKCFzKXRocm93IEVycm9yKGBJbnRlcm5hbCBwYXJhZ3JhcGgganVzdGlmaWNhdGlvbiBpcyBtaXNzaW5nIHNoYXBlZCBjbHVzdGVyIGdlb21ldHJ5YCk7bC5wdXNoKHtyYW5nZTp7c3RhcnQ6byxlbmQ6ZS5yYW5nZS5zdGFydCsoYVtpXT8/MCl9LG9mZnNldDp7eFB0OnMub2Zmc2V0LnhQdCt0Km4seVB0OnMub2Zmc2V0LnlQdH19KX1sZXQgdT1lLmNsdXN0ZXJzLm1hcCh0PT57bGV0IHI9dC5yYW5nZS5zdGFydC1lLnJhbmdlLnN0YXJ0LGk9by5maWx0ZXIoZT0+ZTw9cikubGVuZ3RoO3JldHVybnsuLi50LG9mZnNldDp7Li4udC5vZmZzZXQseFB0OnQub2Zmc2V0LnhQdCtpKm59fX0pO2lmKGUuYmFzZVBhaW50T3BzLmxlbmd0aD4xKXtsZXQgdD1lLnJhbmdlLnN0YXJ0O2ZvcihsZXQgbiBvZiBlLmJhc2VQYWludE9wcyl7aWYobi5yYW5nZS5zdGFydCE9PXR8fG4ucmFuZ2UuZW5kPD1uLnJhbmdlLnN0YXJ0KXRocm93IEVycm9yKGBJbnRlcm5hbCBwYXJhZ3JhcGgganVzdGlmaWNhdGlvbiBoYXMgaW5jb21wbGV0ZSByZXRhaW5lZCBwYWludCBvcGVyYXRpb25zYCk7dD1uLnJhbmdlLmVuZH1pZih0IT09ZS5yYW5nZS5lbmQpdGhyb3cgRXJyb3IoYEludGVybmFsIHBhcmFncmFwaCBqdXN0aWZpY2F0aW9uIGhhcyBpbmNvbXBsZXRlIHJldGFpbmVkIHBhaW50IG9wZXJhdGlvbnNgKTtsZXQgcj1vLm1hcCh0PT5lLnJhbmdlLnN0YXJ0K3QpLGk9Wy4uLm5ldyBTZXQoW2UucmFuZ2Uuc3RhcnQsZS5yYW5nZS5lbmQsLi4uciwuLi5lLmJhc2VQYWludE9wcy5mbGF0TWFwKGU9PltlLnJhbmdlLnN0YXJ0LGUucmFuZ2UuZW5kXSldKV0uc29ydCgoZSx0KT0+ZS10KSxhPVtdO2ZvcihsZXQgdD0wO3Q8aS5sZW5ndGgtMTt0Kz0xKXtsZXQgbz1pW3RdPz9lLnJhbmdlLnN0YXJ0LHM9aVt0KzFdPz9vLGM9ZS5iYXNlUGFpbnRPcHMuZmluZChlPT5lLnJhbmdlLnN0YXJ0PD1vJiZlLnJhbmdlLmVuZD49cyk7aWYoIWMpdGhyb3cgRXJyb3IoYEludGVybmFsIHBhcmFncmFwaCBqdXN0aWZpY2F0aW9uIGxvc3QgYSByZXRhaW5lZCBwYWludCBzbGljZWApO2xldCBsPXIuZmlsdGVyKGU9PmU8PW8pLmxlbmd0aCxkPXUuZmluZChlPT5lLnJhbmdlLnN0YXJ0PT09byk7aWYoIWQpdGhyb3cgRXJyb3IoYEludGVybmFsIHBhcmFncmFwaCBqdXN0aWZpY2F0aW9uIGlzIG1pc3NpbmcgcmV0YWluZWQgc2xpY2UgZ2VvbWV0cnlgKTthLnB1c2goey4uLmMsdGV4dDpjLnRleHQuc2xpY2Uoby1jLnJhbmdlLnN0YXJ0LHMtYy5yYW5nZS5zdGFydCkscmFuZ2U6e3N0YXJ0Om8sZW5kOnN9LG9mZnNldDpvPT09Yy5yYW5nZS5zdGFydD97Li4uYy5vZmZzZXQseFB0OmMub2Zmc2V0LnhQdCtsKm59OmQub2Zmc2V0fSl9cmV0dXJue2NsdXN0ZXJzOnUscGFpbnRPcHM6YX19bGV0IGQ9ZS5iYXNlUGFpbnRPcHMubGVuZ3RoPT09MT9lLmJhc2VQYWludE9wc1swXTp2b2lkIDA7aWYoIWQpdGhyb3cgRXJyb3IoYEludGVybmFsIHBhcmFncmFwaCBqdXN0aWZpY2F0aW9uIHJlcXVpcmVzIG9uZSBjb250ZXh0dWFsIHBhaW50IG9wYCk7cmV0dXJuIGkubGVuZ3RoPT09ci5sZW5ndGgtMSYmaS5ldmVyeSgoZSx0KT0+ZT09PXQrMSk/e2NsdXN0ZXJzOnUscGFpbnRPcHM6W3suLi5kLGxldHRlclNwYWNpbmdQdDpkLmxldHRlclNwYWNpbmdQdCtufV19OntjbHVzdGVyczp1LHBhaW50T3BzOmwubWFwKHQ9Pih7Li4uZCx0ZXh0OmUudGV4dC5zbGljZSh0LnJhbmdlLnN0YXJ0LWUucmFuZ2Uuc3RhcnQsdC5yYW5nZS5lbmQtZS5yYW5nZS5zdGFydCkscmFuZ2U6dC5yYW5nZSxvZmZzZXQ6dC5vZmZzZXR9KSl9fWZ1bmN0aW9uIHFrKGUsdCl7cmV0dXJuIGUuZmxhdE1hcChlPT57bGV0IG49ZS50ZXh0LnRyaW1FbmQoKTtpZihuPT09YGB8fG4ubGVuZ3RoPT09ZS50ZXh0Lmxlbmd0aClyZXR1cm5bZV07aWYoZS5zb3VyY2VNYXBwaW5nPT09YGthc2hpZGFgKXJldHVyblt7Li4uZSx0ZXh0Om59XTtsZXQgcj1lLnJhbmdlLnN0YXJ0K24ubGVuZ3RoLGk9dC5maW5kKGU9PmUucmFuZ2Uuc3RhcnQ9PT1yKSx7aW5rQm91bmRzOmEsYmxvY2tBeGlzSW5rQm91bmRzOm8sLi4uc309ZTtyZXR1cm5bey4uLmUsdGV4dDpuLHJhbmdlOnsuLi5lLnJhbmdlLGVuZDpyfX0sey4uLnMsdGV4dDplLnRleHQuc2xpY2Uobi5sZW5ndGgpLHJhbmdlOntzdGFydDpyLGVuZDplLnJhbmdlLmVuZH0sb2Zmc2V0Omk/Lm9mZnNldD8/ZS5vZmZzZXR9XX0pfWZ1bmN0aW9uIEprKGUsdCl7cmV0dXJuIGU9PT12b2lkIDB8fHQ9PT12b2lkIDA/ZT09PXQ6ZS5sZW5ndGg9PT10Lmxlbmd0aCYmZS5ldmVyeSgoZSxuKT0+ZT09PXRbbl0pfWZ1bmN0aW9uIFlrKGUsdCl7cmV0dXJuIGUua2luZD09PWB1bmRlcmxpbmVgJiZlLmtpbmQ9PT10LmtpbmQmJmUuYXV0aG9yZWRTdHlsZT09PXQuYXV0aG9yZWRTdHlsZSYmZS5zdHlsZT09PXQuc3R5bGUmJmUuY29sb3I9PT10LmNvbG9yJiZlLndpZHRoUHQ9PT10LndpZHRoUHQmJmUudG8ueFB0PT09dC5mcm9tLnhQdCYmSmsoZS5kYXNoUGF0dGVyblB0LHQuZGFzaFBhdHRlcm5QdCl9ZnVuY3Rpb24gWGsoZSx0KXtsZXQgbj1NYXRoLm1heChlLmZyb20ueVB0LHQuZnJvbS55UHQpLHI9e3hQdDplLmZyb20ueFB0LHlQdDpufSxpPXt4UHQ6dC50by54UHQseVB0Om59LHtwYXRoOmEsLi4ub309ZTtyZXR1cm57Li4ubyxmcm9tOnIsdG86aSwuLi5lLnN0eWxlPT09YHdhdnlgP3twYXRoOlVPKHIsaSxlLndpZHRoUHQpfTp7fX19ZnVuY3Rpb24gWmsoZSl7bGV0IHQ9W107ZS5mb3JFYWNoKChuLHIpPT57aWYobi5raW5kIT09YHRleHRgJiZuLmtpbmQhPT1gdGFiYHx8IW4uZGVjb3JhdGlvbnMpe3Q9W107cmV0dXJufWxldCBpPVtdLGE9W10sbz1uZXcgU2V0O2ZvcihsZXQgcyBvZiBuLmRlY29yYXRpb25zKXtsZXQgbj10LmZpbHRlcihlPT4hby5oYXMoZSkmJllrKGUuZGVjb3JhdGlvbixzKSkuc29ydCgoZSx0KT0+TWF0aC5hYnMoZS5kZWNvcmF0aW9uLmZyb20ueVB0LXMuZnJvbS55UHQpLU1hdGguYWJzKHQuZGVjb3JhdGlvbi5mcm9tLnlQdC1zLmZyb20ueVB0KSlbMF07aWYobil7by5hZGQobik7bGV0IHQ9ZVtuLnBsYWNlbWVudEluZGV4XTtpZighdHx8dC5raW5kIT09YHRleHRgJiZ0LmtpbmQhPT1gdGFiYHx8IXQuZGVjb3JhdGlvbnMpdGhyb3cgRXJyb3IoYENvbnRpbnVvdXMgZGVjb3JhdGlvbiBvd25lciBsZWZ0IHRoZSByZXRhaW5lZCBsaW5lYCk7bGV0IHI9Wy4uLnQuZGVjb3JhdGlvbnNdLGk9WGsobi5kZWNvcmF0aW9uLHMpO3Jbbi5kZWNvcmF0aW9uSW5kZXhdPWksZVtuLnBsYWNlbWVudEluZGV4XT17Li4udCxkZWNvcmF0aW9uczpyfSxhLnB1c2goey4uLm4sZGVjb3JhdGlvbjppfSl9ZWxzZXtsZXQgZT1pLmxlbmd0aDtpLnB1c2gocyksYS5wdXNoKHtwbGFjZW1lbnRJbmRleDpyLGRlY29yYXRpb25JbmRleDplLGRlY29yYXRpb246c30pfX1lW3JdPXsuLi5uLGRlY29yYXRpb25zOml9LHQ9YX0pfWZ1bmN0aW9uIFFrKGUpe2xldHtsaW5lOnR9PWUsbj10LnNlZ21lbnRzLHI9ZS5iYXNlUnRsfHxQUyhuKSxpPUZTKG4ubWFwKGU9PmUua2luZD09PWB0YWJgP3tpc1RhYjohMH06ZS5raW5kPT09YHRleHRgP3t0ZXh0OmUudGV4dCxydGw6ZS5ydGwsZGlnaXRzQXNBTjplLmRpZ2l0c0FzQU59Ont9KSxlLmJhc2VSdGwpLGE9bi5yZWR1Y2UoKGUsdCk9PmUrVmsodCksMCksbz1lLnBhcmFncmFwaFhQdCt0LnhPZmZzZXRQdCxzPU1hdGgubWluKGUuYXZhaWxhYmxlV2lkdGhQdCx0LmF2YWlsYWJsZVdpZHRoUHQpLGM9ZS5pc0ZpcnN0TGluZT9lLm51bWJlcmluZz9SayhlLm51bWJlcmluZy5ib2R5T2Zmc2V0UHQsYG51bWJlcmluZy5ib2R5T2Zmc2V0UHRgKTplLmZpcnN0TGluZUluZGVudFB0Pz8wOjAsbD1lLmJhc2VSdGw/MDpjLHU9KGUuYmFzZVJ0bD9zLWM6cyktbC1hLGQ9ZS5pc0xhc3RMaW5lfHx0LmVuZHNXaXRoQnJlYWssZj1lLmRpc3BsYXlNYXRoSnVzdGlmaWNhdGlvbj09PXZvaWQgMD9JUyhlLmFsaWdubWVudCxlLmJhc2VSdGwpOkJrKGUuZGlzcGxheU1hdGhKdXN0aWZpY2F0aW9uKSxwPWY9PT1ganVzdGlmeWAmJighZHx8ZS5zdHJldGNoTGFzdExpbmUpLG09cD9VayhlLmFsaWdubWVudCk6bnVsbDtpZihtJiZ1PjApe2xldCBlPWtPKG4ubWFwKGU9PmUua2luZD09PWB0ZXh0YD97dGV4dDplLnRleHR9Ont9KSx1LG0sKGUsdCk9PntsZXQgcj1uW2VdO3JldHVybiByPy5raW5kPT09YHRleHRgP1drKHIsdCk6MH0pO2UmJihuPW4ubWFwKCh0LG4pPT57aWYodC5raW5kIT09YHRleHRgKXJldHVybiB0O2xldCByPWUucGVyU2VnLmdldChuKTtpZighcilyZXR1cm4gdDtsZXQgaT10LmJhc2VQYWludE9wc1swXTtpZighaSl0aHJvdyBFcnJvcihgS2FzaGlkYSBhY3F1aXNpdGlvbiByZXF1aXJlcyBhIGNvbnRleHR1YWwgdGV4dCBwYWludCBvcGVyYXRpb25gKTtyZXR1cm57Li4udCxtZWFzdXJlZFdpZHRoUHQ6dC5tZWFzdXJlZFdpZHRoUHQrci5hZHZhbmNlRGVsdGFQeCxiYXNlUGFpbnRPcHM6W3suLi5pLHRleHQ6ci50ZXh0LHNvdXJjZU1hcHBpbmc6YGthc2hpZGFgfV19fSksYSs9ZS5hcHBsaWVkUHgsdT1lLnJlc2lkdWFsUHgpfWxldCBoPWkub3JkZXIuYXQoLTEpPz8tMSxnPTA7aWYoIXIpe2xldCBlPW4uZmluZEluZGV4KGU9PmUua2luZCE9PWB0ZXh0YHx8L1xTLy50ZXN0KGUudGV4dCkpO2c9ZTwwPzA6ZX1sZXQgXz1udWxsLHY9MCx5PTAsYj1IayhuKTtpZihwKXtsZXQgaT1HayhuTyhiLHUsZyxyP2g6bi5sZW5ndGgsLSh0LmJhc2VsaW5lUHQtdC50b3BQdCkqLjI1LHU+MCxlLmFsaWdubWVudD09PWB0aGFpRGlzdHJpYnV0ZWAmJnU+MCksbik7Xz1pPy5wZXJTZWc/P251bGwsdj1pPy5wZXJHYXA/PzAseT1yTyhpKX1lbHNlIGlmKHU8MCl7bGV0IGU9R2soaU8oYix1LGcscj9oOm4ubGVuZ3RoLHQuYmFzZWxpbmVQdC10LnRvcFB0KSxuKTtfPWU/LnBlclNlZz8/bnVsbCx2PWU/LnBlckdhcD8/MCx5PXJPKGUpfWxldCB4PWEreSxTPXUteSxDPWY9PT1gcmlnaHRgP1M6Zj09PWBjZW50ZXJgP1MvMjpmPT09YGp1c3RpZnlgJiZlLmJhc2VSdGwmJiFwP1M6MCx3PW8rbCxUPWUuZGVjaW1hbEF1dG9UYWJQdD09PXZvaWQgMD9DOk1hdGgubWF4KDAsZS5wYXJhZ3JhcGhYUHQrZS5kZWNpbWFsQXV0b1RhYlB0LXgtdyksRT13K1QsRD1bXTtmb3IobGV0IGUgb2YgaS5vcmRlcil7bGV0IHI9bltlXTtpZighciljb250aW51ZTtsZXQgYT1fPy5nZXQoZSksbz1hPy5pbnRlcm5hbFN0cmV0Y2g/PzAscz1WayhyKStvO2lmKHIua2luZD09PWB0YWJgKXtsZXQgZT17eFB0OkUseVB0OnQudG9wUHQsd2lkdGhQdDpyLm1lYXN1cmVkV2lkdGhQdCxoZWlnaHRQdDp0LmFkdmFuY2VQdH0sbj1yLnVuZGVybGluZT9XTyh7b3JpZ2luOnt4UHQ6RSx5UHQ6dC5iYXNlbGluZVB0fSxhZHZhbmNlUHQ6ci5tZWFzdXJlZFdpZHRoUHQsYmFzZTpyLnVuZGVybGluZS5iYXNlLGNvbG9yOnIudW5kZXJsaW5lLmNvbG9yLHVuZGVybGluZTpyLnVuZGVybGluZX0pOnZvaWQgMDtELnB1c2goe2tpbmQ6YHRhYmAscmFuZ2U6ci5yYW5nZSxib3VuZHM6ZSxhZHZhbmNlUHQ6ci5tZWFzdXJlZFdpZHRoUHQsbGVhZGVyOnIubGVhZGVyLC4uLm4/Lmxlbmd0aD97ZGVjb3JhdGlvbnM6bn06e30sLi4uci5sZWFkZXI9PT1gbm9uZWA/e306ci5sZWFkZXJTaGFwZT97bGVhZGVyR2x5cGhzOkxPKHtpbnRlcnZhbDplLGJhc2VsaW5lUHQ6dC5iYXNlbGluZVB0LC4uLnIubGVhZGVyU2hhcGV9KX06e319KX1lbHNlIGlmKHIua2luZD09PWByZXNvdXJjZWApRC5wdXNoKHtraW5kOmByZXNvdXJjZWAscmFuZ2U6ci5yYW5nZSwuLi5yLnNvdXJjZVJ1bkluZGV4PT09dm9pZCAwP3t9Ontzb3VyY2VSdW5JbmRleDpyLnNvdXJjZVJ1bkluZGV4fSxyZXNvdXJjZUtleTpyLnJlc291cmNlS2V5LHJlc291cmNlS2luZDpyLnJlc291cmNlS2luZCwuLi5yLm9yaWVudGF0aW9uP3tvcmllbnRhdGlvbjpyLm9yaWVudGF0aW9ufTp7fSxib3VuZHM6e3hQdDpFLHlQdDp0LmJhc2VsaW5lUHQrci50b3BPZmZzZXRQdCx3aWR0aFB0OnIud2lkdGhQdCxoZWlnaHRQdDpyLmhlaWdodFB0fSxhZHZhbmNlUHQ6ci5tZWFzdXJlZFdpZHRoUHR9KTtlbHNlIGlmKHIua2luZD09PWB1bmF2YWlsYWJsZS1yZXNvdXJjZWB8fHIua2luZD09PWBpbmxpbmUtZHJhd2luZ2ApRC5wdXNoKHtraW5kOmBkcmF3aW5nYCxyYW5nZTpyLnJhbmdlLGRyYXdpbmdJZDpyLmRyYXdpbmdJZCxib3VuZHM6e3hQdDpFLHlQdDp0LmJhc2VsaW5lUHQrci50b3BPZmZzZXRQdCx3aWR0aFB0OnIud2lkdGhQdCxoZWlnaHRQdDpyLmhlaWdodFB0fSxhZHZhbmNlUHQ6ci5tZWFzdXJlZFdpZHRoUHR9KTtlbHNlIGlmKHIua2luZD09PWBhbmNob3ItaG9zdGApRC5wdXNoKHtraW5kOmBhbmNob3ItaG9zdGAscmFuZ2U6ci5yYW5nZSxib3VuZHM6e3hQdDpFLHlQdDp0LnRvcFB0LHdpZHRoUHQ6MCxoZWlnaHRQdDp0LmFkdmFuY2VQdH0sYmFzZWxpbmVQdDp0LmJhc2VsaW5lUHQsLi4uci5zb3VyY2VNZXRyaWNzP3tzb3VyY2VNZXRyaWNzOnIuc291cmNlTWV0cmljc306e30sLi4uci5hbmNob3JPY2N1cnJlbmNlSWQ/e2FuY2hvck9jY3VycmVuY2VJZDpyLmFuY2hvck9jY3VycmVuY2VJZH06e319KTtlbHNle2xldHttZWFzdXJlZFdpZHRoUHQ6bixicmVha0JlZm9yZTpvLHJ0bDpjLGRpZ2l0c0FzQU46bCxmaXhlZFBpdGNoOnUsdGV4dExheW91dFNlcnZpY2U6ZCx0ZXh0U2hhcGVSZXF1ZXN0OmYscmV0YWluZWRHZW9tZXRyeTpwLGRpcmVjdGlvbjptLC4uLmh9PXIsZz1LayhyLGEsdiksXz1pLnJ0bFtlXT9gcnRsYDpgbHRyYCx5PV89PT1gcnRsYD9xayhnLnBhaW50T3BzLGcuY2x1c3RlcnMpOmcucGFpbnRPcHMsYj1yLnRleHQudHJpbUVuZCgpLmxlbmd0aCx4PV89PT1gcnRsYD8oaC5maXRUZXh0Py50cmFpbGluZ1BhZFB0Pz8wKStyLmNsdXN0ZXJzLmZpbHRlcihlPT5lLnJhbmdlLnN0YXJ0Pj1yLnJhbmdlLnN0YXJ0K2IpLnJlZHVjZSgoZSx0KT0+ZSt0LmFkdmFuY2VQdCwwKTowLFM9YT8udHJhaWxpbmdHYXA/djowLEM9e3hQdDpFK3gseVB0OnQuYmFzZWxpbmVQdH0sdz1nLnBhaW50T3BzWzBdPy5vZmZzZXQueVB0Pz8wLFQ9e3hQdDpFLHlQdDp0LmJhc2VsaW5lUHQrd30sTz1wP1dPKHtvcmlnaW46VCxhZHZhbmNlUHQ6cytTLGJhc2U6cC5iYXNlLGNvbG9yOnhBKGguY29sb3IpLC4uLnAudW5kZXJsaW5lP3t1bmRlcmxpbmU6cC51bmRlcmxpbmV9Ont9LC4uLnAuc3RyaWtlP3tzdHJpa2U6cC5zdHJpa2V9Ont9fSk6aC5kZWNvcmF0aW9ucyxrPXA/LmVtcGhhc2lzP3thdXRob3JlZDpwLmVtcGhhc2lzLmF1dGhvcmVkLGdseXBoczpHTyh7YXV0aG9yZWQ6cC5lbXBoYXNpcy5hdXRob3JlZCxnbHlwaDpwLmVtcGhhc2lzLmdseXBoLG9yaWdpbjp7eFB0OkMueFB0LHlQdDp0LmJhc2VsaW5lUHQrd30sY2x1c3RlcnM6Zy5jbHVzdGVycyxjbHVzdGVySW5rOnAuZW1waGFzaXMuY2x1c3RlckluayxtYXJrOnAuZW1waGFzaXMubWFyayxzY2FsZVg6ci5iYXNlUGFpbnRPcHNbMF0/LnNjYWxlWD8/MX0pfTp2b2lkIDAsQT17Li4uaCxraW5kOmB0ZXh0YCxvcmlnaW46Qyxib3VuZHM6e3hQdDpFLHlQdDp0LnRvcFB0LHdpZHRoUHQ6cyxoZWlnaHRQdDp0LmFkdmFuY2VQdH0sYWR2YW5jZVB0OnMsY2x1c3RlcnM6Zy5jbHVzdGVycyxwYWludE9wczp5Lm1hcChlPT4oey4uLmUsZGlyZWN0aW9uOl99KSksZGVjb3JhdGlvbnM6TywuLi5rP3tlbXBoYXNpczprfTp7fSxkaXJlY3Rpb246XywuLi5TPT09MD97fTp7b3duZWRUcmFpbGluZ1NsYWNrUHQ6U30sLi4uaC5oaWdobGlnaHR8fGguYmFja2dyb3VuZD97aGlnaGxpZ2h0RnJhZ21lbnRzOlt7cmVjdDpoLmhpZ2hsaWdodCYmcD97eFB0OkUseVB0OnQuYmFzZWxpbmVQdCt3LXAuYmFzZS5hc2NlbnRQdCx3aWR0aFB0OnMrUyxoZWlnaHRQdDpwLmJhc2UuYXNjZW50UHQrcC5iYXNlLmRlc2NlbnRQdH06e3hQdDpFLHlQdDp0LnRvcFB0LHdpZHRoUHQ6cytTLGhlaWdodFB0OnQuYWR2YW5jZVB0fSxjb2xvcjpoLmhpZ2hsaWdodD8/aC5iYWNrZ3JvdW5kfV19Ont9LC4uLmgucnVieT97cnVieTp7Li4uaC5ydWJ5LHBhaW50T3BzOmgucnVieS5wYWludE9wcy5tYXAoZT0+KHsuLi5lLG9yaWdpbjp7eFB0OmUub3JpZ2luLnhQdCtFKyhzLXIubWVhc3VyZWRXaWR0aFB0KS8yLHlQdDplLm9yaWdpbi55UHQrdC5iYXNlbGluZVB0fX0pKX19Ont9fTtELnB1c2goQSl9RSs9cyxhPy50cmFpbGluZ0dhcCYmKEUrPXYpfWZvcihsZXQgZT0wO2U8RC5sZW5ndGg7KXtsZXQgdD1EW2VdO2lmKHQ/LmtpbmQhPT1gdGV4dGB8fCF0LnJ1bkJvcmRlcil7ZSs9MTtjb250aW51ZX1sZXQgbj1lKzE7Zm9yKDtuPEQubGVuZ3RoOyl7bGV0IGU9RFtuXTtpZihlPy5raW5kIT09YHRleHRgfHwhZS5ydW5Cb3JkZXIpYnJlYWs7bis9MX1sZXQgcj1xTyhELnNsaWNlKGUsbikubWFwKGU9Pih7Ym91bmRzOmUuYm91bmRzLHRyYWlsaW5nU2xhY2tQdDplLm93bmVkVHJhaWxpbmdTbGFja1B0Pz8wLGJvcmRlcjplLnJ1bkJvcmRlcn0pKSk7RFtlXT17Li4udCxydW5Cb3JkZXJGcmFnbWVudHM6cn0sZT1ufXJldHVybiBaayhEKSxGZyh7cmFuZ2U6dC5yYW5nZSxib3VuZHM6e3hQdDp3K1QseVB0OnQudG9wUHQsd2lkdGhQdDp4LGhlaWdodFB0OnQuYWR2YW5jZVB0fSxiYXNlbGluZVB0OnQuYmFzZWxpbmVQdCxhZHZhbmNlUHQ6dC5hZHZhbmNlUHQscGxhY2VtZW50czpEfSl9ZnVuY3Rpb24gJGsoZSl7bGV0IHQ9ZS5jb250aW51YXRpb24sbj10Py5saW5lU3RhcnQ/PzAscj10Py5saW5lRW5kPz9lLmxpbmVzLmxlbmd0aDtpZihuPDB8fHI8bnx8cj5lLmxpbmVzLmxlbmd0aCl0aHJvdyBSYW5nZUVycm9yKGBQYXJhZ3JhcGggY29udGludWF0aW9uIGxpbmUgcmFuZ2UgaXMgb3V0c2lkZSB0aGUgcmV0YWluZWQgbGluZXNgKTtsZXQgaT10Py5jb250aW51ZXNGcm9tUHJldmlvdXM/MDplLnNwYWNpbmcuYmVmb3JlUHQ7Zm9yKGxldCBhPW47YTxyO2ErPTEpe2xldCByPWUubGluZXNbYV07aWYocil7aWYoYT09PTAmJiF0Py5jb250aW51ZXNGcm9tUHJldmlvdXMpaSs9TWF0aC5tYXgoMCxyLmJvdW5kcy55UHQtKGUuZmxvd0JvdW5kcy55UHQrZS5zcGFjaW5nLmJlZm9yZVB0KSk7ZWxzZSBpZihhPm4pe2xldCB0PWUubGluZXNbYS0xXTtpKz1NYXRoLm1heCgwLHIuYm91bmRzLnlQdC0oKHQ/LmJvdW5kcy55UHQ/P3IuYm91bmRzLnlQdCkrKHQ/LmFkdmFuY2VQdD8/MCkpKX1pKz1SayhyLmFkdmFuY2VQdCxgbGluZS5hZHZhbmNlUHRgKX19cmV0dXJuIGUubGluZXMubGVuZ3RoPT09MCYmZS5wYXJhZ3JhcGhNYXJrJiYoaSs9UmsoZS5wYXJhZ3JhcGhNYXJrLmJvdW5kcy5oZWlnaHRQdCxgcGFyYWdyYXBoTWFyay5oZWlnaHRQdGApKSx0Py5jb250aW51ZXNPbk5leHR8fChpKz1lLnNwYWNpbmcuYWZ0ZXJQdCksaX1mdW5jdGlvbiBlQShlKXtsZXQgdD1lLmNvbnRpbnVhdGlvbj8ubGluZVN0YXJ0Pz8wLG49ZS5jb250aW51YXRpb24/LmxpbmVFbmQ/P2UubGluZXMubGVuZ3RoLHI9ZS5saW5lcy5zbGljZSh0LG4pLGk9ZS5jb250aW51YXRpb24/JGsoZSk6UmsoZS5mbG93Qm91bmRzLmhlaWdodFB0LGBmbG93Qm91bmRzLmhlaWdodFB0YCk7cmV0dXJuIEZnKHtraW5kOmBwYXJhZ3JhcGhgLGlkOmUuaWQsc291cmNlOmUuc291cmNlLC4uLmUucGFyYWdyYXBoSWQ9PT12b2lkIDA/e306e3BhcmFncmFwaElkOmUucGFyYWdyYXBoSWR9LGZsb3dEb21haW5JZDplLmZsb3dEb21haW5JZCxvcmRpbmFyeUZsb3c6ZS5vcmRpbmFyeUZsb3csLi4uZS5zdHlsZUlkPT09dm9pZCAwP3t9OntzdHlsZUlkOmUuc3R5bGVJZH0sLi4uZS5ib29rbWFya1N0YXJ0cz8ubGVuZ3RoP3tib29rbWFya1N0YXJ0czplLmJvb2ttYXJrU3RhcnRzfTp7fSxmbG93Qm91bmRzOnsuLi5lLmZsb3dCb3VuZHMsaGVpZ2h0UHQ6aX0saW5rQm91bmRzOmUuaW5rQm91bmRzLC4uLmUuY2xpcEJvdW5kcz97Y2xpcEJvdW5kczplLmNsaXBCb3VuZHN9Ont9LGFkdmFuY2VQdDppLHNwYWNpbmc6ZS5zcGFjaW5nLGNvbnRleHR1YWxTcGFjaW5nOmUuY29udGV4dHVhbFNwYWNpbmc/PyExLGxpbmVzOnIsYm9yZGVyczplLmJvcmRlcnMsLi4uZS5zaGFkaW5nP3tzaGFkaW5nOmUuc2hhZGluZ306e30scmVzb3VyY2VzOmUucmVzb3VyY2VzLGRyYXdpbmdzOmUuZHJhd2luZ3MsdGV4dEJveGVzOmUudGV4dEJveGVzLGV2ZW50czplLmV2ZW50cyxleGNsdXNpb25zOmUuZXhjbHVzaW9ucywuLi5lLmNlbGxDb250YWlubWVudEJvdW5kcz97Y2VsbENvbnRhaW5tZW50Qm91bmRzOmUuY2VsbENvbnRhaW5tZW50Qm91bmRzfTp7fSwuLi5lLmFuY2hvckNvbGxpc2lvbnM/Lmxlbmd0aD97YW5jaG9yQ29sbGlzaW9uczplLmFuY2hvckNvbGxpc2lvbnN9Ont9LC4uLmUuYW5jaG9yRnJhbWVzP3thbmNob3JGcmFtZXM6ZS5hbmNob3JGcmFtZXN9Ont9LC4uLmUucGFyYWdyYXBoTWFyaz97cGFyYWdyYXBoTWFyazplLnBhcmFncmFwaE1hcmt9Ont9LC4uLmUuY29udGludWF0aW9uP3tjb250aW51YXRpb246ZS5jb250aW51YXRpb259Ont9fSl9ZnVuY3Rpb24gdEEoZSx0KXtyZXR1cm57Li4uZSxwYXRoOlsuLi5lLnBhdGgsdF19fWZ1bmN0aW9uIG5BKGUsdCl7aWYoZS5zdGF0dXM9PT1gcGxhbm5lZGApcmV0dXJuIE9iamVjdC5mcmVlemUoW10pO2xldCBuPU9iamVjdC5mcmVlemUoey4uLnQscGF0aDpPYmplY3QuZnJlZXplKFsuLi50LnBhdGhdKX0pO3JldHVybiBPYmplY3QuZnJlZXplKGUuZGlhZ25vc3RpY3MubWFwKGU9Pk9iamVjdC5mcmVlemUoey4uLmUsc291cmNlOm59KSkpfWZ1bmN0aW9uIHJBKGUpe3JldHVybiBNZyhlKX1mdW5jdGlvbiBpQShlLHQpe3JldHVybiBEZyhgdW5hdmFpbGFibGUtZHJhd2luZ2AsdEEoZSx0KSl9ZnVuY3Rpb24gYUEoZSx0KXtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Y29kZTpgTUlTU0lOR19SRVNPVVJDRWAsc2V2ZXJpdHk6YHdhcm5pbmdgLHNvdXJjZTpPYmplY3QuZnJlZXplKHsuLi50LHBhdGg6T2JqZWN0LmZyZWV6ZShbLi4udC5wYXRoXSl9KSxtZXNzYWdlOmBEcmF3aW5nICR7ZX0gcmVzb3VyY2UgaXMgdW5hdmFpbGFibGVgfSl9ZnVuY3Rpb24gb0EoZSl7cmV0dXJuIEVrKGUpfHwoL15kYXRlJC9pLnRlc3QoZS5maWVsZFR5cGUpP2BkYXRlYDovXnRpbWUkL2kudGVzdChlLmZpZWxkVHlwZSk/YHRpbWVgOmBkb2N1bWVudGApfWZ1bmN0aW9uIHNBKGUpe3JldHVybiBlLnNvdXJjZVJ1bkluZGV4fWZ1bmN0aW9uIGNBKGUpe2lmKCFlLnRleHRMYXlvdXRTZXJ2aWNlfHwhZS50ZXh0U2hhcGVSZXF1ZXN0KXJldHVybjtsZXQgdD1lLnRleHRMYXlvdXRTZXJ2aWNlLnNoYXBlKHsuLi5lLnRleHRTaGFwZVJlcXVlc3QsdGV4dDplLnRleHQsbWVhc3VyZTohMH0pO3JldHVybnthc2NlbnRQdDp0LmFzY2VudFB0LGRlc2NlbnRQdDp0LmRlc2NlbnRQdH19Y29uc3QgbEE9T2JqZWN0LmZyZWV6ZSh7eWVsbG93OmAjRkZGRjAwYCxjeWFuOmAjMDBGRkZGYCxncmVlbjpgIzAwRkYwMGAsbWFnZW50YTpgI0ZGMDBGRmAsYmx1ZTpgIzAwMDBGRmAscmVkOmAjRkYwMDAwYCxkYXJrQmx1ZTpgIzAwMDA4MGAsZGFya0N5YW46YCMwMDgwODBgLGRhcmtHcmVlbjpgIzAwODAwMGAsZGFya01hZ2VudGE6YCM4MDAwODBgLGRhcmtSZWQ6YCM4MDAwMDBgLGRhcmtZZWxsb3c6YCM4MDgwMDBgLGRhcmtHcmF5OmAjODA4MDgwYCxsaWdodEdyYXk6YCNDMEMwQzBgLGJsYWNrOmAjMDAwMDAwYCx3aGl0ZTpgI0ZGRkZGRmB9KTtmdW5jdGlvbiB1QShlKXtyZXR1cm4gZS5zdGFydHNXaXRoKGAjYCk/ZTpsQVtlXT8/YCNGRkZGMDBgfWZ1bmN0aW9uIGRBKGUpe2xldCB0PW54KGUudmVydEFsaWduLGUuZm9udFNpemUpKyhlLmxpbmVSZWxhdGl2ZVBvc2l0aW9uPz9lLnBvc2l0aW9uPz8wKTtyZXR1cm4gdD09PTA/MDotdH1mdW5jdGlvbiBmQShlLHQsbixyLGksYSxvKXtsZXQgcz1zQShlKSxjPXM9PT12b2lkIDA/dm9pZCAwOnQucnVuc1tzXSxsPXprKGMpO2lmKGUubWV0cmljT25seSl7bGV0IHQ9Y0EoZSk7cmV0dXJue2tpbmQ6YGFuY2hvci1ob3N0YCxyYW5nZTp7c3RhcnQ6bixlbmQ6bn0sYm91bmRzOnt4UHQ6cix5UHQ6YSx3aWR0aFB0OjAsaGVpZ2h0UHQ6b30sYmFzZWxpbmVQdDppLC4uLnQ/e3NvdXJjZU1ldHJpY3M6dH06e319fWxldCB1PWUuY29sb3I/e2tpbmQ6YGV4cGxpY2l0YCxjb2xvcjpgIyR7ZS5jb2xvcn1gfTplLmNvbG9yQXV0bz97a2luZDpgYXV0b2AsLi4uZS5iYWNrZ3JvdW5kP3tiYWNrZ3JvdW5kOmAjJHtlLmJhY2tncm91bmR9YH06e319OntraW5kOmBkZWZhdWx0YH0sZD1lLmZvbnRSb3V0ZT8/dGUoZS5mb250RmFtaWx5P2AiJHtlLmZvbnRGYW1pbHkucmVwbGFjZUFsbChgImAsYFxcImApfSJgOmBzYW5zLXNlcmlmYCxlLmZvbnRGYW1pbHk/YG5hdGl2ZWA6YGdlbmVyaWNgKSxmPWUucnVieSYmZS50ZXh0TGF5b3V0U2VydmljZSYmZS50ZXh0U2hhcGVSZXF1ZXN0P2UudGV4dExheW91dFNlcnZpY2Uuc2hhcGUoey4uLmUudGV4dFNoYXBlUmVxdWVzdCx0ZXh0OmUudGV4dCxtZWFzdXJlOiEwfSk6dm9pZCAwLHA9ZS5ydWJ5JiZlLnRleHRMYXlvdXRTZXJ2aWNlJiZlLnRleHRTaGFwZVJlcXVlc3Q/ZS50ZXh0TGF5b3V0U2VydmljZS5zaGFwZSh7Li4uZS50ZXh0U2hhcGVSZXF1ZXN0LHRleHQ6ZS5ydWJ5LnRleHQsZm9udFNpemVQdDplLnJ1YnkuZm9udFNpemVQdCxtZWFzdXJlOiEwfSk6dm9pZCAwLG09ZS5ydWJ5JiZwPyhwLmNsdXN0ZXJzPz9bXSkubWFwKHQ9PntsZXQgbj1wLnNwYW5zLmZpbmQoZT0+ZS5zdGFydDw9dC5yYW5nZS5zdGFydCYmZS5lbmQ+PXQucmFuZ2UuZW5kKT8/cC5zcGFuc1swXTtpZighbil0aHJvdyBFcnJvcihgUnVieSBzaGFwaW5nIHByb2R1Y2VkIG5vIHNlbGVjdGVkLWZhY2Ugc3BhbmApO3JldHVybnt0ZXh0OmUucnVieS50ZXh0LnNsaWNlKHQucmFuZ2Uuc3RhcnQsdC5yYW5nZS5lbmQpLG9mZnNldFB0OnQub2Zmc2V0UHQsZm9udFJvdXRlOm4uZm9udFJvdXRlLGZvbnRTaXplUHQ6ZS5ydWJ5LmZvbnRTaXplUHQsZm9udFdlaWdodDpuLmZvbnQud2VpZ2h0LGZvbnRTdHlsZTpuLmZvbnQuc3R5bGUsY29sb3I6dX19KTpbXSxoPWw/LnJ1Ynk/LnJhaXNlUHQuc3RhdHVzPT09YHZhbGlkYD9sLnJ1YnkucmFpc2VQdC52YWx1ZT8/dm9pZCAwOmUucnVieT8uaHBzUmFpc2VQdCxnPWUucnVieSYmcD9STyh7YmFzZU9yaWdpbjp7eFB0OjAseVB0OjB9LGJhc2VBZHZhbmNlUHQ6ZS5tZWFzdXJlZFdpZHRoLGd1aWRlQWR2YW5jZVB0OnAuYWR2YW5jZVB0LC4uLmg9PT12b2lkIDA/e306e3JhaXNlUHQ6aH0sLi4uZj8uaW5rQm91bmRzJiZwLmlua0JvdW5kcz97YmFzZUlua1RvcFB0Oi1mLmlua0JvdW5kcy5hc2NlbnRQdCxndWlkZUlua0JvdHRvbUZyb21CYXNlbGluZVB0OnAuaW5rQm91bmRzLmRlc2NlbnRQdH06e30sc3BhbnM6bX0pOltdLF89ZEEoZSk7cmV0dXJue2tpbmQ6YHRleHRgLHRleHQ6ZS50ZXh0LC4uLnM9PT12b2lkIDA/e306e3NvdXJjZVJ1bkluZGV4OnN9LC4uLmM/LnR5cGU9PT1gZmllbGRgP3tyb2xlOmBmaWVsZC1yZXN1bHRgLGRlcGVuZGVuY3k6b0EoYyl9Ont9LC4uLmM/LnR5cGU9PT1gdGV4dGAmJihjLm5vdGVSZWY/LmtpbmQ9PT1gZm9vdG5vdGVgfHxjLm5vdGVSZWY/LmtpbmQ9PT1gZW5kbm90ZWApP3tub3RlUmVmZXJlbmNlOntraW5kOmMubm90ZVJlZi5raW5kLGlkOmMubm90ZVJlZi5pZH19Ont9LHJhbmdlOntzdGFydDpuLGVuZDpuK2UudGV4dC5sZW5ndGh9LG9yaWdpbjp7eFB0OnIseVB0OmkrX30sYm91bmRzOnt4UHQ6cix5UHQ6YSx3aWR0aFB0OmUubWVhc3VyZWRXaWR0aCxoZWlnaHRQdDpvfSxhZHZhbmNlUHQ6ZS5tZWFzdXJlZFdpZHRoLGNsdXN0ZXJzOlt7cmFuZ2U6e3N0YXJ0Om4sZW5kOm4rZS50ZXh0Lmxlbmd0aH0sb2Zmc2V0Ont4UHQ6MCx5UHQ6MH0sYWR2YW5jZVB0OmUubWVhc3VyZWRXaWR0aH1dLGNvbG9yOnUsZm9udFJvdXRlOmQsZm9udFNpemVQdDp3dihlLDEpLGZvbnRXZWlnaHQ6ZS5ib2xkPzcwMDo0MDAsZm9udFN0eWxlOmUuaXRhbGljP2BpdGFsaWNgOmBub3JtYWxgLGRpcmVjdGlvbjplLnJ0bD9gcnRsYDpgbHRyYCwuLi5lLnZlcnRpY2FsUnVuP3t3cml0aW5nTW9kZTpgdmVydGljYWwtcmxgfTp7fSwuLi5lLmNoYXJTcGFjaW5nPT09dm9pZCAwP3t9OntjaGFyYWN0ZXJTcGFjaW5nUHQ6ZS5jaGFyU3BhY2luZ30sLi4uZS5jaGFyU2NhbGU9PT12b2lkIDA/e306e2NoYXJhY3RlclNjYWxlOmUuY2hhclNjYWxlfSwuLi5lLmZpdFRleHRSZWdpb25JbmRleD09PXZvaWQgMD97fTp7Zml0VGV4dDp7cmVnaW9uSW5kZXg6ZS5maXRUZXh0UmVnaW9uSW5kZXgscGVyR2FwUHQ6ZS5maXRUZXh0UGVyR2FwUHg/PzAsdHJhaWxpbmdQYWRQdDplLmZpdFRleHRUcmFpbGluZ1BhZFB4Pz8wfX0sLi4uZS5rZXJuaW5nPT09dm9pZCAwP3t9OntrZXJuaW5nOmUuZm9udFNpemU+PWUua2VybmluZ30sLi4uZS5wb3NpdGlvbj09PXZvaWQgMD97fTp7cG9zaXRpb25QdDplLnBvc2l0aW9ufSwuLi5lLnZlcnRBbGlnbj97dmVydGljYWxBbGlnbjplLnZlcnRBbGlnbn06e30sLi4uZS50YXRlQ2h1WW9rbz97dGF0ZUNodVlva286ITB9Ont9LC4uLmUudGF0ZUNodVlva29Db21wcmVzcz97dGF0ZUNodVlva29Db21wcmVzczohMH06e30sLi4uZS5ydWJ5JiZwP3tydWJ5Ont0ZXh0OmUucnVieS50ZXh0LGFkdmFuY2VQdDpwLmFkdmFuY2VQdCxhdXRob3JlZDp7Li4ubD8ucnVieT8uYWxpZ24uc3RhdHVzPT09YHZhbGlkYCYmbC5ydWJ5LmFsaWduLnZhbHVlP3thbGlnbjpsLnJ1YnkuYWxpZ24udmFsdWV9Ont9LC4uLmw/LnJ1Ynk/LmJhc2VGb250U2l6ZVB0LnN0YXR1cz09PWB2YWxpZGAmJmwucnVieS5iYXNlRm9udFNpemVQdC52YWx1ZSE9PW51bGw/e2Jhc2VGb250U2l6ZVB0OmwucnVieS5iYXNlRm9udFNpemVQdC52YWx1ZX06e30sLi4uaD09PXZvaWQgMD97fTp7cmFpc2VQdDpofSwuLi5sPy5ydWJ5Py5sYW5ndWFnZS5zdGF0dXM9PT1gdmFsaWRgJiZsLnJ1YnkubGFuZ3VhZ2UudmFsdWU/e2xhbmd1YWdlOmwucnVieS5sYW5ndWFnZS52YWx1ZX06e319LHBhaW50T3BzOmd9fTp7fSwuLi5lLmVtcGhhc2lzTWFyaz97ZW1waGFzaXNNYXJrOmUuZW1waGFzaXNNYXJrfTp7fSwuLi5lLmhpZ2hsaWdodD97aGlnaGxpZ2h0OnVBKGUuaGlnaGxpZ2h0KX06e30sLi4uZS5iYWNrZ3JvdW5kP3tiYWNrZ3JvdW5kOmAjJHtlLmJhY2tncm91bmR9YH06e30sLi4uZS5ib3JkZXI/e3J1bkJvcmRlcjp7dmFsOmw/LmJvcmRlcj8udmFsLnZhbHVlPz9lLmJvcmRlci5zdHlsZSxjb2xvcjplLmJvcmRlci5jb2xvcj9gIyR7ZS5ib3JkZXIuY29sb3J9YDpgIzAwMDAwMGAsd2lkdGhQdDplLmJvcmRlci53aWR0aCxzcGFjZVB0OmUuYm9yZGVyLnNwYWNlPz8wLC4uLmw/LmJvcmRlcj8udGhlbWVDb2xvci52YWx1ZT97dGhlbWVDb2xvcjpsLmJvcmRlci50aGVtZUNvbG9yLnZhbHVlfTp7fSwuLi5sPy5ib3JkZXI/LnRoZW1lVGludC52YWx1ZT97dGhlbWVUaW50OmwuYm9yZGVyLnRoZW1lVGludC52YWx1ZX06e30sLi4ubD8uYm9yZGVyPy50aGVtZVNoYWRlLnZhbHVlP3t0aGVtZVNoYWRlOmwuYm9yZGVyLnRoZW1lU2hhZGUudmFsdWV9Ont9LC4uLmw/LmJvcmRlcj8uc2hhZG93LnN0YXR1cz09PWB2YWxpZGAmJmwuYm9yZGVyLnNoYWRvdy52YWx1ZSE9PW51bGw/e3NoYWRvdzpsLmJvcmRlci5zaGFkb3cudmFsdWV9Ont9LC4uLmw/LmJvcmRlcj8uZnJhbWUuc3RhdHVzPT09YHZhbGlkYCYmbC5ib3JkZXIuZnJhbWUudmFsdWUhPT1udWxsP3tmcmFtZTpsLmJvcmRlci5mcmFtZS52YWx1ZX06e319fTp7fSwuLi5lLnJldmlzaW9uP3tyZXZpc2lvbjplLnJldmlzaW9ufTp7fSx0eXBvZ3JhcGh5OntjYXBzOmw/LmNhcHM/PyExLHNtYWxsQ2FwczpsPy5zbWFsbENhcHM/P2Uuc21hbGxDYXBzPT09ITAsc3RyaWtlOmw/LnN0cmlrZT8/ZS5zdHJpa2V0aHJvdWdoLGRvdWJsZVN0cmlrZTpsPy5kb3VibGVTdHJpa2U/P2UuZG91YmxlU3RyaWtldGhyb3VnaD09PSEwLHZlcnRpY2FsQWxpZ246bD8udmVydGljYWxBbGlnbj8/e3N0YXR1czplLnZlcnRBbGlnbj9gdmFsaWRgOmBtaXNzaW5nYCxyYXc6ZS52ZXJ0QWxpZ24/P251bGwsdmFsdWU6ZS52ZXJ0QWxpZ24/P251bGx9LHBvc2l0aW9uUHQ6bD8ucG9zaXRpb25QdD8/e3N0YXR1czplLnBvc2l0aW9uPT09dm9pZCAwP2BtaXNzaW5nYDpgdmFsaWRgLHJhdzplLnBvc2l0aW9uPT09dm9pZCAwP251bGw6U3RyaW5nKGUucG9zaXRpb24qMiksdmFsdWU6ZS5wb3NpdGlvbj8/bnVsbH0sZW1waGFzaXM6bD8uZW1waGFzaXM/P3tzdGF0dXM6ZS5lbXBoYXNpc01hcms/YHZhbGlkYDpgbWlzc2luZ2AscmF3OmUuZW1waGFzaXNNYXJrPz9udWxsLHZhbHVlOmUuZW1waGFzaXNNYXJrPz9udWxsfSwuLi5sPy51bmRlcmxpbmU/e3VuZGVybGluZTpsLnVuZGVybGluZX06e319LGRlY29yYXRpb25zOltdLHBhaW50T3BzOlt7dGV4dDplLnRleHQscmFuZ2U6e3N0YXJ0Om4sZW5kOm4rZS50ZXh0Lmxlbmd0aH0sb2Zmc2V0Ont4UHQ6MCx5UHQ6X30sbGV0dGVyU3BhY2luZ1B0OlJ4KGUpLHNjYWxlWDplLmNoYXJTY2FsZT8/MSxkaXJlY3Rpb246ZS5ydGw/YHJ0bGA6YGx0cmAsa2VybmluZzplLmtlcm5pbmc9PT12b2lkIDA/YGF1dG9gOmUuZm9udFNpemU+PWUua2VybmluZz9gbm9ybWFsYDpgbm9uZWAsd3JpdGluZ01vZGU6ZS52ZXJ0aWNhbFJ1bj9gdmVydGljYWwtcmxgOmBob3Jpem9udGFsLXRiYH1dLC4uLmUuaHlwZXJsaW5rP3toeXBlcmxpbms6ZS5oeXBlcmxpbmt9Ont9fX1mdW5jdGlvbiBwQShlLHQpe2xldCBuPWUubGF5b3V0LHI9bi52aXNpYmxlQXNjZW50Pz9uLmFzY2VudCxpPXIrKG4udmlzaWJsZURlc2NlbnQ/P24uZGVzY2VudCksYT10LmxpbmVTcGFjaW5nPy5ydWxlPT09YGF1dG9gJiYhdC5oYXNSdWJ5JiYhdC5saW5lR3JpZC5hY3RpdmUsbz1hJiYodC5saW5lU3BhY2luZz8udmFsdWU/PzEpPDEscz1hJiYhbz9NYXRoLm1heChpLG4udmlzaWJsZUludGVuZGVkU2luZ2xlPz9uLmludGVuZGVkU2luZ2xlKTplLmFkdmFuY2VQdDtyZXR1cm4gZS50b3BZUHQrKHMtaSkvMityfWZ1bmN0aW9uIG1BKGUsdCxuKXtsZXQgcj1lLm51bWJlcmluZztpZighcilyZXR1cm47aWYodC5udW1iZXJpbmdNYXJrZXJHZW9tZXRyeSlyZXR1cm4gdC5udW1iZXJpbmdNYXJrZXJHZW9tZXRyeTtsZXQgaT1lLm51bWJlcmluZ01hcmtlclNoYXBlSW5wdXQsYT1uLmVudmlyb25tZW50LmxheW91dFNlcnZpY2VzPy50ZXh0O2lmKCEoIWl8fCFhKSlyZXR1cm4gWVMocixpLHthdXRob3JlZEZpcnN0SW5kZW50UHQ6ZS5pbmRlbnRGaXJzdCxwaHlzaWNhbEluZGVudExlZnRQdDp0LnBoeXNpY2FsSW5kZW50TGVmdFB0LHRhYlN0b3BzOmUudGFiU3RvcHMsZGVmYXVsdFRhYlB0OnQuZGVmYXVsdFRhYlB0fSxhKX1mdW5jdGlvbiBoQShlLHQsbixyLGkpe3JldHVybiBpLmJvdW5kcy53aWR0aFB0PD0wP3QuYmFzZVJ0bD9uK3I6bjp0LmJhc2VSdGw/aS5ib3VuZHMueFB0K2kuYm91bmRzLndpZHRoUHQrZS5ib2R5T2Zmc2V0UHQ6aS5ib3VuZHMueFB0LWUuYm9keU9mZnNldFB0fWZ1bmN0aW9uIGdBKGUsdCxuLHIsaSxhKXtpZighZS5zaGFwZXx8ZS5tYXJrZXJUZXh0PT09YGApcmV0dXJuW107bGV0IG89ZS5zaGFwZSxzPUdTKHtiYXNlUnRsOm4uYmFzZVJ0bCxhbGlnbmVkTGVhZGluZ0VkZ2VQdDpoQShlLG4scixpLGEpLGF1dGhvcmVkRmlyc3RJbmRlbnRQdDp0LmluZGVudEZpcnN0LG1hcmtlclNoaWZ0UHQ6ZS5tYXJrZXJTaGlmdFB0LG1hcmtlcldpZHRoUHQ6ZS5tYXJrZXJXaWR0aFB0fSksYz0tZS5tYXJrZXJUZXh0Lmxlbmd0aCxsPXQubnVtYmVyaW5nPy5jb2xvcj97a2luZDpgZXhwbGljaXRgLGNvbG9yOmAjJHt0Lm51bWJlcmluZy5jb2xvcn1gfTp0Lm51bWJlcmluZz8uY29sb3JBdXRvP3traW5kOmBhdXRvYH06dC5wYXJhZ3JhcGhNYXJrQ29sb3I/e2tpbmQ6YGV4cGxpY2l0YCxjb2xvcjpgIyR7dC5wYXJhZ3JhcGhNYXJrQ29sb3J9YH06e2tpbmQ6YGRlZmF1bHRgfSx1PTA7cmV0dXJuIG8uc3BhbnMubWFwKGU9PntsZXQgcj11O3UrPWUuYWR2YW5jZVB0O2xldCBpPW8uY2x1c3RlcnM/by5jbHVzdGVycy5maWx0ZXIodD0+dC5yYW5nZS5zdGFydD49ZS5zdGFydCYmdC5yYW5nZS5lbmQ8PWUuZW5kKS5tYXAoZT0+KHtyYW5nZTp7c3RhcnQ6YytlLnJhbmdlLnN0YXJ0LGVuZDpjK2UucmFuZ2UuZW5kfSxvZmZzZXQ6e3hQdDplLm9mZnNldFB0LXIseVB0OjB9LGFkdmFuY2VQdDplLmFkdmFuY2VQdH0pKTpbe3JhbmdlOntzdGFydDpjK2Uuc3RhcnQsZW5kOmMrZS5lbmR9LG9mZnNldDp7eFB0OjAseVB0OjB9LGFkdmFuY2VQdDplLmFkdmFuY2VQdH1dLGQ9cytyO3JldHVybntraW5kOmB0ZXh0YCxyb2xlOmBudW1iZXJpbmctbWFya2VyYCx0ZXh0OmUudGV4dCxyYW5nZTp7c3RhcnQ6YytlLnN0YXJ0LGVuZDpjK2UuZW5kfSxvcmlnaW46e3hQdDpkLHlQdDphLmJhc2VsaW5lUHR9LGJvdW5kczp7eFB0OmQseVB0OmEuYmFzZWxpbmVQdC1lLmFzY2VudFB0LHdpZHRoUHQ6ZS5hZHZhbmNlUHQsaGVpZ2h0UHQ6ZS5hc2NlbnRQdCtlLmRlc2NlbnRQdH0sYWR2YW5jZVB0OmUuYWR2YW5jZVB0LGNsdXN0ZXJzOmkscGFpbnRPcHM6W3t0ZXh0OmUudGV4dCxyYW5nZTp7c3RhcnQ6YytlLnN0YXJ0LGVuZDpjK2UuZW5kfSxvZmZzZXQ6e3hQdDowLHlQdDowfSxsZXR0ZXJTcGFjaW5nUHQ6MCxzY2FsZVg6MSxkaXJlY3Rpb246bi5iYXNlUnRsP2BydGxgOmBsdHJgLGtlcm5pbmc6YGF1dG9gLHdyaXRpbmdNb2RlOmBob3Jpem9udGFsLXRiYH1dLGNvbG9yOmwsZm9udFJvdXRlOmUuZm9udFJvdXRlLGZvbnRTaXplUHQ6dC5udW1iZXJpbmdNYXJrZXJTaGFwZUlucHV0Py5mb250U2l6ZVB0Pz9lLmFzY2VudFB0K2UuZGVzY2VudFB0LGZvbnRXZWlnaHQ6ZS5mb250LndlaWdodCxmb250U3R5bGU6ZS5mb250LnN0eWxlLGRpcmVjdGlvbjpuLmJhc2VSdGw/YHJ0bGA6YGx0cmAsZGVjb3JhdGlvbnM6W119fSl9ZnVuY3Rpb24gX0EoZSl7aWYoZSlyZXR1cm4gZS5zdGFydHNXaXRoKGAjYCk/ZTpgIyR7ZX1gfWZ1bmN0aW9uIHZBKGUsdCxuKXtsZXQgcj1fQSh0KSxpPV9BKG4pO3JldHVybiBlLm1hcChlPT4oey4uLmUscGxhY2VtZW50czplLnBsYWNlbWVudHMubWFwKGU9PntpZihlLmtpbmQhPT1gdGV4dGApcmV0dXJuIGU7bGV0IHQ9ZS5iYWNrZ3JvdW5kPz9yPz9pO3JldHVybiF0fHxlLmNvbG9yLmtpbmQ9PT1gZXhwbGljaXRgP2U6ey4uLmUsY29sb3I6e2tpbmQ6YGF1dG9gLGJhY2tncm91bmQ6dH19fSl9KSl9ZnVuY3Rpb24geUEoZSl7cmV0dXJuIGUhPW51bGwmJmUuc3R5bGUhPT1gbm9uZWB9ZnVuY3Rpb24gYkEoZSx0LG4scixpLGEsbyl7bGV0IHM9bixjPW4rcjtlLmluZGVudEZpcnN0PDAmJihlLmJpZGk/Yy09ZS5pbmRlbnRGaXJzdDpzKz1lLmluZGVudEZpcnN0KTtmb3IobGV0IGUgb2YgdC5mbGF0TWFwKGU9PmUucGxhY2VtZW50cykpIShlLmtpbmQ9PT1gdGV4dGAmJmUucm9sZT09PWBudW1iZXJpbmctbWFya2VyYHx8ZS5raW5kPT09YHJlc291cmNlYCYmZS5yZXNvdXJjZUtpbmQ9PT1gcGljdHVyZS1idWxsZXRgKXx8IWUuYm91bmRzfHwocz1NYXRoLm1pbihzLGUuYm91bmRzLnhQdCksYz1NYXRoLm1heChjLGUuYm91bmRzLnhQdCtlLmJvdW5kcy53aWR0aFB0KSk7bGV0IGw9ZS5ib3JkZXJzLHU9by50b3A9PT1gbm9uZWA/bnVsbDpsPy5bby50b3BdPz9udWxsLGQ9by5ib3R0b209PT1gbm9uZWA/bnVsbDpsPy5ib3R0b20/P251bGwsZj15QShsPy5sZWZ0Pz9udWxsKT9sLmxlZnQuc3BhY2U/PzA6MCxwPXlBKGw/LnJpZ2h0Pz9udWxsKT9sLnJpZ2h0LnNwYWNlPz8wOjAsbT15QSh1KT91LnNwYWNlPz8wOjAsaD15QShkKT9kLnNwYWNlPz8wOjA7cmV0dXJue3hQdDpzLWYseVB0OmktbSx3aWR0aFB0OmMtcytmK3AsaGVpZ2h0UHQ6YSttK2h9fWZ1bmN0aW9uIHhBKGUpe3JldHVybiBlLmtpbmQ9PT1gZXhwbGljaXRgP2UuY29sb3I6ZS5raW5kPT09YGF1dG9gP0luKGUuYmFja2dyb3VuZD8/YCNGRkZGRkZgKTpgIzAwMDAwMGB9ZnVuY3Rpb24gU0EoZSl7cmV0dXJuIGUuaW5rQm91bmRzPz97eE1pblB0OjAseE1heFB0OmUuYWR2YW5jZVB0LGFzY2VudFB0OmUuYXNjZW50UHQsZGVzY2VudFB0OmUuZGVzY2VudFB0fX1mdW5jdGlvbiBDQShlKXtyZXR1cm4gZT09PWBjaXJjbGVgP2Dil4tgOmU9PT1gY29tbWFgP2DvuYVgOmDigKJgfWZ1bmN0aW9uIHdBKGUsdCxuKXtpZighKGUuaGlnaGxpZ2h0fHxlLnVuZGVybGluZXx8ZS5zdHJpa2V0aHJvdWdofHxlLmRvdWJsZVN0cmlrZXRocm91Z2h8fGUuZW1waGFzaXNNYXJrKSlyZXR1cm47bGV0IHI9ZS50ZXh0TGF5b3V0U2VydmljZSxpPWUudGV4dFNoYXBlUmVxdWVzdDtpZighcnx8IWkpdGhyb3cgRXJyb3IoYFJldGFpbmVkIHR5cG9ncmFwaHkgZ2VvbWV0cnkgcmVxdWlyZXMgVGV4dExheW91dFNlcnZpY2VgKTtsZXQgYT1lPT5yLnNoYXBlKHsuLi5pLHRleHQ6ZSxtZWFzdXJlOiEwfSksbz1lPT57bGV0IHQ9YShlKSxuPXQuc3BhbnNbMF07aWYoIW58fHQuc3BhbnMubGVuZ3RoIT09MXx8bi5zdGFydCE9PTB8fG4uZW5kIT09ZS5sZW5ndGgpdGhyb3cgRXJyb3IoYFJldGFpbmVkIGRlY29yYXRpb24gcHJvYmUgcmVxdWlyZXMgb25lIHNlbGVjdGVkLWZhY2Ugc3BhbmApO3JldHVybnthc2NlbnRQdDpuLmFzY2VudFB0LGRlc2NlbnRQdDpuLmRlc2NlbnRQdCwuLi5uLmlua0JvdW5kcz97aW5rQm91bmRzOm4uaW5rQm91bmRzfTp7fX19LHM9ZS5zZWxlY3RlZEZhY2VGb250Qm94O2lmKCFzfHwhZS5zZWxlY3RlZEZhY2VJbmtCb3VuZHMpdGhyb3cgRXJyb3IoYFJldGFpbmVkIHR5cG9ncmFwaHkgZ2VvbWV0cnkgcmVxdWlyZXMgYXV0aG9yaXRhdGl2ZSBzZWxlY3RlZC1mYWNlIG1ldHJpY3NgKTtsZXQgYz17YXNjZW50UHQ6cy5hc2NlbnRQdCxkZXNjZW50UHQ6cy5kZXNjZW50UHQsaW5rQm91bmRzOmUuc2VsZWN0ZWRGYWNlSW5rQm91bmRzfSxsPXhBKG4pLHU9ZS51bmRlcmxpbmU/ey4uLmUudW5kZXJsaW5lU3R5bGU/e2F1dGhvcmVkU3R5bGU6ZS51bmRlcmxpbmVTdHlsZX06e30sY29sb3I6ZS51bmRlcmxpbmVDb2xvciYmZS51bmRlcmxpbmVDb2xvciE9PWBhdXRvYD9gIyR7ZS51bmRlcmxpbmVDb2xvcn1gOmwscHJvYmU6byhgX2ApfTp2b2lkIDAsZD1lLnN0cmlrZXRocm91Z2h8fGUuZG91YmxlU3RyaWtldGhyb3VnaD97ZG91YmxlOmUuZG91YmxlU3RyaWtldGhyb3VnaD09PSEwLHByb2JlOm8oYC1gKSwuLi5lLmRvdWJsZVN0cmlrZXRocm91Z2g/e2RvdWJsZVByb2JlOm8oYD1gKX06e319OnZvaWQgMCxmPWUuZW1waGFzaXNNYXJrPygoKT0+e2xldCByPUNBKGUuZW1waGFzaXNNYXJrKSxvPWEocikscz1vLnNwYW5zWzBdO2lmKCFzKXRocm93IEVycm9yKGBFbXBoYXNpcyBzaGFwaW5nIHByb2R1Y2VkIG5vIHNlbGVjdGVkLWZhY2Ugc3BhbmApO2xldCBjPShlLnNoYXBlZENsdXN0ZXJzPz9bXSkubWFwKG49PntsZXQgcj1lLnRleHQuc2xpY2Uobi5yYW5nZS5zdGFydCxuLnJhbmdlLmVuZCk7cmV0dXJue3RleHQ6cixyYW5nZTp7c3RhcnQ6dCtuLnJhbmdlLnN0YXJ0LGVuZDp0K24ucmFuZ2UuZW5kfSxpbms6U0EoYShyKSl9fSk7cmV0dXJue2F1dGhvcmVkOmUuZW1waGFzaXNNYXJrLGdseXBoOnIsbWFyazp7aW5rQm91bmRzOlNBKG8pLGZvbnRSb3V0ZTpzLmZvbnRSb3V0ZSxmb250U2l6ZVB0OmkuZm9udFNpemVQdCxmb250V2VpZ2h0OnMuZm9udC53ZWlnaHQsZm9udFN0eWxlOnMuZm9udC5zdHlsZSxjb2xvcjpufSxjbHVzdGVySW5rOmN9fSkoKTp2b2lkIDA7cmV0dXJue2Jhc2U6YywuLi51P3t1bmRlcmxpbmU6dX06e30sLi4uZD97c3RyaWtlOmR9Ont9LC4uLmY/e2VtcGhhc2lzOmZ9Ont9fX1mdW5jdGlvbiBUQShlLHQsbixyLGksYSl7aWYoZS5tZXRyaWNPbmx5KXtsZXQgdD1jQShlKTtyZXR1cm57a2luZDpgYW5jaG9yLWhvc3RgLG1lYXN1cmVkV2lkdGhQdDowLHJhbmdlOntzdGFydDpuLGVuZDpufSwuLi50P3tzb3VyY2VNZXRyaWNzOnR9Ont9LC4uLmk/LnR5cGU9PT1gYW5jaG9ySG9zdGAmJmkuYW5jaG9yT2NjdXJyZW5jZUlkP3thbmNob3JPY2N1cnJlbmNlSWQ6aS5hbmNob3JPY2N1cnJlbmNlSWR9Ont9fX1sZXQgbz1mQShlLHQsbiwwLDAsMCwwKTtpZihvLmtpbmQhPT1gdGV4dGApdGhyb3cgRXJyb3IoYFZpc2libGUgdGV4dCBzZWdtZW50IHByb2plY3RlZCBhcyBhbmNob3IgaG9zdGApO2xldCBzPUp4KGUsciwxKSxjPWUuY2hhclNjYWxlPz8xLGw9ZEEoZSksdT13QShlLG4sby5jb2xvciksZD1lLnNoYXBlZENsdXN0ZXJzLGY9ZD8ubGVuZ3RoJiZkWzBdPy5yYW5nZS5zdGFydD09PTAmJmQuYXQoLTEpPy5yYW5nZS5lbmQ9PT1lLnRleHQubGVuZ3RoJiZkLmV2ZXJ5KChlLHQpPT50PT09MHx8ZFt0LTFdPy5yYW5nZS5lbmQ9PT1lLnJhbmdlLnN0YXJ0KSYmZC5ldmVyeShlPT5lLnJhbmdlLnN0YXJ0PGUucmFuZ2UuZW5kJiZOdW1iZXIuaXNGaW5pdGUoZS5vZmZzZXRQdCkmJk51bWJlci5pc0Zpbml0ZShlLmFkdmFuY2VQdCkpP2Q6dm9pZCAwO2lmKGUudGV4dC5sZW5ndGg+MCYmIWYpdGhyb3cgRXJyb3IoYFZpc2libGUgdGV4dCBhY3F1aXNpdGlvbiByZXF1aXJlcyBjb21wbGV0ZSBhdXRob3JpdGF0aXZlIGdyYXBoZW1lIGNsdXN0ZXJzIGZyb20gVGV4dExheW91dFNlcnZpY2VgKTtsZXQgcD0oZj8/W10pLm1hcCgodCxpKT0+e2xldCBhPWUudGV4dC5zbGljZSgwLHQucmFuZ2Uuc3RhcnQpLG89ZS50ZXh0LnNsaWNlKHQucmFuZ2Uuc3RhcnQsdC5yYW5nZS5lbmQpLHU9Wy4uLmFdLmxlbmd0aCxkPVsuLi5vXS5sZW5ndGgscD1pPT09KGY/Lmxlbmd0aD8/MCktMT9lLmZpdFRleHRUcmFpbGluZ1BhZFB4Pz8wOjAsbT1lLnB1bmN0dWF0aW9uQ29tcHJlc3Npb25zPy5maWx0ZXIoZT0+ZS5lbmQ8PXQucmFuZ2Uuc3RhcnQpLnJlZHVjZSgoZSx0KT0+ZSt0LmFkanVzdG1lbnRQdCwwKT8/MCxoPWUucHVuY3R1YXRpb25Db21wcmVzc2lvbnM/LmZpbHRlcihlPT5lLmVuZD50LnJhbmdlLnN0YXJ0JiZlLmVuZDw9dC5yYW5nZS5lbmQpLnJlZHVjZSgoZSx0KT0+ZSt0LmFkanVzdG1lbnRQdCwwKT8/MCxnPVZ4KGUsYSxyKSpjLF89VngoZSxvLHIpKmM7cmV0dXJue3JhbmdlOntzdGFydDpuK3QucmFuZ2Uuc3RhcnQsZW5kOm4rdC5yYW5nZS5lbmR9LG9mZnNldDp7eFB0OnQub2Zmc2V0UHQqYyt1KnMrZyttLHlQdDpsfSxhZHZhbmNlUHQ6dC5hZHZhbmNlUHQqYytkKnMrXytwK2h9fSksbT1lLnNuYXBHcmlkTGVhZGluZ1BhZFB4Pz8wO2lmKGUuc25hcEdyaWRDbGFzcz09PWBlYXN0QXNpYWAmJmUuc25hcEdyaWRDZWxsUGl0Y2hQeCl7bGV0IHQ9ZS5zbmFwR3JpZENlbGxQaXRjaFB4LHI9MDtwPXAubWFwKGk9PntlLnRleHQuc2xpY2UoaS5yYW5nZS5zdGFydC1uLGkucmFuZ2UuZW5kLW4pO2xldCBhPUxiKGkuYWR2YW5jZVB0LHQpLG89YSp0LHM9ey4uLmksb2Zmc2V0Ont4UHQ6cip0KyhvLWkuYWR2YW5jZVB0KS8yLHlQdDppLm9mZnNldC55UHR9LGFkdmFuY2VQdDpvfTtyZXR1cm4gcis9YSxzfSl9ZWxzZSBtIT09MCYmKHA9cC5tYXAoZT0+KHsuLi5lLG9mZnNldDp7eFB0OmUub2Zmc2V0LnhQdCttLHlQdDplLm9mZnNldC55UHR9fSkpKTtsZXR7b3JpZ2luOmgsYm91bmRzOmcsYWR2YW5jZVB0Ol8scGFpbnRPcHM6dixjbHVzdGVyczp5LC4uLmJ9PW8seD1lLnRhdGVDaHVZb2tvJiZlLnRhdGVDaHVZb2tvQ29tcHJlc3M/KCgpPT57aWYoIWUudGV4dExheW91dFNlcnZpY2V8fCFlLnRleHRTaGFwZVJlcXVlc3QpdGhyb3cgRXJyb3IoYFRhdGUtY2h1LXlva28gY29tcHJlc3Npb24gcmVxdWlyZXMgVGV4dExheW91dFNlcnZpY2VgKTtsZXQgdD1lLnRleHRMYXlvdXRTZXJ2aWNlLnNoYXBlKHsuLi5lLnRleHRTaGFwZVJlcXVlc3QsdGV4dDplLnRleHQsZm9udFNpemVQdDpvLmZvbnRTaXplUHQsbWVhc3VyZTohMCxjbHVzdGVyR2VvbWV0cnk6ITF9KSxuPXQuYXNjZW50UHQrdC5kZXNjZW50UHQ7cmV0dXJuIG4+by5mb250U2l6ZVB0JiZuPjA/by5mb250U2l6ZVB0L246MX0pKCk6MSxTPWUucHVuY3R1YXRpb25Db21wcmVzc2lvbnM/LnNvbWUodD0+dC5lbmQ8ZS50ZXh0Lmxlbmd0aCk/PyExLEM9ZS52ZXJ0aWNhbFJ1bj8oKCk9PntpZighYSl0aHJvdyBFcnJvcihgVmVydGljYWwgZ2x5cGggcGxhbm5pbmcgY2FwYWJpbGl0eSBpcyByZXF1aXJlZCBmb3IgdmVydGljYWwgdGV4dGApO2xldCB0PXZbMF07cmV0dXJuIGEucGxhblJ1bih7dGV4dDplLnRleHQsZm9udDpXKG8uZm9udFJvdXRlLG8uZm9udFNpemVQdCxvLmZvbnRXZWlnaHQsby5mb250U3R5bGUpLGZvbnRLZXJuaW5nOnQua2VybmluZyxmb250U2l6ZVB0Om8uZm9udFNpemVQdCxsZXR0ZXJTcGFjaW5nUHQ6cyxjaGFyU2NhbGU6Yyxncm93VHJSb3RhdGVJbms6ITAsd3JpdGluZ01vZGU6dC53cml0aW5nTW9kZX0pLm1hcChyPT4oey4uLnQsdGV4dDpyLnRleHQscmFuZ2U6e3N0YXJ0Om4rci5yYW5nZS5zdGFydCxlbmQ6bityLnJhbmdlLmVuZH0sb2Zmc2V0Ont4UHQ6ci5vcmlnaW5QdCsoZS5wdW5jdHVhdGlvbkNvbXByZXNzaW9ucz8uZmlsdGVyKGU9PmUuZW5kPD1yLnJhbmdlLnN0YXJ0KS5yZWR1Y2UoKGUsdCk9PmUrdC5hZGp1c3RtZW50UHQsMCk/PzApLHlQdDpsfSxsZXR0ZXJTcGFjaW5nUHQ6cyxnbHlwaE9yaWVudGF0aW9uOnIub3JpZW50YXRpb24sLi4uci52ZXJ0aWNhbEZlYXR1cmU/e3ZlcnRpY2FsRmVhdHVyZTohMH06e30sLi4uci5ibG9ja0F4aXNJbmtCb3VuZHM/e2Jsb2NrQXhpc0lua0JvdW5kczpyLmJsb2NrQXhpc0lua0JvdW5kc306e30sLi4uci5kcmF3T2Zmc2V0UHQueFB0IT09MHx8ci5kcmF3T2Zmc2V0UHQueVB0IT09MD97Z2x5cGhPZmZzZXRQdDpyLmRyYXdPZmZzZXRQdH06e319KSl9KSgpOmUudGF0ZUNodVlva28/di5tYXAodD0+KHsuLi50LG9mZnNldDp7eFB0OnQub2Zmc2V0LnhQdCtlLm1lYXN1cmVkV2lkdGgvMix5UHQ6dC5vZmZzZXQueVB0fSxnbHlwaE9yaWVudGF0aW9uOmB1cHJpZ2h0YCwuLi54PT09MT97fTp7c2NhbGVZOnh9fSkpOlM/KCgpPT57bGV0IHQ9dlswXSxyPVtdO2ZvcihsZXQgdCBvZiBwKXtsZXQgaT10LnJhbmdlLmVuZC1uLGE9ZS5wdW5jdHVhdGlvbkNvbXByZXNzaW9ucz8uZmluZChlPT5lLmVuZD09PWkpPy5hZGp1c3RtZW50UHQ/P251bGwsbz1yLmF0KC0xKTtvJiZvLmFkanVzdG1lbnRQdD09PWE/by5lbmQ9dC5yYW5nZS5lbmQ6ci5wdXNoKHtzdGFydDp0LnJhbmdlLnN0YXJ0LGVuZDp0LnJhbmdlLmVuZCxvZmZzZXQ6dC5vZmZzZXQsYWRqdXN0bWVudFB0OmF9KX1yZXR1cm4gci5tYXAocj0+KHsuLi50LHRleHQ6ZS50ZXh0LnNsaWNlKHIuc3RhcnQtbixyLmVuZC1uKSxyYW5nZTp7c3RhcnQ6ci5zdGFydCxlbmQ6ci5lbmR9LG9mZnNldDpyLm9mZnNldCxsZXR0ZXJTcGFjaW5nUHQ6cysoci5hZGp1c3RtZW50UHQ/PzApfSkpfSkoKTp2LHc9ZS5zbmFwR3JpZENsYXNzPT09YGVhc3RBc2lhYD8oKCk9PntsZXQgdD1DWzBdO3JldHVybiB0P3AubWFwKHI9Pih7Li4udCx0ZXh0OmUudGV4dC5zbGljZShyLnJhbmdlLnN0YXJ0LW4sci5yYW5nZS5lbmQtbikscmFuZ2U6ci5yYW5nZSxvZmZzZXQ6ci5vZmZzZXR9KSk6Q30pKCk6bT09PTA/QzpDLm1hcChlPT4oey4uLmUsb2Zmc2V0Ont4UHQ6ZS5vZmZzZXQueFB0K20seVB0OmUub2Zmc2V0LnlQdH19KSk7cmV0dXJuey4uLmIsa2luZDpgdGV4dGAsbWVhc3VyZWRXaWR0aFB0OmUubWVhc3VyZWRXaWR0aCxjbHVzdGVyczpwLGJhc2VQYWludE9wczp3Lm1hcCh0PT4oey4uLnQsbGV0dGVyU3BhY2luZ1B0OmUudmVydGljYWxSdW4mJnQuZ2x5cGhPcmllbnRhdGlvbiE9PWBzaWRld2F5c2A/MDpTP3QubGV0dGVyU3BhY2luZ1B0OnMsLi4uIWUudmVydGljYWxSdW4mJmUuc2VsZWN0ZWRGYWNlSW5rQm91bmRzP3tpbmtCb3VuZHM6ZS5zZWxlY3RlZEZhY2VJbmtCb3VuZHN9Ont9LC4uLiFlLnZlcnRpY2FsUnVuJiZlLnNlbGVjdGVkRmFjZUlua0JvdW5kcyYmdC5nbHlwaE9yaWVudGF0aW9uPT09dm9pZCAwP3tibG9ja0F4aXNJbmtCb3VuZHM6e3N0YXJ0UHQ6KHQuZ2x5cGhPZmZzZXRQdD8ueVB0Pz8wKS1lLnNlbGVjdGVkRmFjZUlua0JvdW5kcy5hc2NlbnRQdCxlbmRQdDoodC5nbHlwaE9mZnNldFB0Py55UHQ/PzApK2Uuc2VsZWN0ZWRGYWNlSW5rQm91bmRzLmRlc2NlbnRQdH19Ont9fSkpLGJyZWFrQmVmb3JlOmUuYnJlYWtCZWZvcmUhPT0hMSYmIWUuam9pblByZXYscnRsOmUucnRsLGRpZ2l0c0FzQU46ZS5kaWdpdHNBc0FOLGZpeGVkUGl0Y2g6ZS5maXRUZXh0UmVnaW9uSW5kZXghPT12b2lkIDB8fGUuc25hcEdyaWRDbGFzcyE9PXZvaWQgMCwuLi51P3tyZXRhaW5lZEdlb21ldHJ5OnV9Ont9LC4uLmUudGV4dExheW91dFNlcnZpY2U/e3RleHRMYXlvdXRTZXJ2aWNlOmUudGV4dExheW91dFNlcnZpY2V9Ont9LC4uLmUudGV4dFNoYXBlUmVxdWVzdD97dGV4dFNoYXBlUmVxdWVzdDplLnRleHRTaGFwZVJlcXVlc3R9Ont9fX1mdW5jdGlvbiBFQShlLHQpe2xldCBuPW5ldyBNYXA7Zm9yKGxldCBlIG9mIHQubGluZXMpZm9yKGxldCB0IG9mIGUubGF5b3V0LnNlZ21lbnRzKXtsZXQgZT1zQSh0KTtpZihlPT09dm9pZCAwKWNvbnRpbnVlO2xldCByPWB0ZXh0YGluIHQ/dC5tZXRyaWNPbmx5PzA6dC50ZXh0Lmxlbmd0aDpgbWF0aGBpbiB0P3QuZmFsbGJhY2tUZXh0Lmxlbmd0aDorKGBpc1RhYmBpbiB0fHxgaW1hZ2VQYXRoYGluIHQpO24uc2V0KGUsKG4uZ2V0KGUpPz8wKStyKX1sZXQgcj1lLnJ1bnMubWFwKChlLHQpPT57bGV0IHI9bi5nZXQodCk7cmV0dXJuIHI9PT12b2lkIDA/ZS50eXBlPT09YHRleHRgP2UudGV4dC5sZW5ndGg6ZS50eXBlPT09YGZpZWxkYD9lLmZhbGxiYWNrVGV4dC5sZW5ndGg6ZS50eXBlPT09YGFuY2hvckhvc3RgPzA6MTpyfSksaT0wO3JldHVybntydW5TdGFydHM6ci5tYXAoZT0+e2xldCB0PWk7cmV0dXJuIGkrPWUsdH0pLHJ1bkxlbmd0aHM6cn19ZnVuY3Rpb24gREEoZSl7cmV0dXJuYHRleHRgaW4gZT9lLm1ldHJpY09ubHk/MDplLnRleHQubGVuZ3RoOmBtYXRoYGluIGU/ZS5mYWxsYmFja1RleHQubGVuZ3RoOjF9ZnVuY3Rpb24gT0EoZSx0LG4scixpLGEsbyxzLGMsbCx1LGQ9ITEpe2xldCBmPTAscD1uZXcgTWFwLG09ZS5saW5lcy5zb21lKGU9PmUubGF5b3V0LnNlZ21lbnRzLnNvbWUoZT0+YGlzVGFiYGluIGUpKSxoPXQudGFiU3RvcHM/LnJlZHVjZSgoZSx0KT0+IWV8fHQucG9zPGUucG9zP3Q6ZSx2b2lkIDApLGc9ZS5saW5lcy5mbGF0TWFwKGU9PmUubGF5b3V0LnNlZ21lbnRzLmZsYXRNYXAoZT0+YHRleHRgaW4gZSYmIWUubWV0cmljT25seT9bZS50ZXh0XTpbXSkpLmpvaW4oYGApLnRyaW0oKSxfPSFtJiZoPy5hbGlnbm1lbnQ9PT1gZGVjaW1hbGAmJmchPT1gYCYmL15bK1wtKF0/W1xkLiwgXStcKT8lPyQvdS50ZXN0KGcpP2gucG9zLW8ucGh5c2ljYWxJbmRlbnRMZWZ0UHQ6dm9pZCAwO3JldHVybiBlLmxpbmVzLm1hcCgobSxoKT0+e2xldCBnPW0ubGF5b3V0LHY9cEEobSxvKSx5PTEvMCxiPWYseD1bXTtmb3IobGV0IGUgb2YgZy5zZWdtZW50cyl7bGV0IG49c0EoZSkscj1uPT09dm9pZCAwP3ZvaWQgMDp0LnJ1bnNbbl0sYz1EQShlKSxtPW49PT12b2lkIDA/Zjoocy5ydW5TdGFydHNbbl0/P2YpKyhwLmdldChuKT8/MCk7aWYobiE9PXZvaWQgMCYmcC5zZXQobiwocC5nZXQobik/PzApK2MpLHk9TWF0aC5taW4oeSxtKSxiPU1hdGgubWF4KGIsbStjKSxgaXNUYWJgaW4gZSl7bGV0IHQ9ZSxuPXQubGVhZGVyPz9gbm9uZWAsaSxhLG89cj8udHlwZT09PWB0ZXh0YHx8cj8udHlwZT09PWBmaWVsZGA/cjp2b2lkIDAscz1vLHU9ZT0+e2lmKCFsKXRocm93IEVycm9yKGBGb3JtYXR0ZWQgdGFiIGFjcXVpc2l0aW9uIHJlcXVpcmVzIFRleHRMYXlvdXRTZXJ2aWNlYCk7cmV0dXJuIGwuc2hhcGUoe3RleHQ6ZSxmb250U2l6ZVB0OnQuZm9udFNpemUsZm9udHM6cz8uZm9udFNsb3RzPy5kaXJlY3Q/PyhvPy5mb250RmFtaWx5P3thc2NpaTpvLmZvbnRGYW1pbHl9Ont9KSx0aGVtZUZvbnRzOnM/LmZvbnRTbG90cz8udGhlbWUsdGhlbWVGb250UHJlc2VuY2U6cz8uZm9udFNsb3RzPy50aGVtZVByZXNlbnQsd2VpZ2h0OnQuYm9sZD83MDA6NDAwLHN0eWxlOnQuaXRhbGljP2BpdGFsaWNgOmBub3JtYWxgLG1lYXN1cmU6ITB9KX0sZD1lPT57bGV0IHQ9dShlKSxuPXQuc3BhbnNbMF07aWYoIW58fHQuc3BhbnMubGVuZ3RoIT09MXx8bi5zdGFydCE9PTB8fG4uZW5kIT09ZS5sZW5ndGgpdGhyb3cgRXJyb3IoYEZvcm1hdHRlZCB0YWIgcHJvYmUgcmVxdWlyZXMgb25lIHNlbGVjdGVkLWZhY2Ugc3BhbmApO3JldHVybnthc2NlbnRQdDpuLmFzY2VudFB0LGRlc2NlbnRQdDpuLmRlc2NlbnRQdCwuLi5uLmlua0JvdW5kcz97aW5rQm91bmRzOm4uaW5rQm91bmRzfTp7fX19O2lmKG8/LnVuZGVybGluZSl7bGV0IGU9by5jb2xvcj9gIyR7by5jb2xvcn1gOmAjMDAwMDAwYDthPXtiYXNlOmQoYE1gKSxwcm9iZTpkKGBfYCksY29sb3I6cz8udW5kZXJsaW5lQ29sb3ImJnMudW5kZXJsaW5lQ29sb3IhPT1gYXV0b2A/YCMke3MudW5kZXJsaW5lQ29sb3J9YDplLC4uLnM/LnVuZGVybGluZVN0eWxlP3thdXRob3JlZFN0eWxlOnMudW5kZXJsaW5lU3R5bGV9Ont9fX1pZihuIT09YG5vbmVgKXtpZighbCl0aHJvdyBFcnJvcihgVGFiIGxlYWRlciBhY3F1aXNpdGlvbiByZXF1aXJlcyBUZXh0TGF5b3V0U2VydmljZWApO2xldCBlPW49PT1gaHlwaGVuYD9gLWA6bj09PWB1bmRlcnNjb3JlYHx8bj09PWBoZWF2eWA/YF9gOm49PT1gbWlkZGxlRG90YD9gwrdgOmAuYCxyPXUoZSksYT1yLnNwYW5zWzBdO2lmKCFhfHwhTnVtYmVyLmlzRmluaXRlKHIuYWR2YW5jZVB0KXx8ci5hZHZhbmNlUHQ8PTApdGhyb3cgRXJyb3IoYFRhYiBsZWFkZXIgYWNxdWlzaXRpb24gcHJvZHVjZWQgbm8gc2hhcGVkIGdseXBoIGFkdmFuY2VgKTtpPXtnbHlwaDplLGFkdmFuY2VQdDpyLmFkdmFuY2VQdCxmb250Um91dGU6YS5mb250Um91dGUsZm9udFNpemVQdDp0LmZvbnRTaXplLGZvbnRXZWlnaHQ6YS5mb250LndlaWdodCxmb250U3R5bGU6YS5mb250LnN0eWxlLGNvbG9yOm8/LmNvbG9yP3traW5kOmBleHBsaWNpdGAsY29sb3I6YCMke28uY29sb3J9YH06cz8uY29sb3JBdXRvP3traW5kOmBhdXRvYH06e2tpbmQ6YGRlZmF1bHRgfX19eC5wdXNoKHtraW5kOmB0YWJgLHJhbmdlOntzdGFydDptLGVuZDptK2N9LG1lYXN1cmVkV2lkdGhQdDp0Lm1lYXN1cmVkV2lkdGgsbGVhZGVyOm4sZm9udFNpemVQdDp0LmZvbnRTaXplLGJvbGQ6dC5ib2xkLGl0YWxpYzp0Lml0YWxpYywuLi5hP3t1bmRlcmxpbmU6YX06e30sLi4uaT97bGVhZGVyU2hhcGU6aX06e319KX1lbHNlIGlmKGBpbWFnZVBhdGhgaW4gZSl7bGV0IHQ9ZTtpZih0LmFuY2hvciljb250aW51ZTtsZXQgbj1zQShlKSxyPXRBKGksbj8/MCk7aWYodC5pbmxpbmVTaGFwZSl7eC5wdXNoKHtraW5kOmBpbmxpbmUtZHJhd2luZ2AscmFuZ2U6e3N0YXJ0Om0sZW5kOm0rY30sZHJhd2luZ0lkOmAke2F9OmRyYXdpbmc6JHtuPz8wfWAsbWVhc3VyZWRXaWR0aFB0OnQubWVhc3VyZWRXaWR0aCx3aWR0aFB0OnQud2lkdGhQdCxoZWlnaHRQdDp0LmhlaWdodFB0LHRvcE9mZnNldFB0Oi10LmhlaWdodFB0fSksZj1NYXRoLm1heChmLG0rYyk7Y29udGludWV9aWYodC51bmF2YWlsYWJsZVJlc291cmNlS2luZCl7eC5wdXNoKHtraW5kOmB1bmF2YWlsYWJsZS1yZXNvdXJjZWAscmFuZ2U6e3N0YXJ0Om0sZW5kOm0rY30scmVzb3VyY2VLaW5kOnQudW5hdmFpbGFibGVSZXNvdXJjZUtpbmQsbWVhc3VyZWRXaWR0aFB0OnQubWVhc3VyZWRXaWR0aCx3aWR0aFB0OnQud2lkdGhQdCxoZWlnaHRQdDp0LmhlaWdodFB0LHRvcE9mZnNldFB0Oi10LmhlaWdodFB0LGRyYXdpbmdJZDppQShpLG4/PzApfSksZj1NYXRoLm1heChmLG0rYyk7Y29udGludWV9bGV0IG89dC5jaGFydD9gY2hhcnRgOmBpbWFnZWAscz10LmNoYXJ0UmVzb3VyY2VLZXk/Pyh0LmNoYXJ0P3JBKHIpOkFnKHIsdC5pbWFnZVBhdGgpKTt4LnB1c2goe2tpbmQ6YHJlc291cmNlYCxyYW5nZTp7c3RhcnQ6bSxlbmQ6bStjfSwuLi5uPT09dm9pZCAwP3t9Ontzb3VyY2VSdW5JbmRleDpufSxyZXNvdXJjZUtleTpzLHJlc291cmNlS2luZDpvLG1lYXN1cmVkV2lkdGhQdDp0Lm1lYXN1cmVkV2lkdGgsd2lkdGhQdDp0LndpZHRoUHQsaGVpZ2h0UHQ6dC5oZWlnaHRQdCx0b3BPZmZzZXRQdDotdC5oZWlnaHRQdCwuLi5kP3tvcmllbnRhdGlvbjpgdXByaWdodC1waHlzaWNhbGB9Ont9fSl9ZWxzZSBpZihgbWF0aGBpbiBlKXtsZXQgdD1lO3gucHVzaCh7a2luZDpgcmVzb3VyY2VgLHJhbmdlOntzdGFydDptLGVuZDptK2N9LC4uLnNBKGUpPT09dm9pZCAwP3t9Ontzb3VyY2VSdW5JbmRleDpzQShlKX0scmVzb3VyY2VLZXk6dC5tYXRoUmVzb3VyY2VLZXkscmVzb3VyY2VLaW5kOmBtYXRoYCxtZWFzdXJlZFdpZHRoUHQ6dC5tZWFzdXJlZFdpZHRoLHdpZHRoUHQ6dC5tZWFzdXJlZFdpZHRoLGhlaWdodFB0OnQubWF0aEFzY2VudCt0Lm1hdGhEZXNjZW50LHRvcE9mZnNldFB0Oi10Lm1hdGhBc2NlbnR9KX1lbHNlIHgucHVzaChUQShlLHQsbSxCUyhvKSxyLHUpKTtmPU1hdGgubWF4KGYsbStjKX1sZXQgUz1nLnNlZ21lbnRzLmxlbmd0aD09PTEmJmBtYXRoYGluKGcuc2VnbWVudHNbMF0/P3t9KT9nLnNlZ21lbnRzWzBdOnZvaWQgMDtyZXR1cm4gUWsoe3BhcmFncmFwaFhQdDpuLGF2YWlsYWJsZVdpZHRoUHQ6cixhbGlnbm1lbnQ6dC5hbGlnbm1lbnQsYmFzZVJ0bDpvLmJhc2VSdGwsaXNGaXJzdExpbmU6aD09PTAsaXNMYXN0TGluZTpoPT09ZS5saW5lcy5sZW5ndGgtMSxzdHJldGNoTGFzdExpbmU6by5zdHJldGNoTGFzdExpbmUsZmlyc3RMaW5lSW5kZW50UHQ6by5maXJzdEluZGVudFB0LC4uLmg9PT0wJiZjP3tudW1iZXJpbmc6e2JvZHlPZmZzZXRQdDpjLmJvZHlPZmZzZXRQdH19Ont9LC4uLl89PT12b2lkIDA/e306e2RlY2ltYWxBdXRvVGFiUHQ6X30sLi4uUz8uZGlzcGxheT97ZGlzcGxheU1hdGhKdXN0aWZpY2F0aW9uOlMuamM/P28ubWF0aERlZkpjPz9gY2VudGVyR3JvdXBgfTp7fSxsaW5lOntyYW5nZTp7c3RhcnQ6TnVtYmVyLmlzRmluaXRlKHkpP3k6ZixlbmQ6Yn0sdG9wUHQ6bS50b3BZUHQsYmFzZWxpbmVQdDp2LGFkdmFuY2VQdDptLmFkdmFuY2VQdCx4T2Zmc2V0UHQ6Zy54T2Zmc2V0LGF2YWlsYWJsZVdpZHRoUHQ6Zy5hdmFpbFdpZHRoLGVuZHNXaXRoQnJlYWs6Zy5lbmRzV2l0aEJyZWFrPz8hMSxzZWdtZW50czp4fX0pfSl9ZnVuY3Rpb24ga0EoZSx0LG4scixpKXtsZXQgYT1pLmZpbHRlcihlPT5lLmFsaWdubWVudD09PWBiYXJgKTtyZXR1cm4gYS5sZW5ndGg9PT0wP2U6ZS5tYXAoZT0+KHsuLi5lLGJhclRhYlJ1bGVzOmEubWFwKGk9PntsZXQgYT1yP3Qrbi1pLnBvczp0K2kucG9zO3JldHVybntmcm9tOnt4UHQ6YSx5UHQ6ZS5ib3VuZHMueVB0fSx0bzp7eFB0OmEseVB0OmUuYm91bmRzLnlQdCtlLmJvdW5kcy5oZWlnaHRQdH0sY29sb3I6YCMwMDAwMDBgLHdpZHRoUHQ6MCxhdXRob3JlZFN0eWxlOmBzaW5nbGVgLHN0eWxlOmBzb2xpZGB9fSl9KSl9ZnVuY3Rpb24gQUEoZSx0KXtyZXR1cm57c3RhcnQ6ZS5zdGFydCt0LGVuZDplLmVuZCt0fX1mdW5jdGlvbiBqQShlLHQpe2lmKCFOdW1iZXIuaXNGaW5pdGUodCl8fHQ8MCl0aHJvdyBSYW5nZUVycm9yKGBQYXJhZ3JhcGggY29udGludWF0aW9uIHNvdXJjZSByYW5nZSBtdXN0IGJlIGZpbml0ZSBhbmQgbm9uLW5lZ2F0aXZlYCk7bGV0IG49ZVswXTtpZighbilyZXR1cm4gZTtsZXQgcj10LW4ucmFuZ2Uuc3RhcnQ7cmV0dXJuIHI9PT0wP2U6ZS5tYXAoZT0+KHsuLi5lLHJhbmdlOkFBKGUucmFuZ2UscikscGxhY2VtZW50czplLnBsYWNlbWVudHMubWFwKGU9PntsZXQgdD1BQShlLnJhbmdlLHIpO3JldHVybiBlLmtpbmQ9PT1gdGV4dGA/ey4uLmUscmFuZ2U6dCxjbHVzdGVyczplLmNsdXN0ZXJzLm1hcChlPT4oey4uLmUscmFuZ2U6QUEoZS5yYW5nZSxyKX0pKSxwYWludE9wczplLnBhaW50T3BzLm1hcChlPT4oey4uLmUscmFuZ2U6QUEoZS5yYW5nZSxyKX0pKX06ey4uLmUscmFuZ2U6dH19KX0pKX1mdW5jdGlvbiBNQShlLHQsbixyLGkpe2xldCBhPWUuY29udGVudEVuZFlQdC1lLmNvbnRlbnRTdGFydFlQdDtyZXR1cm4gUWsoe3BhcmFncmFwaFhQdDpuLGF2YWlsYWJsZVdpZHRoUHQ6cixhbGlnbm1lbnQ6dC5hbGlnbm1lbnQsYmFzZVJ0bDppLmJhc2VSdGwsaXNGaXJzdExpbmU6ITAsaXNMYXN0TGluZTohMCxzdHJldGNoTGFzdExpbmU6aS5zdHJldGNoTGFzdExpbmUsbGluZTp7cmFuZ2U6e3N0YXJ0OjAsZW5kOjB9LHRvcFB0OmUuY29udGVudFN0YXJ0WVB0LGJhc2VsaW5lUHQ6ZS5jb250ZW50RW5kWVB0LWUubGFzdExpbmVCZWxvd0Jhc2VsaW5lUHQsYWR2YW5jZVB0OmEseE9mZnNldFB0OjAsYXZhaWxhYmxlV2lkdGhQdDpyLGVuZHNXaXRoQnJlYWs6ITEsc2VnbWVudHM6W119fSl9ZnVuY3Rpb24gTkEoZSx0KXtsZXQgbj10LmFuY2hvckZyYW1lcyxyPWUuYW5jaG9yWFJlbGF0aXZlRnJvbT8/KGUuYW5jaG9yWEZyb21NYXJnaW4/YG1hcmdpbmA6YHBhZ2VgKSxpPWUuYW5jaG9yWVJlbGF0aXZlRnJvbT8/KGUuYW5jaG9yWUZyb21QYXJhP2BwYXJhZ3JhcGhgOmBwYWdlYCksYT1uPy5wYWdlLG89bj8ubWFyZ2luLHM9YSYmbz97eFB0OmEueFB0LHlQdDphLnlQdCx3aWR0aFB0Ok1hdGgubWF4KDAsby54UHQtYS54UHQpLGhlaWdodFB0OmEuaGVpZ2h0UHR9Om51bGwsYz1hJiZvP3t4UHQ6by54UHQrby53aWR0aFB0LHlQdDphLnlQdCx3aWR0aFB0Ok1hdGgubWF4KDAsYS54UHQrYS53aWR0aFB0LW8ueFB0LW8ud2lkdGhQdCksaGVpZ2h0UHQ6YS5oZWlnaHRQdH06bnVsbCxsPWEmJm8/e3hQdDphLnhQdCx5UHQ6YS55UHQsd2lkdGhQdDphLndpZHRoUHQsaGVpZ2h0UHQ6TWF0aC5tYXgoMCxvLnlQdC1hLnlQdCl9Om51bGwsdT1hJiZvP3t4UHQ6YS54UHQseVB0Om8ueVB0K28uaGVpZ2h0UHQsd2lkdGhQdDphLndpZHRoUHQsaGVpZ2h0UHQ6TWF0aC5tYXgoMCxhLnlQdCthLmhlaWdodFB0LW8ueVB0LW8uaGVpZ2h0UHQpfTpudWxsLGQ9bj8ucGFnZVBhcml0eT09PWBldmVuYCxmPXI9PT1gcGFnZWA/YTpyPT09YGNvbHVtbmB8fHI9PT1gY2hhcmFjdGVyYD9uPy5jb2x1bW46cj09PWBsZWZ0TWFyZ2luYD9zOnI9PT1gcmlnaHRNYXJnaW5gP2M6cj09PWBpbnNpZGVNYXJnaW5gP2Q/YzpzOnI9PT1gb3V0c2lkZU1hcmdpbmA/ZD9zOmM6byxwPWk9PT1gcGFyYWdyYXBoYHx8aT09PWBsaW5lYHx8aT09PWBjaGFyYWN0ZXJgP3t4UHQ6dC5wbGFjZW1lbnQucGFyYWdyYXBoWFB0LHlQdDp0LnBsYWNlbWVudC5zdGFydFlQdCx3aWR0aFB0OnQucGxhY2VtZW50LmF2YWlsYWJsZVdpZHRoUHQsaGVpZ2h0UHQ6MH06aT09PWBwYWdlYD9hOmk9PT1gY29sdW1uYD9uPy5jb2x1bW46aT09PWB0b3BNYXJnaW5gP2w6aT09PWBib3R0b21NYXJnaW5gP3U6aT09PWBpbnNpZGVNYXJnaW5gP2Q/dTpsOmk9PT1gb3V0c2lkZU1hcmdpbmA/ZD9sOnU6bztpZighZnx8IXApcmV0dXJuIG51bGw7bGV0IG09ZS53aWR0aFB0LGg9ZS5oZWlnaHRQdCxnPWUuYW5jaG9yWFB0Pz8wLF89ZS5hbmNob3JZUHQ/PzAsdj1lLnR5cGU9PT1gc2hhcGVgP2UucGN0UG9zSDpudWxsLHk9ZS50eXBlPT09YHNoYXBlYD9lLnBjdFBvc1Y6bnVsbDtyZXR1cm57eFB0OnY9PW51bGw/ZS5hbmNob3JYQWxpZ249PT1gY2VudGVyYD9mLnhQdCsoZi53aWR0aFB0LW0pLzI6ZS5hbmNob3JYQWxpZ249PT1gcmlnaHRgfHxlLmFuY2hvclhBbGlnbj09PWBvdXRzaWRlYCYmIWR8fGUuYW5jaG9yWEFsaWduPT09YGluc2lkZWAmJmQ/Zi54UHQrZi53aWR0aFB0LW06Zi54UHQrZzpmLnhQdCtmLndpZHRoUHQqditnLHlQdDp5PT1udWxsP2UuYW5jaG9yWUFsaWduPT09YGNlbnRlcmA/cC55UHQrKHAuaGVpZ2h0UHQtaCkvMjplLmFuY2hvcllBbGlnbj09PWBib3R0b21gfHxlLmFuY2hvcllBbGlnbj09PWBvdXRzaWRlYCYmIWR8fGUuYW5jaG9yWUFsaWduPT09YGluc2lkZWAmJmQ/cC55UHQrcC5oZWlnaHRQdC1oOnAueVB0K186cC55UHQrcC5oZWlnaHRQdCp5K18sd2lkdGhQdDptLGhlaWdodFB0Omh9fWZ1bmN0aW9uIFBBKGUsdCl7cmV0dXJuIE5BKGUsdCk/P3t4UHQ6ZS5hbmNob3JYUHQrKGUuYW5jaG9yWEZyb21NYXJnaW4/dC5wbGFjZW1lbnQucGFyYWdyYXBoWFB0OjApLHlQdDplLmFuY2hvcllQdCsoZS5hbmNob3JZRnJvbVBhcmE/dC5wbGFjZW1lbnQuc3RhcnRZUHQ6MCksd2lkdGhQdDplLndpZHRoUHQsaGVpZ2h0UHQ6ZS5oZWlnaHRQdH19ZnVuY3Rpb24gRkEoZSx0LG4scixpPSExKXtsZXQgYT10QShuLnNvdXJjZSxyKSxvPVBPKGUsdCxuLmVudmlyb25tZW50LmxheW91dFNlcnZpY2VzPy50ZXh0LGUudm1sVGV4dFBhdGhJbnB1dCxlLmZpbGw/LmZpbGxUeXBlPT09YGltYWdlYD9BZyhhLGUuZmlsbC5pbWFnZVBhdGgpOnZvaWQgMCkscz1bby5jb21tYW5kXSxjPW5BKG8sYSk7cmV0dXJue2tpbmQ6YGRyYXdpbmdgLGlkOmAke24uaWR9OmRyYXdpbmc6JHtyfWAsc291cmNlOmEsZmxvd0RvbWFpbklkOm4uZmxvd0RvbWFpbklkLGZsb3dCb3VuZHM6dCxpbmtCb3VuZHM6dCxhZHZhbmNlUHQ6MCxvcmRpbmFyeUZsb3c6ITEsY29tbWFuZHM6cywuLi5jLmxlbmd0aD09PTA/e306e2RpYWdub3N0aWNzOmN9LC4uLmk/e306e2FuY2hvckxheWVyOntvY2N1cnJlbmNlSWQ6YHB1YmxpYy1zaGFwZToke24uaWR9OiR7cn1gLGJlaGluZERvYzplLmJlaGluZERvYz09PSEwLHJlbGF0aXZlSGVpZ2h0Ok51bWJlci5pc0Zpbml0ZShlLnpPcmRlcik/ZS56T3JkZXI6cixzb3VyY2VPcmRlcjpyLGhvcml6b250YWxPd25lcnNoaXA6ZS5hbmNob3JYUmVsYXRpdmVGcm9tPT09YGNoYXJhY3RlcmB8fGUuYW5jaG9yWFJlbGF0aXZlRnJvbT09PWBjb2x1bW5gP2Bob3N0YDpgcGFnZWAsdmVydGljYWxPd25lcnNoaXA6ZS5hbmNob3JZUmVsYXRpdmVGcm9tPT09YHBhcmFncmFwaGB8fGUuYW5jaG9yWVJlbGF0aXZlRnJvbT09PWBsaW5lYHx8ZS5hbmNob3JZUmVsYXRpdmVGcm9tPT09YGNoYXJhY3RlcmB8fCFlLmFuY2hvcllSZWxhdGl2ZUZyb20mJmUuYW5jaG9yWUZyb21QYXJhP2Bob3N0YDpgcGFnZWB9fX19ZnVuY3Rpb24gSUEoZSx0LG4pe2lmKCFlLmFuY2hvcnx8ZS5hbmNob3JBY3F1aXNpdGlvbklucHV0KXJldHVybiBudWxsO2xldCByPU5BKGUsdCk7aWYoIXIpcmV0dXJuIG51bGw7bGV0IGk9ZS5hbmNob3JZUmVsYXRpdmVGcm9tPz8oZS5hbmNob3JZRnJvbVBhcmE/YHBhcmFncmFwaGA6YHBhZ2VgKSxhPXRBKHQuc291cmNlLG4pO3JldHVybntraW5kOmBkcmF3aW5nYCxpZDpgJHt0LmlkfTpwdWJsaWMtYW5jaG9yLWRyYXdpbmc6JHtufWAsc291cmNlOmEsZmxvd0RvbWFpbklkOnQuZmxvd0RvbWFpbklkLGZsb3dCb3VuZHM6cixpbmtCb3VuZHM6cixhZHZhbmNlUHQ6MCxvcmRpbmFyeUZsb3c6ITEsY29tbWFuZHM6W3traW5kOmByZXNvdXJjZWAscmVzb3VyY2VLaW5kOmUudHlwZSxyZXNvdXJjZUtleTplLnR5cGU9PT1gaW1hZ2VgP0FnKGEsZS5pbWFnZVBhdGgpOnJBKGEpLHJlY3Q6ciwuLi50LmVudmlyb25tZW50LnZlcnRpY2FsUGFnZUZyYW1lP3tvcmllbnRhdGlvbjpgdXByaWdodC1waHlzaWNhbGB9Ont9fV0sYW5jaG9yTGF5ZXI6e29jY3VycmVuY2VJZDpgcHVibGljLWFuY2hvcjoke3QuaWR9OiR7bn1gLGJlaGluZERvYzohMSxyZWxhdGl2ZUhlaWdodDpuLHNvdXJjZU9yZGVyOm4saG9yaXpvbnRhbE93bmVyc2hpcDpgcGFnZWAsdmVydGljYWxPd25lcnNoaXA6aT09PWBwYXJhZ3JhcGhgP2Bob3N0YDpgcGFnZWB9fX1mdW5jdGlvbiBMQShlKXtyZXR1cm4oZS50eXBlPT09YGltYWdlYHx8ZS50eXBlPT09YGNoYXJ0YHx8ZS50eXBlPT09YHNoYXBlYHx8ZS50eXBlPT09YHVuYXZhaWxhYmxlRHJhd2luZ2ApJiZlLmFuY2hvckFjcXVpc2l0aW9uSW5wdXQhPT12b2lkIDB9ZnVuY3Rpb24gUkEoZSl7cmV0dXJuW3t4UHQ6ZS54UHQseVB0OmUueVB0fSx7eFB0OmUueFB0K2Uud2lkdGhQdCx5UHQ6ZS55UHR9LHt4UHQ6ZS54UHQrZS53aWR0aFB0LHlQdDplLnlQdCtlLmhlaWdodFB0fSx7eFB0OmUueFB0LHlQdDplLnlQdCtlLmhlaWdodFB0fV19ZnVuY3Rpb24gekEoZSx0LG4pe2xldCByPXQueFB0LWUueFB0LGk9dC55UHQtZS55UHQsYT1lLnhQdCtlLndpZHRoUHQtdC54UHQtdC53aWR0aFB0LG89ZS55UHQrZS5oZWlnaHRQdC10LnlQdC10LmhlaWdodFB0O3JldHVybnt4UHQ6bi54UHQtcix5UHQ6bi55UHQtaSx3aWR0aFB0Ok1hdGgubWF4KDAsbi53aWR0aFB0K3IrYSksaGVpZ2h0UHQ6TWF0aC5tYXgoMCxuLmhlaWdodFB0K2krbyl9fWZ1bmN0aW9uIEJBKGUsdCl7cmV0dXJue2E6dC5hLGI6dC5iLGM6dC5jLGQ6dC5kLGU6ZS54UHQrZS53aWR0aFB0LzIsZjplLnlQdCtlLmhlaWdodFB0LzJ9fWZ1bmN0aW9uIFZBKGUsdCl7bGV0IG49W3BUKHQsZSkscFQodCx7eFB0OmUueFB0K2Uud2lkdGhQdCx5UHQ6ZS55UHR9KSxwVCh0LHt4UHQ6ZS54UHQseVB0OmUueVB0K2UuaGVpZ2h0UHR9KSxwVCh0LHt4UHQ6ZS54UHQrZS53aWR0aFB0LHlQdDplLnlQdCtlLmhlaWdodFB0fSldO2lmKG4uc29tZShlPT5lPT09bnVsbCkpdGhyb3cgRXJyb3IoYFVwcmlnaHQgZHJhd2luZyB0cmFuc2Zvcm0gbXVzdCBiZSBpbnZlcnRpYmxlYCk7bGV0IHI9bixpPU1hdGgubWluKC4uLnIubWFwKGU9PmUueFB0KSksYT1NYXRoLm1pbiguLi5yLm1hcChlPT5lLnlQdCkpO3JldHVybnt4UHQ6aSx5UHQ6YSx3aWR0aFB0Ok1hdGgubWF4KC4uLnIubWFwKGU9PmUueFB0KSktaSxoZWlnaHRQdDpNYXRoLm1heCguLi5yLm1hcChlPT5lLnlQdCkpLWF9fWZ1bmN0aW9uIEhBKGUsdCl7cmV0dXJuIHZ2KHQsZSl9ZnVuY3Rpb24gVUEoZSx0KXtsZXQgbj1lPT57bGV0IG49eXYodCx7dG9wOmUudG9wUHQscmlnaHQ6ZS5yaWdodFB0LGJvdHRvbTplLmJvdHRvbVB0LGxlZnQ6ZS5sZWZ0UHR9KTtyZXR1cm57dG9wUHQ6bi50b3AscmlnaHRQdDpuLnJpZ2h0LGJvdHRvbVB0Om4uYm90dG9tLGxlZnRQdDpuLmxlZnR9fTtyZXR1cm57Li4uZSxheGVzOntob3Jpem9udGFsOmUuYXhlcy52ZXJ0aWNhbCx2ZXJ0aWNhbDplLmF4ZXMuaG9yaXpvbnRhbH0sZ2VvbWV0cnk6ey4uLmUuZ2VvbWV0cnksb2JqZWN0RnJhbWU6dnYodCxlLmdlb21ldHJ5Lm9iamVjdEZyYW1lKSxpbmtCb3VuZHM6dnYodCxlLmdlb21ldHJ5Lmlua0JvdW5kcyksd3JhcEJvdW5kczplLmdlb21ldHJ5LndyYXBCb3VuZHM/dnYodCxlLmdlb21ldHJ5LndyYXBCb3VuZHMpOm51bGwsc2l6ZTp7aG9yaXpvbnRhbDplLmdlb21ldHJ5LnNpemUudmVydGljYWwsdmVydGljYWw6ZS5nZW9tZXRyeS5zaXplLmhvcml6b250YWx9LHBhcmVudEVmZmVjdEV4dGVudDpuKGUuZ2VvbWV0cnkucGFyZW50RWZmZWN0RXh0ZW50KSx3cmFwOnsuLi5lLmdlb21ldHJ5LndyYXAsZGlzdGFuY2VzOm4oZS5nZW9tZXRyeS53cmFwLmRpc3RhbmNlcyksZGlzdGFuY2VTb3VyY2VzOnl2KHQsZS5nZW9tZXRyeS53cmFwLmRpc3RhbmNlU291cmNlcyksZWZmZWN0RXh0ZW50Om4oZS5nZW9tZXRyeS53cmFwLmVmZmVjdEV4dGVudCksLi4uZS5nZW9tZXRyeS53cmFwLnBvbHlnb24/e3BvbHlnb246ey4uLmUuZ2VvbWV0cnkud3JhcC5wb2x5Z29uLHBvaW50czplLmdlb21ldHJ5LndyYXAucG9seWdvbi5wb2ludHMubWFwKGU9Pl92KHQsZSkpfX06e319fX19ZnVuY3Rpb24gV0EoZSx0KXtsZXQgbj1lLmdlb21ldHJ5Lm9iamVjdEZyYW1lO2lmKG4ueFB0PT09dC54UHQmJm4ueVB0PT09dC55UHQmJm4ud2lkdGhQdD09PXQud2lkdGhQdCYmbi5oZWlnaHRQdD09PXQuaGVpZ2h0UHQpcmV0dXJuIGU7bGV0IHI9bi53aWR0aFB0PT09MD8xOnQud2lkdGhQdC9uLndpZHRoUHQsaT1uLmhlaWdodFB0PT09MD8xOnQuaGVpZ2h0UHQvbi5oZWlnaHRQdCxhPWUuZ2VvbWV0cnkud3JhcC5wb2x5Z29uO3JldHVybnsuLi5lLGdlb21ldHJ5OnsuLi5lLmdlb21ldHJ5LG9iamVjdEZyYW1lOnQsaW5rQm91bmRzOnpBKGUuZ2VvbWV0cnkuaW5rQm91bmRzLG4sdCksd3JhcEJvdW5kczplLmdlb21ldHJ5LndyYXBCb3VuZHM/ekEoZS5nZW9tZXRyeS53cmFwQm91bmRzLG4sdCk6bnVsbCx3cmFwOnsuLi5lLmdlb21ldHJ5LndyYXAscG9seWdvbjphP3suLi5hLHBvaW50czphLnBvaW50cy5tYXAoZT0+KHt4UHQ6dC54UHQrKGUueFB0LW4ueFB0KSpyLHlQdDp0LnlQdCsoZS55UHQtbi55UHQpKml9KSl9Om51bGx9fX19ZnVuY3Rpb24gR0EoZSx0LG4pe2xldCByPWUuZ3JvdXA/LnJlc29sdmVkQ2hpbGRGcmFtZTtpZighcilyZXR1cm4gdDtsZXQgaT1lLmV4dGVudC53aWR0aFB0LGE9ZS5leHRlbnQuaGVpZ2h0UHQ7aWYoZS5leHRlbnQud2lkdGhTdGF0dXMhPT1gdmFsaWRgfHxlLmV4dGVudC5oZWlnaHRTdGF0dXMhPT1gdmFsaWRgfHxpPT09bnVsbHx8YT09PW51bGx8fGk8PTB8fGE8PTApdGhyb3cgRXJyb3IoYHJlc29sdmVkIGdyb3VwZWQgYW5jaG9yIHJlcXVpcmVzIGl0cyBhdXRob3JlZCB3cDpleHRlbnRgKTtsZXQgbz1uPT09dm9pZCAwP3Q6dnYobi5sb2dpY2FsVG9QaHlzaWNhbCx0KSxzPW8ud2lkdGhQdC9pLGM9by5oZWlnaHRQdC9hLGw9e3hQdDpvLnhQdCtyLm9mZnNldFhQdCpzLHlQdDpvLnlQdCtyLm9mZnNldFlQdCpjLHdpZHRoUHQ6ci53aWR0aFB0KnMsaGVpZ2h0UHQ6ci5oZWlnaHRQdCpjfTtyZXR1cm4gbj09PXZvaWQgMD9sOnZ2KG4ucGh5c2ljYWxUb0xvZ2ljYWwsbCl9ZnVuY3Rpb24gS0EoZSx0LG49ITEpe2xldCByPWUuYXhlc1t0XTtyZXR1cm4gci5zdGF0dXMhPT1gcmVzb2x2ZWRgfHxufHxyLnJlZmVyZW5jZUZyYW1lPT09YHBhcmFncmFwaGB8fHIucmVmZXJlbmNlRnJhbWU9PT1gbGluZWB8fHIucmVmZXJlbmNlRnJhbWU9PT1gY2hhcmFjdGVyYD9gaG9zdGA6YHBhZ2VgfWZ1bmN0aW9uIHFBKGUsdCxuLHIsaSxhLG8scyxjLGwpe2xldCB1PS0xLGQ7Zm9yKGxldCB0PTA7dDxuLmxlbmd0aDt0Kz0xKXtsZXQgcj1uW3RdPy5wbGFjZW1lbnRzLmZpbmQodD0+dC5raW5kPT09YGFuY2hvci1ob3N0YCYmdC5hbmNob3JPY2N1cnJlbmNlSWQ9PT1lKTtpZihyPy5raW5kPT09YGFuY2hvci1ob3N0YCl7dT10LGQ9cjticmVha319aWYoIWR8fHU8MClyZXR1cm4gbnVsbDtsZXQgZj1bLi4udF0uc29ydCgoZSx0KT0+KGUucnVuLmFuY2hvckFjcXVpc2l0aW9uSW5wdXQ/Lmdyb3VwPy5zb3VyY2VJbmRleD8/MCktKHQucnVuLmFuY2hvckFjcXVpc2l0aW9uSW5wdXQ/Lmdyb3VwPy5zb3VyY2VJbmRleD8/MCl8fGUucnVuSW5kZXgtdC5ydW5JbmRleCkscD1mWzBdO2lmKCFwPy5ydW4uYW5jaG9yQWNxdWlzaXRpb25JbnB1dClyZXR1cm4gbnVsbDtsZXQgbT1uW3VdLGg9aS5hbmNob3JGcmFtZXMsZz1wLnJ1bi5hbmNob3JBY3F1aXNpdGlvbklucHV0LmJlaGF2aW9yLF89Zy5sYXlvdXRJbkNlbGxTdGF0dXM9PT1gdmFsaWRgJiZnLmxheW91dEluQ2VsbD09PSEwJiZpLmFuY2hvckNlbGxCb3VuZHMhPT12b2lkIDA/aS5hbmNob3JDZWxsQm91bmRzOm51bGwsdj1Tayh7YWNxdWlzaXRpb246cC5ydW4uYW5jaG9yQWNxdWlzaXRpb25JbnB1dCxmcmFtZXM6e3BhZ2U6aD8ucGFnZT9fP3suLi5oLnBhZ2UsLi4uX306aC5wYWdlOm51bGwsbWFyZ2luOmg/Lm1hcmdpbj9fP3suLi5oLm1hcmdpbiwuLi5ffTpoLm1hcmdpbjpudWxsLGNvbHVtbjpoPy5jb2x1bW4/Xz97Li4uaC5jb2x1bW4sLi4uX306aC5jb2x1bW46bnVsbCxwYXJhZ3JhcGg6e3hQdDppLnBsYWNlbWVudC5wYXJhZ3JhcGhYUHQseVB0OmkucGxhY2VtZW50LnN0YXJ0WVB0LHdpZHRoUHQ6aS5wbGFjZW1lbnQuYXZhaWxhYmxlV2lkdGhQdCxoZWlnaHRQdDpNYXRoLm1heCgwLGEpfSxsaW5lOm0uYm91bmRzLGNoYXJhY3RlcjpkLmJvdW5kcyxwYWdlUGFyaXR5Omg/LnBhZ2VQYXJpdHk/P251bGx9fSk7aWYodi5zdGF0dXMhPT1gcmVzb2x2ZWRgKXJldHVybntyZXN1bHQ6dix0ZXh0Qm94ZXM6W10saG9zdExpbmVJbmRleDp1LGhvc3RSYW5nZTpkLnJhbmdlfTtsZXQgeT1pLmVudmlyb25tZW50LnZlcnRpY2FsUGFnZUZyYW1lJiZoPy5wYWdlP212KGgucGFnZSxpLmVudmlyb25tZW50LnBhZ2VXcml0aW5nTW9kZSk6dm9pZCAwLGI9eT09PXZvaWQgMD92b2lkIDA6YnYoaS5lbnZpcm9ubWVudC5wYWdlV3JpdGluZ01vZGUseSkseD15PT09dm9pZCAwP3Y6VUEodixiLnBoeXNpY2FsVG9Mb2dpY2FsKTtpZihnLmJlaGluZERvY1N0YXR1cyE9PWB2YWxpZGB8fGcucmVsYXRpdmVIZWlnaHRTdGF0dXMhPT1gdmFsaWRgfHxnLmJlaGluZERvYz09PW51bGx8fGcucmVsYXRpdmVIZWlnaHQ9PT1udWxsKXRocm93IEVycm9yKGByZXNvbHZlZCBhbmNob3IgZnJhbWUgbXVzdCByZXRhaW4gcmVxdWlyZWQgQ1RfQW5jaG9yIGJlaGF2aW9yYCk7bGV0IFM9eC5nZW9tZXRyeS5vYmplY3RGcmFtZSxDPXk9PT12b2lkIDA/dm9pZCAwOkJBKFMsYi5waHlzaWNhbFRvTG9naWNhbCksdz1DP3suLi5pLmVudmlyb25tZW50LHZlcnRpY2FsQ0pLOiExLHZlcnRpY2FsUGFnZUZyYW1lOiExfTppLmVudmlyb25tZW50LFQ9W10sRT1bXSxEPVtdLE89W10saz1uZXcgTWFwLEE9UztpZihwLnJ1bi50eXBlPT09YHNoYXBlYCYmcC5ydW4uYW5jaG9yQWNxdWlzaXRpb25JbnB1dC5ncm91cD09PW51bGwpe2xldCB0PXRBKGkuc291cmNlLHAucnVuSW5kZXgpLG49Qz9WQShTLEMpOlMscj1uaihwLnJ1bixuLHtpZDpgJHtpLmlkfTphbmNob3ItdGV4dGJveDoke2V9OiR7cC5ydW5JbmRleH1gLHNvdXJjZTp0LGZsb3dEb21haW5JZDppLmZsb3dEb21haW5JZCxjb250ZXh0OmkuY29udGV4dCxtZWFzdXJlcjppLm1lYXN1cmVyLGVudmlyb25tZW50OncsaW5wdXQ6cC5ydW4udGV4dEJveElucHV0LGFjcXVpcmVDb21wbGV0ZVN0b3J5OmkuYWNxdWlyZUNvbXBsZXRlU3RvcnksLi4uQz97Y29vcmRpbmF0ZVNwYWNlOmB1cHJpZ2h0LXBoeXNpY2FsYH06e319KTtyJiYoay5zZXQocC5ydW5JbmRleCxyKSxBPUM/SEEoci5mbG93Qm91bmRzLEMpOnIuZmxvd0JvdW5kcyl9bGV0IGo9V0EoeCxBKTtpZihnLmFsbG93T3ZlcmxhcFN0YXR1cyE9PWB2YWxpZGB8fGcuYWxsb3dPdmVybGFwPT09bnVsbHx8Zy5sYXlvdXRJbkNlbGxTdGF0dXMhPT1gdmFsaWRgfHxnLmxheW91dEluQ2VsbD09PW51bGwpdGhyb3cgRXJyb3IoYHJlc29sdmVkIGFuY2hvciBmcmFtZSBtdXN0IHJldGFpbiBvdmVybGFwIGFuZCBjZWxsIGJlaGF2aW9yYCk7bGV0IE09ai5nZW9tZXRyeS53cmFwQm91bmRzLE49IWcuYWxsb3dPdmVybGFwLFA9Zy5hbGxvd092ZXJsYXAmJmkub3JkaW5hcnlGbG93JiZNIT09bnVsbDtpZihOfHxQKXtsZXQgdD1LQShqLGB2ZXJ0aWNhbGAsZy5sYXlvdXRJbkNlbGwmJmkuYW5jaG9yQ2VsbEJvdW5kcyE9PXZvaWQgMCksbj1sLmZpbHRlcihlPT4hZWsodCxnLnJlbGF0aXZlSGVpZ2h0LGUucmVsYXRpdmVIZWlnaHQpKSxyPShOP1suLi5jLC4uLm5dLmZpbHRlcih0PT50Lm9jY3VycmVuY2VJZCE9PWUpLm1hcChlPT4oe29jY3VycmVuY2VJZDplLm9jY3VycmVuY2VJZCxib3VuZHM6ZS5ib3VuZHN9KSk6by5maWx0ZXIodD0+dC5hbmNob3JPY2N1cnJlbmNlSWQhPT1lKS5tYXAoZT0+KHtvY2N1cnJlbmNlSWQ6ZS5hbmNob3JPY2N1cnJlbmNlSWQ/P2UuaWQsYm91bmRzOmUuYm91bmRzfSkpKS5tYXAoZT0+KHtvY2N1cnJlbmNlSWQ6ZS5vY2N1cnJlbmNlSWQsa2luZDpgZHJhd2luZ21sYCxwYXJhZ3JhcGhJZDowLGJvdW5kczplLmJvdW5kcyxleGNsdXNpb25Cb3VuZHM6ZS5ib3VuZHN9KSksYT1pLmFuY2hvckZyYW1lcz8ucGFnZSxzPU4mJmcubGF5b3V0SW5DZWxsJiZpLmFuY2hvckNlbGxCb3VuZHM/aS5hbmNob3JDZWxsQm91bmRzLnhQdCtpLmFuY2hvckNlbGxCb3VuZHMud2lkdGhQdDphP2EueFB0K2Eud2lkdGhQdDoxLzAsdT1XeSh7bW92aW5nOntvY2N1cnJlbmNlSWQ6ZSxraW5kOmBkcmF3aW5nbWxgLHBhcmFncmFwaElkOjEsYm91bmRzOkEsZXhjbHVzaW9uQm91bmRzOk0/P0F9LGJsb2NrZXJzOnIsYXZvaWRhbmNlOk4/e2tpbmQ6YGRyYXdpbmdtbC1ub3JtYXRpdmVgfTp7a2luZDpgd29yZC1kaWZmZXJlbnQtcGFyYWdyYXBoYCxwYXJhZ3JhcGhJZDoxfSxyaWdodEJvdW5kYXJ5UHQ6c30pLmRpc3BsYWNlbWVudDtpZih1LnhQdCE9PTB8fHUueVB0IT09MCl7aWYoQT10RChBLHUpLEMpQz17Li4uQyxlOkMuZSt1LnhQdCxmOkMuZit1LnlQdH07ZWxzZXtsZXQgZT1rLmdldChwLnJ1bkluZGV4KTtlJiZrLnNldChwLnJ1bkluZGV4LHBEKGUsdSkpfWo9V0EoeCxBKX19Zm9yKGxldHtydW46dCxydW5JbmRleDpufW9mIGYpe2xldCByPXRBKGkuc291cmNlLG4pLGE9dC5hbmNob3JBY3F1aXNpdGlvbklucHV0LG89R0EoYSxBLGIpLHM9Qz9WQShvLEMpOm87aWYodC50eXBlPT09YGltYWdlYClULnB1c2goe2tpbmQ6YHJlc291cmNlYCxyZXNvdXJjZUtpbmQ6YGltYWdlYCxyZXNvdXJjZUtleTpBZyhyLHQuaW1hZ2VQYXRoKSxyZWN0OnN9KTtlbHNlIGlmKHQudHlwZT09PWBjaGFydGApVC5wdXNoKHtraW5kOmByZXNvdXJjZWAscmVzb3VyY2VLaW5kOmBjaGFydGAscmVzb3VyY2VLZXk6ckEocikscmVjdDpzfSk7ZWxzZSBpZih0LnR5cGU9PT1gdW5hdmFpbGFibGVEcmF3aW5nYClULnB1c2goe2tpbmQ6YG5vb3BgfSksRS5wdXNoKGFBKHQucmVzb3VyY2VLaW5kLHIpKTtlbHNle2xldCBvPWEuZ3JvdXA/LnJlc29sdmVkQ2hpbGRGcmFtZSxjPVBPKG8/ey4uLnQscm90YXRpb246by5yb3RhdGlvbkRlZyxmbGlwSDpvLmZsaXBILGZsaXBWOm8uZmxpcFZ9OnQscyxpLmVudmlyb25tZW50LmxheW91dFNlcnZpY2VzPy50ZXh0LHQudm1sVGV4dFBhdGhJbnB1dCx0LmZpbGw/LmZpbGxUeXBlPT09YGltYWdlYD9BZyhyLHQuZmlsbC5pbWFnZVBhdGgpOnZvaWQgMCk7VC5wdXNoKGMuY29tbWFuZCksRS5wdXNoKC4uLm5BKGMscikpO2xldCBsPWAke2kuaWR9OmFuY2hvci10ZXh0Ym94OiR7ZX06JHtufWAsdT1rLmdldChuKT8/bmoodCxzLHtpZDpsLHNvdXJjZTpyLGZsb3dEb21haW5JZDppLmZsb3dEb21haW5JZCxjb250ZXh0OmkuY29udGV4dCxtZWFzdXJlcjppLm1lYXN1cmVyLGVudmlyb25tZW50OncsaW5wdXQ6dC50ZXh0Qm94SW5wdXQsYWNxdWlyZUNvbXBsZXRlU3Rvcnk6aS5hY3F1aXJlQ29tcGxldGVTdG9yeSwuLi5DP3tjb29yZGluYXRlU3BhY2U6YHVwcmlnaHQtcGh5c2ljYWxgfTp7fX0pO3UmJihELnB1c2godSksTy5wdXNoKGwpKX19bGV0IEY9e2tpbmQ6YGRyYXdpbmdgLGlkOmAke2kuaWR9OmFuY2hvci1kcmF3aW5nOiR7ZX1gLHNvdXJjZTp0QShpLnNvdXJjZSxwLnJ1bkluZGV4KSxmbG93RG9tYWluSWQ6aS5mbG93RG9tYWluSWQsZmxvd0JvdW5kczpBLGlua0JvdW5kczpqLmdlb21ldHJ5Lmlua0JvdW5kcyxhZHZhbmNlUHQ6MCxvcmRpbmFyeUZsb3c6ITEsLi4uQz97b3JpZW50YXRpb246YHVwcmlnaHQtcGh5c2ljYWxgLHRyYW5zZm9ybTpDfTp7fSxjb21tYW5kczpULC4uLkUubGVuZ3RoPT09MD97fTp7ZGlhZ25vc3RpY3M6T2JqZWN0LmZyZWV6ZShFKX0sYW5jaG9yTGF5ZXI6e29jY3VycmVuY2VJZDplLGJlaGluZERvYzpnLmJlaGluZERvYyxyZWxhdGl2ZUhlaWdodDpnLnJlbGF0aXZlSGVpZ2h0LHNvdXJjZU9yZGVyOnAucnVuSW5kZXgsaG9yaXpvbnRhbE93bmVyc2hpcDpLQShqLGBob3Jpem9udGFsYCxnLmxheW91dEluQ2VsbCYmaS5hbmNob3JDZWxsQm91bmRzIT09dm9pZCAwKSx2ZXJ0aWNhbE93bmVyc2hpcDpLQShqLGB2ZXJ0aWNhbGAsZy5sYXlvdXRJbkNlbGwmJmkuYW5jaG9yQ2VsbEJvdW5kcyE9PXZvaWQgMCksLi4uZy5sYXlvdXRJbkNlbGwmJllPKGcuYWxsb3dPdmVybGFwLGouZ2VvbWV0cnkud3JhcC5raW5kKSYmaS5hbmNob3JDZWxsQm91bmRzP3tjZWxsQ29udGFpbm1lbnQ6ITB9Ont9fSwuLi5PLmxlbmd0aD97dGV4dEJveElkczpPfTp7fX0sST1qLmdlb21ldHJ5LndyYXBCb3VuZHMsTD1JJiZqLmdlb21ldHJ5LndyYXAua2luZCE9PWBub25lYD97aWQ6YCR7aS5pZH06YW5jaG9yLWV4Y2x1c2lvbjoke2V9YCx3cmFwOmouZ2VvbWV0cnkud3JhcC5raW5kLC4uLmouZ2VvbWV0cnkud3JhcC5zaWRlP3t3cmFwU2lkZTpqLmdlb21ldHJ5LndyYXAuc2lkZX06e30sYm91bmRzOkkscG9seWdvbjpqLmdlb21ldHJ5LndyYXAucG9seWdvbj8ucG9pbnRzPz9SQShJKSxhbmNob3JPY2N1cnJlbmNlSWQ6ZSx2ZXJ0aWNhbE93bmVyc2hpcDpLQShqLGB2ZXJ0aWNhbGAsZy5sYXlvdXRJbkNlbGwmJmkuYW5jaG9yQ2VsbEJvdW5kcyE9PXZvaWQgMCl9OnZvaWQgMCxSPXtvY2N1cnJlbmNlSWQ6ZSxib3VuZHM6QSxob3Jpem9udGFsT3duZXJzaGlwOktBKGosYGhvcml6b250YWxgLGcubGF5b3V0SW5DZWxsJiZpLmFuY2hvckNlbGxCb3VuZHMhPT12b2lkIDApLHZlcnRpY2FsT3duZXJzaGlwOktBKGosYHZlcnRpY2FsYCxnLmxheW91dEluQ2VsbCYmaS5hbmNob3JDZWxsQm91bmRzIT09dm9pZCAwKSwuLi5nLnJlbGF0aXZlSGVpZ2h0PT09bnVsbD97fTp7cmVsYXRpdmVIZWlnaHQ6Zy5yZWxhdGl2ZUhlaWdodH19O3JldHVybntyZXN1bHQ6aixkcmF3aW5nOkYsZXhjbHVzaW9uOkwsY29sbGlzaW9uOlIsdGV4dEJveGVzOkQsLi4uZy5sYXlvdXRJbkNlbGwmJllPKGcuYWxsb3dPdmVybGFwLGouZ2VvbWV0cnkud3JhcC5raW5kKSYmaS5hbmNob3JDZWxsQm91bmRzP3tjZWxsQ29udGFpbm1lbnRCb3VuZHM6QX06e30saG9zdExpbmVJbmRleDp1LGhvc3RSYW5nZTpkLnJhbmdlfX1mdW5jdGlvbiBKQShlLHQpe2xldCBuPXQuYmlkaT09PSEwLHI9dC5ydW5zLnNvbWUoZT0+ZS50eXBlPT09YHRleHRgJiYhIWUucnVieSksaT10LnJ1bnMuc29tZShlPT5lLnR5cGU9PT1gdGV4dGAmJlR2LnRlc3QoZS50ZXh0KSk7cmV0dXJuey4uLmUscmlnaHRJbmRlbnRHcmlkOnsuLi5lLnJpZ2h0SW5kZW50R3JpZCxwYXJhZ3JhcGhBbGxvd3NBZGp1c3RtZW50OnQuYWRqdXN0UmlnaHRJbmQhPT0hMX0scGh5c2ljYWxJbmRlbnRMZWZ0UHQ6bj90LmluZGVudFJpZ2h0OnQuaW5kZW50TGVmdCxwaHlzaWNhbEluZGVudFJpZ2h0UHQ6bj90LmluZGVudExlZnQ6dC5pbmRlbnRSaWdodCxmaXJzdEluZGVudFB0OnQuaW5kZW50Rmlyc3QsbGluZVNwYWNpbmc6dC5saW5lU3BhY2luZyxzcGFjZUJlZm9yZVB0OnQuc3BhY2VCZWZvcmUsc3BhY2VBZnRlclB0OnQuc3BhY2VBZnRlcixiYXNlUnRsOm4saXNKdXN0aWZpZWQ6TFModC5hbGlnbm1lbnQpLHN0cmV0Y2hMYXN0TGluZTpSUyh0LmFsaWdubWVudCksdGFiU3RvcHM6QUModCksaGFzUnVieTpyLGhhc0Vhc3RBc2lhblRleHQ6aX19ZnVuY3Rpb24gWUEoZSl7cmV0dXJuIGU9PT1gdmVydGB8fGU9PT1gdmVydDI3MGB8fGU9PT1gZWFWZXJ0YHx8ZT09PWBtb25nb2xpYW5WZXJ0YD9lOnZvaWQgMH1mdW5jdGlvbiBYQShlLHQsbil7bGV0IHI9TWF0aC5tYXgoMCx0LW4pO3JldHVybiBlPT09YGJgP3I6ZT09PWBjdHJgP3IvMjowfWZ1bmN0aW9uIFpBKGUsdCxuLHIpe2xldCBpPXQ9PT1gZWFWZXJ0YHx8dD09PWBtb25nb2xpYW5WZXJ0YCxhPWUubGluZXMubWFwKGU9PntsZXQgYT10PT09YG1vbmdvbGlhblZlcnRgP2UucGxhY2VtZW50cy5yZWR1Y2UoKHQsbik9Pm4ua2luZD09PWB0ZXh0YCYmbi5ydWJ5P01hdGgubWF4KHQsZS5iYXNlbGluZVB0LU1hdGgubWluKGUuYmFzZWxpbmVQdCwuLi5uLnJ1YnkucGFpbnRPcHMubWFwKGU9PmUub3JpZ2luLnlQdCkpKTp0LDApOjAsbz0odD09PWBtb25nb2xpYW5WZXJ0YD8yKm4ueVB0K24uaGVpZ2h0UHQtZS5iYXNlbGluZVB0K3IuYm90dG9tUHQtci5sZWZ0UHQrYTplLmJhc2VsaW5lUHQpLWUuYmFzZWxpbmVQdCxzPWUuYm91bmRzLnlQdCtvLGM9ZS5wbGFjZW1lbnRzLm1hcChlPT57aWYoZS5raW5kIT09YHRleHRgKXJldHVybmBib3VuZHNgaW4gZSYmZS5ib3VuZHM/ey4uLmUsYm91bmRzOnsuLi5lLmJvdW5kcyx5UHQ6ZS5ib3VuZHMueVB0K299fTplO2xldCB0PWk/ZS5jbHVzdGVycy5tYXAodD0+e2xldCBuPWUudGV4dC5zbGljZSh0LnJhbmdlLnN0YXJ0LWUucmFuZ2Uuc3RhcnQsdC5yYW5nZS5lbmQtZS5yYW5nZS5zdGFydCkscj1lLnBhaW50T3BzLmZpbmQoZT0+ZS5yYW5nZS5zdGFydDw9dC5yYW5nZS5zdGFydCYmZS5yYW5nZS5lbmQ+PXQucmFuZ2UuZW5kKT8/ZS5wYWludE9wc1swXSxpPVR2LnRlc3Qobik7cmV0dXJuey4uLnIsdGV4dDpuLHJhbmdlOnQucmFuZ2Usb2Zmc2V0Omk/e3hQdDp0Lm9mZnNldC54UHQrdC5hZHZhbmNlUHQvMix5UHQ6dC5vZmZzZXQueVB0fTp0Lm9mZnNldCxnbHlwaE9yaWVudGF0aW9uOmk/YHVwcmlnaHRgOmBzaWRld2F5c2B9fSk6ZS5wYWludE9wcztyZXR1cm4gQ2ooey4uLmUscGFpbnRPcHM6dH0sbyl9KTtyZXR1cm57Li4uZSxib3VuZHM6ey4uLmUuYm91bmRzLHlQdDpzfSxiYXNlbGluZVB0OmUuYmFzZWxpbmVQdCtvLHBsYWNlbWVudHM6Y319KTtyZXR1cm57Li4uZSxsaW5lczphfX1mdW5jdGlvbiBRQShlLHQpe2xldCBuPShlLG4pPT5lLmtpbmQ9PT1gcGFyYWdyYXBoYD9aQShlLHQ9PT1gbW9uZ29saWFuVmVydGA/YGVhVmVydGA6dCxuLHt0b3BQdDowLHJpZ2h0UHQ6MCxib3R0b21QdDowLGxlZnRQdDowfSk6UUEoZSx0KSxyPXsuLi5lLHJvd3M6ZS5yb3dzLm1hcChlPT4oey4uLmUsY2VsbHM6ZS5jZWxscy5tYXAoZT0+KHsuLi5lLGJsb2NrczplLmJsb2Nrcy5tYXAodD0+KHsuLi50LGxheW91dDpuKHQubGF5b3V0LGUuY29udGVudEJvdW5kcyl9KSl9KSl9KSl9LGk9bmV3IE1hcCxhPWU9PntsZXQgbj1pLmdldChlKTtpZihuKXJldHVybiBuO2xldCByPXsuLi5lLGNoaWxkOlFBKGUuY2hpbGQsdCl9O3JldHVybiBpLnNldChlLHIpLHJ9LG89ZS5mbG9hdGluZ1RhYmxlcz8ubWFwKGEpLHM9ZS5yZXNvbHZlZEZsb2F0aW5nVGFibGVzPy5tYXAoZT0+e2xldCB0PWEoZS5zb3VyY2UpO3JldHVybnsuLi5lLHNvdXJjZTp0LGNoaWxkOnQuY2hpbGR9fSk7cmV0dXJuey4uLnIsLi4ubz97ZmxvYXRpbmdUYWJsZXM6b306e30sLi4ucz97cmVzb2x2ZWRGbG9hdGluZ1RhYmxlczpzfTp7fX19ZnVuY3Rpb24gJEEoZSx0LG4scil7cmV0dXJuey4uLmUsYmxvY2tzOmUuYmxvY2tzLm1hcChlPT57aWYoZS5raW5kPT09YHBhcmFncmFwaGApcmV0dXJuIFpBKGUsdCxuLHIpO2lmKGUua2luZD09PWB0YWJsZWApcmV0dXJuIFFBKGUsdCk7dGhyb3cgRXJyb3IoYFRleHQtYm94IHN0b3J5IGNvbnRhaW5zIHVuc3VwcG9ydGVkIHJldGFpbmVkIG5vZGU6ICR7ZS5raW5kfWApfSl9fWZ1bmN0aW9uIGVqKGUsdCxuPSEwKXtpZih0PT09MClyZXR1cm4gZTtsZXQgcj17eFB0OjAseVB0OnR9O3JldHVybnsuLi5lLGZsb3dCb3VuZHM6dEQoZS5mbG93Qm91bmRzLHIpLGlua0JvdW5kczp0RChlLmlua0JvdW5kcyxyKSwuLi5lLmNsaXBCb3VuZHM/e2NsaXBCb3VuZHM6bj90RChlLmNsaXBCb3VuZHMscik6ZS5jbGlwQm91bmRzfTp7fSxibG9ja3M6ZS5ibG9ja3MubWFwKGU9PntpZihlLmtpbmQ9PT1gcGFyYWdyYXBoYClyZXR1cm4gZEQoZSxyKTtpZihlLmtpbmQ9PT1gdGFibGVgKXJldHVybiB0aihlLHIpO3Rocm93IEVycm9yKGBUZXh0LWJveCBzdG9yeSBjb250YWlucyB1bnN1cHBvcnRlZCByZXRhaW5lZCBub2RlOiAke2Uua2luZH1gKX0pfX1mdW5jdGlvbiB0aihlLHQpe2xldCBuPWdEKGUsdCkscj1uZXcgTWFwLGk9ZT0+e2xldCBuPXIuZ2V0KGUpO2lmKG4pcmV0dXJuIG47bGV0IGk9ey4uLmUsYW5jaG9yQm91bmRzOnREKGUuYW5jaG9yQm91bmRzLHQpLC4uLmUuY29sdW1uQm91bmRzP3tjb2x1bW5Cb3VuZHM6dEQoZS5jb2x1bW5Cb3VuZHMsdCl9Ont9LGNoaWxkOnRqKGUuY2hpbGQsdCl9O3JldHVybiByLnNldChlLGkpLGl9LGE9ZS5mbG9hdGluZ1RhYmxlcz8ubWFwKGkpLG89ZS5yZXNvbHZlZEZsb2F0aW5nVGFibGVzPy5tYXAoZT0+e2xldCBuPWkoZS5zb3VyY2UpO3JldHVybnsuLi5lLHhQdDplLnhQdCt0LnhQdCx5UHQ6ZS55UHQrdC55UHQsYm91bmRzOnREKGUuYm91bmRzLHQpLGV4Y2x1c2lvbkJvdW5kczp0RChlLmV4Y2x1c2lvbkJvdW5kcyx0KSxzb3VyY2U6bixjaGlsZDpuLmNoaWxkfX0pO3JldHVybnsuLi5uLC4uLmE/e2Zsb2F0aW5nVGFibGVzOmF9Ont9LC4uLm8/e3Jlc29sdmVkRmxvYXRpbmdUYWJsZXM6b306e319fWZ1bmN0aW9uIG5qKGUsdCxuKXtsZXQgcj1uLnNvdXJjZSxpPW4uaW5wdXQ/P3traW5kOmBjb21wYXRpYmlsaXR5YCxzb3VyY2U6e3N0b3J5OmB0ZXh0Ym94YCxzdG9yeUluc3RhbmNlOmAke3Iuc3Rvcnl9OiR7ci5zdG9yeUluc3RhbmNlfToke3IucGF0aC5qb2luKGAuYCl9YCxwYXRoOltdfSxwYXJhZ3JhcGhzOklPKGUse3N0b3J5OmB0ZXh0Ym94YCxzdG9yeUluc3RhbmNlOmAke3Iuc3Rvcnl9OiR7ci5zdG9yeUluc3RhbmNlfToke3IucGF0aC5qb2luKGAuYCl9YCxwYXRoOltdfSl9LGE9aS5zb3VyY2Usbz1pLmtpbmQ9PT1gY29tcGxldGVgP2kuYmxvY2tDb3VudDppLnBhcmFncmFwaHMubGVuZ3RoO2lmKG89PT0wKXJldHVybjtsZXQgcz1ZQShlLnRleHRWZXJ0KSxjPXM/e3hQdDotdC5oZWlnaHRQdC8yLHlQdDotdC53aWR0aFB0LzIsd2lkdGhQdDp0LmhlaWdodFB0LGhlaWdodFB0OnQud2lkdGhQdH06dCxsPWkua2luZD09PWBjb21wYXRpYmlsaXR5YD9pLnBhcmFncmFwaHM6T2JqZWN0LmZyZWV6ZShbXSksdT17dG9wUHQ6ZS50ZXh0SW5zZXRUPz8wLHJpZ2h0UHQ6ZS50ZXh0SW5zZXRSPz8wLGJvdHRvbVB0OmUudGV4dEluc2V0Qj8/MCxsZWZ0UHQ6ZS50ZXh0SW5zZXRMPz8wfSxkPXt4UHQ6Yy54UHQrdS5sZWZ0UHQseVB0OmMueVB0K3UudG9wUHQsd2lkdGhQdDpNYXRoLm1heCgwLGMud2lkdGhQdC11LmxlZnRQdC11LnJpZ2h0UHQpLGhlaWdodFB0Ok1hdGgubWF4KDAsYy5oZWlnaHRQdC11LnRvcFB0LXUuYm90dG9tUHQpfSxmO2lmKGkua2luZD09PWBjb21wbGV0ZWApe2lmKCFuLmFjcXVpcmVDb21wbGV0ZVN0b3J5KXRocm93IEVycm9yKGBDb21wbGV0ZSB0ZXh0LWJveCBjb250ZW50IHJlcXVpcmVzIHRoZSBzaGFyZWQgc3RvcnkgYWNxdWlzaXRpb24gYWRhcHRlcmApO2Y9bi5hY3F1aXJlQ29tcGxldGVTdG9yeSh7c291cmNlOmEsY29udGFpbmVyOntpZDpgJHtuLmlkfTpzdG9yeWAsa2luZDpgdGV4dGJveGAsYm91bmRzOmQsY2FwYWNpdHk6YHVuYm91bmRlZGB9LGNvb3JkaW5hdGVTcGFjZTpuLmNvb3JkaW5hdGVTcGFjZT8/YHNlY3Rpb24tbG9naWNhbGB9KX1sZXQgcD1jLnlQdCt1LnRvcFB0LG09bnVsbCxoPWwubWFwKCh0LHIpPT57bGV0IGk9dC5ydW5zLm1hcCh0PT5Pdih7dGV4dDp0LnRleHQsZm9udFNpemVQdDp0LmZvbnRTaXplUHQsY29sb3I6dC5jb2xvcj8uc2xpY2UoMSk/P251bGwsZm9udEZhbWlseTp0LmZvbnRGYW1pbHk/P251bGwsZm9udEZhbWlseUVhc3RBc2lhOnQuZm9udEZhbWlseUVhc3RBc2lhPz9udWxsLGJvbGQ6dC5ib2xkLGl0YWxpYzp0Lml0YWxpYyxydWJ5OnQucnVieX0sZS50ZXh0VmVydCkpLGE9TWF0aC5tYXgoMCxjLndpZHRoUHQtdS5sZWZ0UHQtdS5yaWdodFB0LXQuaW5kZW50TGVmdFB0LXQuaW5kZW50UmlnaHRQdC1NYXRoLm1heCgwLHQuaW5kZW50Rmlyc3RQdCkpLG89cz90LmltYWdlPy5oZWlnaHRQdD8/MDp0LmltYWdlPy53aWR0aFB0Pz8wLGw9cz90LmltYWdlPy53aWR0aFB0Pz8wOnQuaW1hZ2U/LmhlaWdodFB0Pz8wLGY9bz5hJiZvPjA/YS9vOjEsaD10LmltYWdlP1t7dHlwZTpgaW1hZ2VgLGltYWdlUGF0aDp0LmltYWdlLmltYWdlUGF0aCxtaW1lVHlwZTp0LmltYWdlLm1pbWVUeXBlLC4uLnQuaW1hZ2Uuc3ZnSW1hZ2VQYXRoP3tzdmdJbWFnZVBhdGg6dC5pbWFnZS5zdmdJbWFnZVBhdGh9Ont9LHdpZHRoUHQ6bz4wP28qZjphLGhlaWdodFB0Omw+MD9sKmY6YSxhbmNob3I6ITF9XTppLGc9e2FsaWdubWVudDp0LmFsaWdubWVudCxpbmRlbnRMZWZ0OnQuaW5kZW50TGVmdFB0LGluZGVudFJpZ2h0OnQuaW5kZW50UmlnaHRQdCxpbmRlbnRGaXJzdDp0LmluZGVudEZpcnN0UHQsc3BhY2VCZWZvcmU6dC5zcGFjaW5nLmJlZm9yZVB0LHNwYWNlQWZ0ZXI6dC5zcGFjaW5nLmFmdGVyUHQsbGluZVNwYWNpbmc6dC5saW5lU3BhY2luZyxudW1iZXJpbmc6dC5udW1iZXJpbmc/P251bGwsbnVtYmVyaW5nTWFya2VyU2hhcGVJbnB1dDp0Lm51bWJlcmluZ01hcmtlclNoYXBlSW5wdXQsdGFiU3RvcHM6Wy4uLnQudGFiU3RvcHNdLGJpZGk6dC5iaWRpLGNvbnRleHR1YWxTcGFjaW5nOnQuY29udGV4dHVhbFNwYWNpbmcsc3R5bGVJZDp0LnN0eWxlSWQscnVuczpofSxfPUpBKG4uY29udGV4dCxnKSx2PUNrKG0sdCxtPy5zcGFjaW5nLmFmdGVyUHQ/PzAsdC5zcGFjaW5nLmJlZm9yZVB0KTtwKz12O2xldCB5PW1qKGcse2lkOmAke24uaWR9OnBhcmFncmFwaDoke3J9YCxzb3VyY2U6dC5zb3VyY2UsZmxvd0RvbWFpbklkOmAke24uZmxvd0RvbWFpbklkfTp0ZXh0Ym94YCxvcmRpbmFyeUZsb3c6ITAsY29udGV4dDpfLHBsYWNlbWVudDp7c3RhcnRZUHQ6cCxwYXJhZ3JhcGhYUHQ6Yy54UHQrdS5sZWZ0UHQsYXZhaWxhYmxlV2lkdGhQdDpNYXRoLm1heCgwLGMud2lkdGhQdC11LmxlZnRQdC11LnJpZ2h0UHQpLG1heGltdW1ZUHQ6Yy55UHQrYy5oZWlnaHRQdC11LmJvdHRvbVB0LHN1cHByZXNzU3BhY2VCZWZvcmU6ITB9LG1lYXN1cmVyOm4ubWVhc3VyZXIsZW52aXJvbm1lbnQ6bi5lbnZpcm9ubWVudCxleGNsdXNpb25zOltdfSk7cmV0dXJuIHArPXkuYWR2YW5jZVB0LXkuc3BhY2luZy5hZnRlclB0LG09dCxzP1pBKHkscyxkLHUpOnl9KSxnPWY/TWF0aC5tYXgoMCxmLmFkdmFuY2VQdCt1LnRvcFB0K3UuYm90dG9tUHQpOk1hdGgubWF4KDAscC1jLnlQdCt1LmJvdHRvbVB0KSxfPWUudGV4dEF1dG9maXQ9PT1gc3BgJiZvPjAmJighc3x8bC5ldmVyeShlPT5lLmltYWdlPT09dm9pZCAwKSkmJk51bWJlci5pc0Zpbml0ZShnKSYmZz4wP3M/ey4uLnQsd2lkdGhQdDpnfTp7Li4udCxoZWlnaHRQdDpnfTp0LHY9cz97eFB0Oi1fLmhlaWdodFB0LzIseVB0Oi1fLndpZHRoUHQvMix3aWR0aFB0Ol8uaGVpZ2h0UHQsaGVpZ2h0UHQ6Xy53aWR0aFB0fTpfO2lmKHMmJl8ud2lkdGhQdCE9PXQud2lkdGhQdCYmcyE9PWBtb25nb2xpYW5WZXJ0YCl7bGV0IGU9di55UHQtYy55UHQ7aD1oLm1hcCh0PT5Uaih0LGUpKX1sZXQgeT17eFB0OnYueFB0K3UubGVmdFB0LHlQdDp2LnlQdCt1LnRvcFB0LHdpZHRoUHQ6TWF0aC5tYXgoMCx2LndpZHRoUHQtdS5sZWZ0UHQtdS5yaWdodFB0KSxoZWlnaHRQdDpNYXRoLm1heCgwLHYuaGVpZ2h0UHQtdS50b3BQdC11LmJvdHRvbVB0KX0sYj1DdyhoLm1hcChlPT5lLmZsb3dCb3VuZHMpKT8/e3hQdDp5LnhQdCx5UHQ6eS55UHQsd2lkdGhQdDowLGhlaWdodFB0OjB9LHg9Q3coaC5tYXAoZT0+ZS5pbmtCb3VuZHMpKT8/e3hQdDp5LnhQdCx5UHQ6eS55UHQsd2lkdGhQdDowLGhlaWdodFB0OjB9LFM9Zj8/e3N0b3J5OmB0ZXh0Ym94YCxmbG93Qm91bmRzOmIsaW5rQm91bmRzOngsY2xpcEJvdW5kczp5LGJsb2NrczpoLGFkdmFuY2VQdDpNYXRoLm1heCgwLGctdS50b3BQdC11LmJvdHRvbVB0KSxkaWFnbm9zdGljczpbXX0sQz1aTyhTKTtyZXR1cm4gZiYmcyYmKFM9JEEoZWooUyx2LnlQdC1jLnlQdCkscyx5LHUpKSxTPWVqKFMsWEEoZS50ZXh0QW5jaG9yLHkuaGVpZ2h0UHQsQyksITEpLEZnKHtraW5kOmB0ZXh0Ym94YCxpZDpuLmlkLHNvdXJjZTpsWzBdPy5zb3VyY2U/P2EsZmxvd0RvbWFpbklkOmAke24uZmxvd0RvbWFpbklkfTp0ZXh0Ym94YCxmbG93Qm91bmRzOl8saW5rQm91bmRzOl8sLi4uZS5kZWZhdWx0VGV4dENvbG9yP3tkZWZhdWx0VGV4dENvbG9yOmAjJHtlLmRlZmF1bHRUZXh0Q29sb3IucmVwbGFjZSgvXiMvdSxgYCl9YH06e30sLi4uZS50ZXh0QXV0b2ZpdD09PWBub25lYD97Y2xpcEJvdW5kczp5fTp7fSxhZHZhbmNlUHQ6MCxvcmRpbmFyeUZsb3c6ITEsc3Rvcnk6Uyx0cmFuc2Zvcm06cz97YTowLGI6cz09PWB2ZXJ0MjcwYD8tMToxLGM6cz09PWB2ZXJ0MjcwYD8xOi0xLGQ6MCxlOl8ueFB0K18ud2lkdGhQdC8yLGY6Xy55UHQrXy5oZWlnaHRQdC8yfTp7YToxLGI6MCxjOjAsZDoxLGU6MCxmOjB9LHdyaXRpbmdNb2RlOmUudGV4dFZlcnQ9PT1gdmVydDI3MGA/YHZlcnRpY2FsLWxyYDplLnRleHRWZXJ0P2B2ZXJ0aWNhbC1ybGA6YGhvcml6b250YWwtdGJgLGluc2V0czp1LGNvbnRlbnRCb3VuZHM6diwuLi5zP3t2ZXJ0aWNhbE1vZGU6c306e319KX12YXIgcmo9Y2xhc3MgZXh0ZW5kcyBae3JlYXNvbjtzdGF0ZXM7b2NjdXJyZW5jZUNhcGFjaXR5O2NvbnN0cnVjdG9yKGUsdCxuKXtzdXBlcihgTk9OX0NPTlZFUkdFTkNFYCxgcGFyc2VyLW93bmVkIHBhcmFncmFwaCBhbmNob3IgcmVmbG93IGRpZCBub3QgY29udmVyZ2UgKCR7ZX07ICR7bn0gb2NjdXJyZW5jZXM7ICR7dC5sZW5ndGh9IHN0YXRlcylgKSx0aGlzLm5hbWU9YFBhcmFncmFwaEFuY2hvclJlZmxvd05vbkNvbnZlcmdlbmNlRXJyb3JgLHRoaXMucmVhc29uPWUsdGhpcy5zdGF0ZXM9T2JqZWN0LmZyZWV6ZShbLi4udF0pLHRoaXMub2NjdXJyZW5jZUNhcGFjaXR5PW59fTtmdW5jdGlvbiBpaihlLHQpe2lmKHQubGVuZ3RoPT09MClyZXR1cm4gZS5wbGFjZW1lbnQ7aWYoZS5wbGFjZW1lbnQud3JhcCl0aHJvdyBFcnJvcihgQ29uZmxpY3RpbmcgcGFyYWdyYXBoIHdyYXAgYXV0aG9yaXRpZXM6IHBsYWNlbWVudC53cmFwIGFuZCBlZmZlY3RpdmUgZXhjbHVzaW9uc2ApO2xldCBuPWUuYW5jaG9yRnJhbWVzPy5wYWdlLHI9elModC5tYXAoKGUsdCk9Pih7a2luZDpgc2hhcGVgLG1vZGU6ZS53cmFwPT09YHRvcEFuZEJvdHRvbWA/YHRvcEFuZEJvdHRvbWA6YHNxdWFyZWAsYXV0aG9yZWRXcmFwOmUud3JhcCx3cmFwUG9seWdvbjplLnBvbHlnb24saW1hZ2VLZXk6ZS5pZCxpbWFnZVg6ZS5ib3VuZHMueFB0LGltYWdlWTplLmJvdW5kcy55UHQsaW1hZ2VXOmUuYm91bmRzLndpZHRoUHQsaW1hZ2VIOmUuYm91bmRzLmhlaWdodFB0LHhMZWZ0OmUuYm91bmRzLnhQdCx4UmlnaHQ6ZS5ib3VuZHMueFB0K2UuYm91bmRzLndpZHRoUHQseVRvcDplLmJvdW5kcy55UHQseUJvdHRvbTplLmJvdW5kcy55UHQrZS5ib3VuZHMuaGVpZ2h0UHQsc2lkZTplLndyYXBTaWRlPz9gYm90aFNpZGVzYCxkaXN0TGVmdDowLGRpc3RSaWdodDowLGRpc3RUb3A6MCxkaXN0Qm90dG9tOjAscGFyYUlkOnR9KSkse3hMZWZ0UHQ6bj8ueFB0Pz9lLnBsYWNlbWVudC5wYXJhZ3JhcGhYUHQseFJpZ2h0UHQ6bj9uLnhQdCtuLndpZHRoUHQ6ZS5wbGFjZW1lbnQucGFyYWdyYXBoWFB0K2UucGxhY2VtZW50LmF2YWlsYWJsZVdpZHRoUHQscmVhZGluZ0RpcmVjdGlvbjplLmNvbnRleHQuYmFzZVJ0bD9gcnRsYDpgbHRyYH0pO3JldHVybnsuLi5lLnBsYWNlbWVudCx3cmFwOnJ9fWZ1bmN0aW9uIGFqKGUsdCl7bGV0IG49bmV3IE1hcDtmb3IobGV0IHIgb2YgZS5leGNsdXNpb25zKXtsZXQgZT1yLmFuY2hvck9jY3VycmVuY2VJZDtpZighKCFlfHwhdC5oYXMoZSkpKXtpZihuLmhhcyhlKSl0aHJvdyBFcnJvcihgUGFyYWdyYXBoIGFuY2hvciBvY2N1cnJlbmNlIHByb2R1Y2VkIGR1cGxpY2F0ZSBleGNsdXNpb25zOiAke2V9YCk7bi5zZXQoZSxyKX19cmV0dXJuIE9iamVjdC5mcmVlemUoWy4uLm4udmFsdWVzKCldKX1mdW5jdGlvbiBvaihlKXtyZXR1cm4gRGcoYHBhcmFncmFwaC1lZmZlY3RpdmUtd3JhcC1leGNsdXNpb25zYCxlLm1hcChlPT4oe2lkOmUuaWQsLi4uZS5hbmNob3JPY2N1cnJlbmNlSWQ9PT12b2lkIDA/e306e29jY3VycmVuY2VJZDplLmFuY2hvck9jY3VycmVuY2VJZH0sd3JhcDplLndyYXAsLi4uZS53cmFwU2lkZT09PXZvaWQgMD97fTp7d3JhcFNpZGU6ZS53cmFwU2lkZX0sYm91bmRzOmUuYm91bmRzLHBvbHlnb246ZS5wb2x5Z29uLC4uLmUudmVydGljYWxPd25lcnNoaXA9PT12b2lkIDA/e306e3ZlcnRpY2FsT3duZXJzaGlwOmUudmVydGljYWxPd25lcnNoaXB9fSkpKX1mdW5jdGlvbiBzaihlKXtsZXQgdD1uZXcgU2V0O2ZvcihsZXQgbiBvZiBlKXtsZXQgZT1uLmFuY2hvck9jY3VycmVuY2VJZDtpZihlKXtpZih0LmhhcyhlKSl0aHJvdyBFcnJvcihgRHVwbGljYXRlIGV4dGVybmFsIHBhcmFncmFwaCBleGNsdXNpb24gb2NjdXJyZW5jZTogJHtlfWApO3QuYWRkKGUpfX1yZXR1cm4gdH1mdW5jdGlvbiBjaihlLHQpe2xldCBuPXNqKGUpO3JldHVybiBPYmplY3QuZnJlZXplKFsuLi5lLC4uLnQuZmlsdGVyKGU9PiFlLmFuY2hvck9jY3VycmVuY2VJZHx8IW4uaGFzKGUuYW5jaG9yT2NjdXJyZW5jZUlkKSldKX1mdW5jdGlvbiBsaihlLHQpe2xldCBuPW5ldyBTZXQ7Zm9yKGxldCB0IG9mIGUpe2lmKG4uaGFzKHQub2NjdXJyZW5jZUlkKSl0aHJvdyBFcnJvcihgRHVwbGljYXRlIGV4dGVybmFsIGFuY2hvciBjb2xsaXNpb24gb2NjdXJyZW5jZTogJHt0Lm9jY3VycmVuY2VJZH1gKTtuLmFkZCh0Lm9jY3VycmVuY2VJZCl9cmV0dXJuIE9iamVjdC5mcmVlemUoWy4uLmUsLi4udC5maWx0ZXIoZT0+IW4uaGFzKGUub2NjdXJyZW5jZUlkKSldKX1mdW5jdGlvbiB1aihlLHQsbixyKXtsZXQgaT1uLmVudmlyb25tZW50LmxheW91dFNlcnZpY2VzLGE9bi5lbnZpcm9ubWVudC52ZXJ0aWNhbEdseXBoTWVhc3VyZW1lbnQsbz1uLmFuY2hvckZyYW1lcyxzPXQucnVucy5zb21lKExBKSxjPXQucnVucy5zb21lKGU9PmUudHlwZT09PWBzaGFwZWAmJmUudGV4dEJveElucHV0Py5raW5kPT09YGNvbXBsZXRlYCkse3dyYXA6bCwuLi51fT1uLnBsYWNlbWVudCxkPW4uY29udGV4dCxmPW4uZW52aXJvbm1lbnQ7cmV0dXJuYHBhcmFncmFwaC1hY3F1aXNpdGlvbi12MToke0pTT04uc3RyaW5naWZ5KFtuLmlkLFtuLnNvdXJjZS5zdG9yeSxuLnNvdXJjZS5zdG9yeUluc3RhbmNlLG4uc291cmNlLnBhdGhdLG4uZmxvd0RvbWFpbklkLG4ub3JkaW5hcnlGbG93LFt1LnN0YXJ0WVB0LHUucGFyYWdyYXBoWFB0LHUuYXZhaWxhYmxlV2lkdGhQdCx1Lm1heGltdW1ZUHQsdS5zdXBwcmVzc1NwYWNlQmVmb3JlLGw/ZS5vYmplY3RJZGVudGl0eShsKTpudWxsXSxbZC5saW5lR3JpZC5hY3RpdmUsZC5saW5lR3JpZC5waXRjaFB0LGQuY2hhcmFjdGVyR3JpZC5hY3RpdmUsZC5jaGFyYWN0ZXJHcmlkLmtpbmQsZC5jaGFyYWN0ZXJHcmlkLmRlbHRhUHQsZC5yaWdodEluZGVudEdyaWQucGl0Y2hQdCxkLnJpZ2h0SW5kZW50R3JpZC5wYXJhZ3JhcGhBbGxvd3NBZGp1c3RtZW50LGQucGh5c2ljYWxJbmRlbnRMZWZ0UHQsZC5waHlzaWNhbEluZGVudFJpZ2h0UHQsZC5maXJzdEluZGVudFB0LGQubGluZVNwYWNpbmc/W2QubGluZVNwYWNpbmcudmFsdWUsZC5saW5lU3BhY2luZy5ydWxlLGQubGluZVNwYWNpbmcuZXhwbGljaXQ/P251bGxdOm51bGwsZC5zcGFjZUJlZm9yZVB0LGQuc3BhY2VBZnRlclB0LGQuYmFzZVJ0bCxkLmlzSnVzdGlmaWVkLGQuc3RyZXRjaExhc3RMaW5lLGQudGFiU3RvcHMubWFwKGU9PltlLnBvcyxlLmFsaWdubWVudCxlLmxlYWRlcl0pLGQuaGFzUnVieSxkLmhhc0Vhc3RBc2lhblRleHQsW2Qua2luc29rdS5lbmFibGVkLFsuLi5kLmtpbnNva3UubGluZVN0YXJ0Rm9yYmlkZGVuXS5zb3J0KChlLHQpPT5lLXQpLFsuLi5kLmtpbnNva3UubGluZUVuZEZvcmJpZGRlbl0uc29ydCgoZSx0KT0+ZS10KV0sZC5kZWZhdWx0VGFiUHQsZC5vdmVyZmxvd1B1bmN0IT09ITEsZC5udW1iZXJpbmdNYXJrZXJHZW9tZXRyeT9KU09OLnN0cmluZ2lmeShkLm51bWJlcmluZ01hcmtlckdlb21ldHJ5KTpudWxsLGQubWF0aERlZkpjPz9udWxsXSxbZS5vYmplY3RJZGVudGl0eShuLm1lYXN1cmVyLmNvbnRleHQpLGUub2JqZWN0SWRlbnRpdHkobi5tZWFzdXJlci5mb250RmFtaWx5Q2xhc3NlcyldLFtmLnBhZ2VJbmRleCxmLnRvdGFsUGFnZXMsZi5kaXNwbGF5UGFnZU51bWJlcj8/bnVsbCxmLnBhZ2VOdW1iZXJGb3JtYXQ/P251bGwsZi5jdXJyZW50RGF0ZU1zPz9udWxsLGYubm90ZU51bWJlcnM/Wy4uLmYubm90ZU51bWJlcnMuZW50cmllcygpXS5zb3J0KChbZV0sW3RdKT0+ZS5sb2NhbGVDb21wYXJlKHQpKTpudWxsLGYubm90ZVJlZmVyZW5jZU51bWJlcj8/bnVsbCxmLnBhZ2VXcml0aW5nTW9kZSxmLnZlcnRpY2FsQ0pLPz9udWxsLGYudmVydGljYWxQYWdlRnJhbWU/P251bGwsZi5kb2N1bWVudEhhc0Vhc3RBc2lhblRleHQsZi51c2VGZUxheW91dD8/bnVsbCxmLmJhbGFuY2VTaW5nbGVCeXRlRG91YmxlQnl0ZVdpZHRoPz9udWxsLGYuY2hhcmFjdGVyU3BhY2luZ0NvbnRyb2w/P251bGwsZi5yZXNvbHZlZExvY2FsRm9udHM/ZS5vYmplY3RJZGVudGl0eShmLnJlc29sdmVkTG9jYWxGb250cyk6bnVsbCxpPy50ZXh0LmZpbmdlcnByaW50Pz9udWxsLGk/LmltYWdlcy5maW5nZXJwcmludD8/bnVsbCxpPy5tYXRoLmZpbmdlcnByaW50Pz9udWxsLGk/LnZlcnRpY2FsR2x5cGhGaW5nZXJwcmludD8/bnVsbCxhPy5maW5nZXJwcmludD8/bnVsbF0sSlNPTi5zdHJpbmdpZnkobi5leGNsdXNpb25zKSxzP0pTT04uc3RyaW5naWZ5KG4uYW5jaG9yQ29sbGlzaW9ucz8/W10pOm51bGwscj9KU09OLnN0cmluZ2lmeShyKTpudWxsLG4ucGFyYWdyYXBoQm9yZGVyRWRnZXM/W24ucGFyYWdyYXBoQm9yZGVyRWRnZXMudG9wLG4ucGFyYWdyYXBoQm9yZGVyRWRnZXMuYm90dG9tXTpudWxsLG4udHJhaWxpbmdFeHRlbnRQdD8/bnVsbCxuLmNvbnRhaW5lclNoYWRpbmc/P251bGwsbi5jb250aW51ZXNGcm9tUHJldmlvdXM/P251bGwsbi5zb3VyY2VSYW5nZVN0YXJ0Pz9udWxsLG8/W28ucGFnZT9bby5wYWdlLnhQdCxvLnBhZ2UueVB0LG8ucGFnZS53aWR0aFB0LG8ucGFnZS5oZWlnaHRQdF06bnVsbCxvLm1hcmdpbj9bby5tYXJnaW4ueFB0LG8ubWFyZ2luLnlQdCxvLm1hcmdpbi53aWR0aFB0LG8ubWFyZ2luLmhlaWdodFB0XTpudWxsLG8uY29sdW1uP1tvLmNvbHVtbi54UHQsby5jb2x1bW4ueVB0LG8uY29sdW1uLndpZHRoUHQsby5jb2x1bW4uaGVpZ2h0UHRdOm51bGwsby5wYWdlUGFyaXR5XTpudWxsLHM/SlNPTi5zdHJpbmdpZnkobi5hbmNob3JDZWxsQm91bmRzPz9udWxsKTpudWxsLGMmJm4uYWNxdWlyZUNvbXBsZXRlU3Rvcnk/ZS5vYmplY3RJZGVudGl0eShuLmFjcXVpcmVDb21wbGV0ZVN0b3J5KTpudWxsXSl9YH1mdW5jdGlvbiBkaihlKXtsZXQgdD1lLnNyYz9PYmplY3QuZnJlZXplKHsuLi5lLnNyY30pOnZvaWQgMDtyZXR1cm5gdGV4dGBpbiBlP09iamVjdC5mcmVlemUoey4uLmUsLi4udD97c3JjOnR9Ont9LC4uLmUuc2hhcGVkQ2x1c3RlcnM/e3NoYXBlZENsdXN0ZXJzOk9iamVjdC5mcmVlemUoZS5zaGFwZWRDbHVzdGVycy5tYXAoZT0+T2JqZWN0LmZyZWV6ZSh7Li4uZSxyYW5nZTpPYmplY3QuZnJlZXplKHsuLi5lLnJhbmdlfSl9KSkpfTp7fSwuLi5lLnNlbGVjdGVkRmFjZUlua0JvdW5kcz97c2VsZWN0ZWRGYWNlSW5rQm91bmRzOk9iamVjdC5mcmVlemUoey4uLmUuc2VsZWN0ZWRGYWNlSW5rQm91bmRzfSl9Ont9LC4uLmUuc2VsZWN0ZWRGYWNlRm9udEJveD97c2VsZWN0ZWRGYWNlRm9udEJveDpPYmplY3QuZnJlZXplKHsuLi5lLnNlbGVjdGVkRmFjZUZvbnRCb3h9KX06e30sLi4uZS5ydWJ5P3tydWJ5Ok9iamVjdC5mcmVlemUoey4uLmUucnVieX0pfTp7fSwuLi5lLmJvcmRlcj97Ym9yZGVyOk9iamVjdC5mcmVlemUoey4uLmUuYm9yZGVyfSl9Ont9LC4uLmUucmV2aXNpb24/e3JldmlzaW9uOk9iamVjdC5mcmVlemUoey4uLmUucmV2aXNpb259KX06e30sLi4uZS5oeXBlcmxpbms/e2h5cGVybGluazpPYmplY3QuZnJlZXplKHsuLi5lLmh5cGVybGlua30pfTp7fSwuLi5lLnNlYUJyZWFrcz97c2VhQnJlYWtzOk9iamVjdC5mcmVlemUoWy4uLmUuc2VhQnJlYWtzXSl9Ont9fSk6YGltYWdlUGF0aGBpbiBlP09iamVjdC5mcmVlemUoey4uLmUsLi4udD97c3JjOnR9Ont9LC4uLmUuc3JjUmVjdD97c3JjUmVjdDpPYmplY3QuZnJlZXplKHsuLi5lLnNyY1JlY3R9KX06e30sLi4uZS5kdW90b25lP3tkdW90b25lOk9iamVjdC5mcmVlemUoey4uLmUuZHVvdG9uZX0pfTp7fX0pOmBpc1RhYmBpbiBlP09iamVjdC5mcmVlemUoey4uLmUsLi4udD97c3JjOnR9Ont9LC4uLmUucHRhYj97cHRhYjpPYmplY3QuZnJlZXplKHsuLi5lLnB0YWJ9KX06e319KTpPYmplY3QuZnJlZXplKHsuLi5lLC4uLnQ/e3NyYzp0fTp7fX0pfWZ1bmN0aW9uIGZqKGUpe3JldHVybiBPYmplY3QuZnJlZXplKHsuLi5lLGxheW91dDpPYmplY3QuZnJlZXplKHsuLi5lLmxheW91dCxzZWdtZW50czpPYmplY3QuZnJlZXplKGUubGF5b3V0LnNlZ21lbnRzLm1hcChkaikpLC4uLmUubGF5b3V0LmNvbnN1bWVkRW5kP3tjb25zdW1lZEVuZDpPYmplY3QuZnJlZXplKHsuLi5lLmxheW91dC5jb25zdW1lZEVuZH0pfTp7fX0pfSl9ZnVuY3Rpb24gcGooZSx0LG4pe2xldCByPXQuZW52aXJvbm1lbnQubGF5b3V0U2VydmljZXM/VF8odC5lbnZpcm9ubWVudC5sYXlvdXRTZXJ2aWNlcyk6dm9pZCAwLGk9cj91aihyLGUsdCxuKTp2b2lkIDAsYT1pPT09dm9pZCAwP3ZvaWQgMDpyLmdldChlLGkpO2lmKGEpcmV0dXJuIGE7bGV0IG89c2oodC5leGNsdXNpb25zKSxzPW5ldyBTZXQoZS5ydW5zLmZsYXRNYXAoZT0+TEEoZSk/W2UuYW5jaG9yQWNxdWlzaXRpb25JbnB1dC5vY2N1cnJlbmNlSWRdOltdKSk7Zm9yKGxldCBlIG9mIG8pcy5kZWxldGUoZSk7bGV0IGM9cy5zaXplLGw9T2JqZWN0LmZyZWV6ZShbXSksdT1jaih0LmV4Y2x1c2lvbnMsbCk7dHJ5e2xldCBhPWpiKHtzZWVkU3RhdGU6b2oodSksc3RlcDpyPT57bGV0IGk9Y2oodC5leGNsdXNpb25zLHI/Lm93bmVkRXhjbHVzaW9ucz8/bCksYT1VUyhlLHQuY29udGV4dCxpaih0LGkpLHQubWVhc3VyZXIsey4uLnQuZW52aXJvbm1lbnQscGFyYWdyYXBoTWFya1NoYXBlSW5wdXQ6ZS5wYXJhZ3JhcGhNYXJrU2hhcGVJbnB1dH0sbiksbz15aihlLHQsYSksYz1haihvLHMpLHU9b2ooY2oodC5leGNsdXNpb25zLGMpKTtpZihvaihvLmV4Y2x1c2lvbnMpIT09dSl0aHJvdyBFcnJvcihgUGFyYWdyYXBoIHJldGFpbmVkIGV4Y2x1c2lvbnMgZGlmZmVyIGZyb20gdGhlIG1lYXN1cmVkIGV4Y2x1c2lvbiBhdXRob3JpdHlgKTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7bWVhc3VyZWQ6YSxsYXlvdXQ6byxvd25lZEV4Y2x1c2lvbnM6YyxzdGF0ZTp1fSl9LHN0YXRlT2Y6ZT0+ZS5zdGF0ZSxsaW1pdDoxNn0pLnZhbHVlLG89T2JqZWN0LmZyZWV6ZSh7Li4uYS5tZWFzdXJlZCxsaW5lczpPYmplY3QuZnJlZXplKGEubWVhc3VyZWQubGluZXMubWFwKGZqKSkscGxhY2VtZW50Ok9iamVjdC5mcmVlemUoey4uLmEubWVhc3VyZWQucGxhY2VtZW50fSl9KSxjPU9iamVjdC5mcmVlemUoe21lYXN1cmVkOm8sbGF5b3V0OmEubGF5b3V0fSk7cmV0dXJuIGkhPT12b2lkIDAmJnIuc2V0KGUsaSxjKSxjfWNhdGNoKGUpe3Rocm93IGUgaW5zdGFuY2VvZiBBYj9uZXcgcmooZS5yZWFzb24sZS5zdGF0ZXMsYyk6ZX19ZnVuY3Rpb24gbWooZSx0KXtyZXR1cm4gcGooZSx0KS5sYXlvdXR9ZnVuY3Rpb24gaGooZSl7bGV0IHQ9MDtmb3IobGV0IG4gb2YgZS5tZW1iZXJzKWZvcihsZXQgZSBvZiBuLmZyYWdtZW50LmxpbmVzKWZvcihsZXQgbiBvZiBlLnBsYWNlbWVudHMpbi5raW5kPT09YHRleHRgJiYodD1NYXRoLm1heCh0LC0obi5wb3NpdGlvblB0Pz8wKSkpO3JldHVybiB0fWNvbnN0IGdqPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIF9qKGUpe3JldHVybiBlPT09dm9pZCAwP251bGw6ZSBpbnN0YW5jZW9mIERhdGU/e2RhdGU6ZS50b0lTT1N0cmluZygpfTplIGluc3RhbmNlb2YgU2V0P3tzZXQ6Wy4uLmVdLm1hcChfaikuc29ydCgoZSx0KT0+SlNPTi5zdHJpbmdpZnkoZSkubG9jYWxlQ29tcGFyZShKU09OLnN0cmluZ2lmeSh0KSkpfTplIGluc3RhbmNlb2YgTWFwP3ttYXA6Wy4uLmUuZW50cmllcygpXS5tYXAoKFtlLHRdKT0+W19qKGUpLF9qKHQpXSkuc29ydCgoZSx0KT0+SlNPTi5zdHJpbmdpZnkoZVswXSkubG9jYWxlQ29tcGFyZShKU09OLnN0cmluZ2lmeSh0WzBdKSkpfTpBcnJheS5pc0FycmF5KGUpP2UubWFwKF9qKTplJiZ0eXBlb2YgZT09YG9iamVjdGA/T2JqZWN0LmZyb21FbnRyaWVzKE9iamVjdC5lbnRyaWVzKGUpLm1hcCgoW2UsdF0pPT5bZSxfaih0KV0pKTplfWZ1bmN0aW9uIHZqKGUsdCl7aWYodC5jb250ZXh0cy5sZW5ndGghPT1lLm1lbWJlcnMubGVuZ3RofHx0LmlucHV0cy5sZW5ndGghPT1lLm1lbWJlcnMubGVuZ3RofHx0LmJvcmRlckVkZ2VzLmxlbmd0aCE9PWUubWVtYmVycy5sZW5ndGh8fHQuYm9yZGVyRXh0ZW50c1B0Lmxlbmd0aCE9PWUubWVtYmVycy5sZW5ndGgpdGhyb3cgRXJyb3IoYEZyYW1lIGFjcXVpc2l0aW9uIG1ldGFkYXRhIG11c3QgYWxpZ24gd2l0aCBldmVyeSBncm91cCBtZW1iZXJgKTtpZighTnVtYmVyLmlzRmluaXRlKHQubWF4aW11bVdpZHRoUHQpfHx0Lm1heGltdW1XaWR0aFB0PDApdGhyb3cgUmFuZ2VFcnJvcihgRnJhbWUgbWF4aW11bVdpZHRoUHQgbXVzdCBiZSBmaW5pdGUgYW5kIG5vbi1uZWdhdGl2ZWApO2xldCBuPWdqLmdldCh0LmFjcXVpc2l0aW9uU2Vzc2lvbik7bnx8KG49bmV3IE1hcCxnai5zZXQodC5hY3F1aXNpdGlvblNlc3Npb24sbikpO2xldCByPURnKGB3OmZyYW1lLWFjcXVpc2l0aW9uYCxbZS5pZCx0LnBsYWNlbWVudFNpZ25hdHVyZSx0Lm1heGltdW1XaWR0aFB0LHQuZW52aXJvbm1lbnQucGFnZUluZGV4LHQuZW52aXJvbm1lbnQudG90YWxQYWdlcyx0LmVudmlyb25tZW50LmRpc3BsYXlQYWdlTnVtYmVyPz9udWxsLHQuZW52aXJvbm1lbnQucGFnZU51bWJlckZvcm1hdD8/bnVsbCx0LmVudmlyb25tZW50LmN1cnJlbnREYXRlTXM/P251bGwsdC5lbnZpcm9ubWVudC5kb2N1bWVudEhhc0Vhc3RBc2lhblRleHQsdC5lbnZpcm9ubWVudC5sYXlvdXRTZXJ2aWNlcz8udGV4dC5maW5nZXJwcmludD8/bnVsbCx0LmVudmlyb25tZW50LmxheW91dFNlcnZpY2VzPy5pbWFnZXMuZmluZ2VycHJpbnQ/P251bGwsdC5lbnZpcm9ubWVudC5sYXlvdXRTZXJ2aWNlcz8ubWF0aC5maW5nZXJwcmludD8/bnVsbCx0LmVudmlyb25tZW50LmxheW91dFNlcnZpY2VzPy52ZXJ0aWNhbEdseXBoRmluZ2VycHJpbnQ/P251bGwsX2oodC5jb250ZXh0cyksX2oodC5pbnB1dHMpLF9qKHQuYm9yZGVyRWRnZXMpLF9qKHQuYm9yZGVyRXh0ZW50c1B0KSx0LmNvbnRhaW5lclNoYWRpbmc/P251bGwsX2oodC5hbmNob3JGcmFtZXMpXSksaT1uLmdldChyKTtpZihpKXJldHVybiBpO2xldCBhPWUuZnJhbWVQcixvPWEudz09bnVsbD9NYXRoLm1heCgwLC4uLmUubWVtYmVycy5tYXAoKGUsbik9PnVDKGUsdC5jb250ZXh0c1tuXSx0Lm1heGltdW1XaWR0aFB0LHQubWVhc3VyZXIsdC5lbnZpcm9ubWVudCxtQSh0LmlucHV0c1tuXSx0LmNvbnRleHRzW25dLHQpKSkpOk1hdGgubWF4KDAsYS53KSxzPU1hdGgubWF4KDEsbyksYz0oKCk9PntsZXQgbj1QayhgYm9keS1mcmFtZToke2UuaWR9YCkscj0wLGk9bnVsbCxhPTAsbz0wLGM9W107cmV0dXJuIGUubWVtYmVycy5mb3JFYWNoKChsLHUpPT57bGV0IGQ9dC5jb250ZXh0c1t1XSxmPU1hdGgubWF4KENrKGksbCxhLGQuc3BhY2VCZWZvcmVQdCksbykscD17c3RhcnRZUHQ6citmLHBhcmFncmFwaFhQdDowLGF2YWlsYWJsZVdpZHRoUHQ6cyxtYXhpbXVtWVB0OjEvMCxzdXBwcmVzc1NwYWNlQmVmb3JlOiEwfSxtPXQuYm9yZGVyRXh0ZW50c1B0W3VdPz8wLGg9e3N0b3J5OmBib2R5YCxzdG9yeUluc3RhbmNlOmBib2R5YCxwYXRoOltlLnNvdXJjZUluZGljZXNbdV1dfSx7bWVhc3VyZWQ6ZyxsYXlvdXQ6X309cGoodC5pbnB1dHNbdV0se2lkOmBib2R5LWZyYW1lOiR7ZS5pZH06JHt1fWAsc291cmNlOmgsZmxvd0RvbWFpbklkOmBib2R5LWZyYW1lOiR7ZS5pZH1gLG9yZGluYXJ5RmxvdzohMSxjb250ZXh0OmQscGxhY2VtZW50OnAsbWVhc3VyZXI6dC5tZWFzdXJlcixlbnZpcm9ubWVudDp7Li4udC5lbnZpcm9ubWVudCxwb3NpdGlvbkV4dGVuZHNMaW5lQm94OldEKGUuZnJhbWVQci5kcm9wQ2FwKX0sZXhjbHVzaW9uczpuLmV4Y2x1c2lvbnMsYW5jaG9yQ29sbGlzaW9uczpuLmNvbGxpc2lvbnMsY29udGFpbmVyU2hhZGluZzp0LmNvbnRhaW5lclNoYWRpbmcscGFyYWdyYXBoQm9yZGVyRWRnZXM6dC5ib3JkZXJFZGdlc1t1XSx0cmFpbGluZ0V4dGVudFB0Ok1hdGgubWF4KGQuc3BhY2VBZnRlclB0LG0pLGFuY2hvckZyYW1lczp0LmFuY2hvckZyYW1lc30pO249TGsobixfKSxjLnB1c2goe3BhcmFncmFwaDpsLGZyYWdtZW50Ol8sc291cmNlOmh9KSxyPWcuY29udGVudEVuZFlQdCxpPWwsYT1nLnJlcXVlc3RlZFNwYWNlQWZ0ZXJQdCxvPW19KSx7aGVpZ2h0UHQ6TWF0aC5tYXgoMCxyK01hdGgubWF4KGEsbykpLG1lbWJlcnM6Y319KSgpLGw9dC5wbGFjZShvLGMuaGVpZ2h0UHQpLHU9T2JqZWN0LmZyZWV6ZShjLm1lbWJlcnMubWFwKGU9PntsZXQgdD1kRChlLmZyYWdtZW50LHt4UHQ6bC5ib3VuZHMueFB0LHlQdDpsLmJvdW5kcy55UHR9KSxuPWVBKGEuaFJ1bGU9PT1gZXhhY3RgJiZhLmghPW51bGw/ey4uLnQsY2xpcEJvdW5kczpsLmJvdW5kc306dCkscj1PYmplY3QuZnJlZXplKHsuLi5uLGFkdmFuY2VQdDowfSk7cmV0dXJuIE9iamVjdC5mcmVlemUoey4uLmUsZnJhZ21lbnQ6cn0pfSkpLGQ9T2JqZWN0LmZyZWV6ZSh7Ym94Ok9iamVjdC5mcmVlemUoe2JvdW5kczpsLmJvdW5kcyxleGNsdXNpb25Cb3VuZHM6bC5leGNsdXNpb25Cb3VuZHMsZXhjbHVzaW9uSWQ6YGZyYW1lOiR7ZS5pZH1gfSksbWVtYmVyczp1fSk7cmV0dXJuIG4uc2V0KHIsZCksZH1mdW5jdGlvbiB5aihlLHQsbil7bGV0IHI9dC5jb250aW51ZXNGcm9tUHJldmlvdXM/ey4uLnQuY29udGV4dCxmaXJzdEluZGVudFB0OjB9OnQuY29udGV4dCxpPXQucGxhY2VtZW50LnBhcmFncmFwaFhQdCtyLnBoeXNpY2FsSW5kZW50TGVmdFB0LGE9akMocix0LnBsYWNlbWVudC5hdmFpbGFibGVXaWR0aFB0KSxvPXQucGxhY2VtZW50LmF2YWlsYWJsZVdpZHRoUHQtci5waHlzaWNhbEluZGVudExlZnRQdC1yLnBoeXNpY2FsSW5kZW50UmlnaHRQdC1hLHM9RUEoZSxuKSxjPXQuY29udGludWVzRnJvbVByZXZpb3VzP3ZvaWQgMDptQShlLHIsdCksbD1PQShuLGUsaSxvLHQuc291cmNlLHQuaWQscixzLGMsdC5lbnZpcm9ubWVudC5sYXlvdXRTZXJ2aWNlcz8udGV4dCx0LmVudmlyb25tZW50LnZlcnRpY2FsR2x5cGhNZWFzdXJlbWVudCx0LmVudmlyb25tZW50LnZlcnRpY2FsUGFnZUZyYW1lKTt0LnNvdXJjZVJhbmdlU3RhcnQhPT12b2lkIDAmJihsPWpBKGwsdC5zb3VyY2VSYW5nZVN0YXJ0KSksbD1rQShsLHQucGxhY2VtZW50LnBhcmFncmFwaFhQdCx0LnBsYWNlbWVudC5hdmFpbGFibGVXaWR0aFB0LHIuYmFzZVJ0bCxyLnRhYlN0b3BzKSxjJiZuLm1hcmtPbmx5JiZsLmxlbmd0aD09PTAmJihjLm1hcmtlclRleHQhPT1gYHx8ZS5udW1iZXJpbmc/LnBpY0J1bGxldEltYWdlUGF0aCkmJihsPVtNQShuLGUsaSxvLHIpXSk7bGV0IHU9W10sZD1bXSxmPVtdLHA9W10sbT1bXSxoPVtdLGc9W10sXz1lLnJ1bnMubWFwKChlLHQpPT5lLnR5cGU9PT1gYnJlYWtgP3traW5kOmBicmVha2AsYnJlYWtLaW5kOmUuYnJlYWtUeXBlLG9mZnNldDpzLnJ1blN0YXJ0c1t0XT8/MH06dm9pZCAwKS5maWx0ZXIoZT0+ZSE9PXZvaWQgMCksdj1uZXcgTWFwO2UucnVucy5mb3JFYWNoKChlLHQpPT57aWYoIUxBKGUpKXJldHVybjtsZXQgbj12LmdldChlLmFuY2hvckFjcXVpc2l0aW9uSW5wdXQub2NjdXJyZW5jZUlkKT8/W107bi5wdXNoKHtydW46ZSxydW5JbmRleDp0fSksdi5zZXQoZS5hbmNob3JBY3F1aXNpdGlvbklucHV0Lm9jY3VycmVuY2VJZCxuKX0pO2ZvcihsZXRbcixpXW9mIHYpe2xldCBhPXFBKHIsaSxsLGUsdCxuLmNvbnRlbnRFbmRZUHQtdC5wbGFjZW1lbnQuc3RhcnRZUHQsdC5leGNsdXNpb25zLG0sdC5hbmNob3JDb2xsaXNpb25zPz9bXSxoKTthJiYocC5wdXNoKGEucmVzdWx0KSxhLmNlbGxDb250YWlubWVudEJvdW5kcyYmZy5wdXNoKGEuY2VsbENvbnRhaW5tZW50Qm91bmRzKSxhLmRyYXdpbmcmJihkLnB1c2goYS5kcmF3aW5nKSxmLnB1c2goLi4uYS50ZXh0Qm94ZXMpLGEuZXhjbHVzaW9uJiZtLnB1c2goYS5leGNsdXNpb24pLGEuY29sbGlzaW9uJiZoLnB1c2goYS5jb2xsaXNpb24pLGxbYS5ob3N0TGluZUluZGV4XSYmKGw9bC5tYXAoKGUsdCk9PnQ9PT1hLmhvc3RMaW5lSW5kZXg/ey4uLmUscGxhY2VtZW50czpbLi4uZS5wbGFjZW1lbnRzLHtraW5kOmBkcmF3aW5nYCxyYW5nZTphLmhvc3RSYW5nZSxkcmF3aW5nSWQ6YS5kcmF3aW5nLmlkLGJvdW5kczphLmRyYXdpbmcuaW5rQm91bmRzLGFkdmFuY2VQdDowfV19OmUpKSkpfWlmKGMmJmxbMF0pe2xldCBuPWdBKGMsZSx0LmNvbnRleHQsaSxvLGxbMF0pO24ubGVuZ3RoPjAmJihsPVt7Li4ubFswXSxwbGFjZW1lbnRzOlsuLi5uLC4uLmxbMF0ucGxhY2VtZW50c119LC4uLmwuc2xpY2UoMSldKX1pZihlLnJ1bnMuZm9yRWFjaCgoZSxuKT0+e2xldCByPXRBKHQuc291cmNlLG4pO2lmKGUudHlwZT09PWB1bmF2YWlsYWJsZURyYXdpbmdgJiZlLmFuY2hvckFjcXVpc2l0aW9uSW5wdXQ9PT12b2lkIDApe2xldCBpPWlBKHQuc291cmNlLG4pLGE9bC5mbGF0TWFwKGU9PmUucGxhY2VtZW50cykuZmluZChlPT5lLmtpbmQ9PT1gZHJhd2luZ2AmJmUuZHJhd2luZ0lkPT09aSk7YT8ua2luZD09PWBkcmF3aW5nYCYmZC5wdXNoKHtraW5kOmBkcmF3aW5nYCxpZDppLHNvdXJjZTpyLGZsb3dEb21haW5JZDp0LmZsb3dEb21haW5JZCxmbG93Qm91bmRzOmEuYm91bmRzLGlua0JvdW5kczphLmJvdW5kcyxhZHZhbmNlUHQ6MCxvcmRpbmFyeUZsb3c6ITEsY29tbWFuZHM6T2JqZWN0LmZyZWV6ZShbe2tpbmQ6YG5vb3BgfV0pLGRpYWdub3N0aWNzOk9iamVjdC5mcmVlemUoW2FBKGUucmVzb3VyY2VLaW5kLHIpXSl9KX1pZihlLnR5cGU9PT1gaW1hZ2VgJiZ1LnB1c2goe2tpbmQ6YGltYWdlYCxyZXNvdXJjZUtleTpBZyhyLGUuaW1hZ2VQYXRoKSxpbnRyaW5zaWNTaXplOnt3aWR0aFB0OmUud2lkdGhQdCxoZWlnaHRQdDplLmhlaWdodFB0fX0pLGUudHlwZT09PWBjaGFydGAmJnUucHVzaCh7a2luZDpgY2hhcnRgLHJlc291cmNlS2V5OnJBKHIpLGludHJpbnNpY1NpemU6e3dpZHRoUHQ6ZS53aWR0aFB0LGhlaWdodFB0OmUuaGVpZ2h0UHR9fSksZS50eXBlPT09YG1hdGhgJiZ1LnB1c2goe2tpbmQ6YG1hdGhgLHJlc291cmNlS2V5OmUucmVzb3VyY2VLZXk/P0RnKGBtYXRoLXJlc291cmNlYCxyKSxpbnRyaW5zaWNTaXplOnt3aWR0aFB0OmwuZmxhdE1hcChlPT5lLnBsYWNlbWVudHMpLmZpbmQoZT0+ZS5raW5kPT09YHJlc291cmNlYCYmZS5yZXNvdXJjZUtpbmQ9PT1gbWF0aGApPy5ib3VuZHM/LndpZHRoUHQ/PzAsaGVpZ2h0UHQ6ZS5mb250U2l6ZX19KSwoZS50eXBlPT09YGltYWdlYHx8ZS50eXBlPT09YGNoYXJ0YCkmJiF0LmNvbnRpbnVlc0Zyb21QcmV2aW91cyl7bGV0IHI9SUEoZSx0LG4pO2lmKHIpe2QucHVzaChyKTtsZXQgZT1sWzBdO2UmJihsPVt7Li4uZSxwbGFjZW1lbnRzOlsuLi5lLnBsYWNlbWVudHMse2tpbmQ6YGRyYXdpbmdgLHJhbmdlOntzdGFydDpzLnJ1blN0YXJ0c1tuXT8/MCxlbmQ6KHMucnVuU3RhcnRzW25dPz8wKSsocy5ydW5MZW5ndGhzW25dPz8xKX0sZHJhd2luZ0lkOnIuaWQsYm91bmRzOnIuaW5rQm91bmRzLGFkdmFuY2VQdDowfV19LC4uLmwuc2xpY2UoMSldKX19aWYoZS50eXBlPT09YHNoYXBlYCYmIWUuYW5jaG9yQWNxdWlzaXRpb25JbnB1dCYmIXQuY29udGludWVzRnJvbVByZXZpb3VzKXtsZXQgaT1gJHt0LmlkfTpkcmF3aW5nOiR7bn1gLGE9ZS5pbmxpbmU9PT0hMD9sLmZsYXRNYXAoZT0+ZS5wbGFjZW1lbnRzKS5maW5kKGU9PmUua2luZD09PWBkcmF3aW5nYCYmZS5kcmF3aW5nSWQ9PT1pKTp2b2lkIDA7aWYoZS5pbmxpbmU9PT0hMCYmIWEpdGhyb3cgRXJyb3IoYElubGluZSBzaGFwZSAke2l9IGhhcyBubyByZXRhaW5lZCBsaW5lIHBsYWNlbWVudGApO2xldCBvPWE/LmJvdW5kcz8/UEEoZSx0KSxjPWAke3QuaWR9OnRleHRib3g6JHtufWAsdT1uaihlLG8se2lkOmMsc291cmNlOnIsZmxvd0RvbWFpbklkOnQuZmxvd0RvbWFpbklkLGNvbnRleHQ6dC5jb250ZXh0LG1lYXN1cmVyOnQubWVhc3VyZXIsZW52aXJvbm1lbnQ6dC5lbnZpcm9ubWVudCxpbnB1dDplLnRleHRCb3hJbnB1dCxhY3F1aXJlQ29tcGxldGVTdG9yeTp0LmFjcXVpcmVDb21wbGV0ZVN0b3J5fSkscD1GQShlLGUuaW5saW5lPT09ITA/bzp1Py5mbG93Qm91bmRzPz9vLHQsbixlLmlubGluZT09PSEwKTt1JiYoZi5wdXNoKHUpLHA9ey4uLnAsdGV4dEJveElkczpbY119KSxkLnB1c2gocCk7bGV0IG09ZS5pbmxpbmU9PT0hMD92b2lkIDA6bFswXTttJiYobD1bey4uLm0scGxhY2VtZW50czpbLi4ubS5wbGFjZW1lbnRzLHtraW5kOmBkcmF3aW5nYCxyYW5nZTp7c3RhcnQ6cy5ydW5TdGFydHNbbl0/PzAsZW5kOihzLnJ1blN0YXJ0c1tuXT8/MCkrKHMucnVuTGVuZ3Roc1tuXT8/MSl9LGRyYXdpbmdJZDpwLmlkLGJvdW5kczpwLmlua0JvdW5kcyxhZHZhbmNlUHQ6MH1dfSwuLi5sLnNsaWNlKDEpXSl9fSksZS5udW1iZXJpbmc/LnBpY0J1bGxldEltYWdlUGF0aCYmIXQuY29udGludWVzRnJvbVByZXZpb3VzJiZ1LnB1c2goe2tpbmQ6YHBpY3R1cmUtYnVsbGV0YCxyZXNvdXJjZUtleTpBZyh0LnNvdXJjZSxlLm51bWJlcmluZy5waWNCdWxsZXRJbWFnZVBhdGgpLGludHJpbnNpY1NpemU6e3dpZHRoUHQ6ZS5udW1iZXJpbmcucGljQnVsbGV0V2lkdGhQdD8/ZS5udW1iZXJpbmdNYXJrZXJTaGFwZUlucHV0Py5mb250U2l6ZVB0Pz8wLGhlaWdodFB0OmUubnVtYmVyaW5nLnBpY0J1bGxldEhlaWdodFB0Pz9lLm51bWJlcmluZ01hcmtlclNoYXBlSW5wdXQ/LmZvbnRTaXplUHQ/PzB9fSksZS5udW1iZXJpbmc/LnBpY0J1bGxldEltYWdlUGF0aCYmbFswXSYmIXQuY29udGludWVzRnJvbVByZXZpb3VzKXtpZighYyl0aHJvdyBFcnJvcihgUGljdHVyZS1idWxsZXQgYWNxdWlzaXRpb24gcmVxdWlyZXMgcmVzb2x2ZWQgbWFya2VyIGZvbnQgZ2VvbWV0cnlgKTtsZXQgbj1lLm51bWJlcmluZy5waWNCdWxsZXRXaWR0aFB0Pz9jLm1hcmtlcldpZHRoUHQscj1lLm51bWJlcmluZy5waWNCdWxsZXRIZWlnaHRQdD8/ZS5udW1iZXJpbmdNYXJrZXJTaGFwZUlucHV0Py5mb250U2l6ZVB0O2lmKHI9PT12b2lkIDApdGhyb3cgRXJyb3IoYFBpY3R1cmUtYnVsbGV0IGFjcXVpc2l0aW9uIHJlcXVpcmVzIHJlc29sdmVkIG1hcmtlciBoZWlnaHRgKTtsZXQgYT1HUyh7YmFzZVJ0bDp0LmNvbnRleHQuYmFzZVJ0bCxhbGlnbmVkTGVhZGluZ0VkZ2VQdDpoQShjLHQuY29udGV4dCxpLG8sbFswXSksYXV0aG9yZWRGaXJzdEluZGVudFB0OmUuaW5kZW50Rmlyc3QsbWFya2VyU2hpZnRQdDpjLm1hcmtlclNoaWZ0UHQsbWFya2VyV2lkdGhQdDpufSk7bD1bey4uLmxbMF0scGxhY2VtZW50czpbe2tpbmQ6YHJlc291cmNlYCxyZXNvdXJjZUtpbmQ6YHBpY3R1cmUtYnVsbGV0YCxyYW5nZTp7c3RhcnQ6LTEsZW5kOjB9LHJlc291cmNlS2V5OkFnKHQuc291cmNlLGUubnVtYmVyaW5nLnBpY0J1bGxldEltYWdlUGF0aCksYm91bmRzOnt4UHQ6YSx5UHQ6bFswXS5iYXNlbGluZVB0LXIsd2lkdGhQdDpuLGhlaWdodFB0OnJ9LGFkdmFuY2VQdDowfSwuLi5sWzBdLnBsYWNlbWVudHNdfSwuLi5sLnNsaWNlKDEpXX1sPXZBKGwsZS5zaGFkaW5nLHQuY29udGFpbmVyU2hhZGluZyk7bGV0IHk9bi5jb250ZW50RW5kWVB0LW4uY29udGVudFN0YXJ0WVB0LGI9dC5wYXJhZ3JhcGhCb3JkZXJFZGdlcz8/e3RvcDpgdG9wYCxib3R0b206YGJvdHRvbWB9LHg9YkEoZSxsLGksbyxuLmNvbnRlbnRTdGFydFlQdCx5LGIpLFM9ZS5ib3JkZXJzP1suLi5iLnRvcD09PWBub25lYD9bXTpbW2IudG9wLGUuYm9yZGVyc1tiLnRvcF1dXSxbYHJpZ2h0YCxlLmJvcmRlcnMucmlnaHRdLC4uLmIuYm90dG9tPT09YG5vbmVgP1tdOltbYGJvdHRvbWAsZS5ib3JkZXJzLmJvdHRvbV1dLFtgbGVmdGAsZS5ib3JkZXJzLmxlZnRdXTpbXSxDPWUuYm9yZGVycz9TLmZsYXRNYXAoKFtlLHRdKT0+e2lmKCF5QSh0KSlyZXR1cm5bXTtsZXQgbj1lPT09YHRvcGB8fGU9PT1gYmV0d2VlbmB8fGU9PT1gYm90dG9tYCxyPWU9PT1gcmlnaHRgfHxlPT09YGJvdHRvbWAsaT1uP3gueVB0KyhyP3guaGVpZ2h0UHQ6MCk6eC54UHQrKHI/eC53aWR0aFB0OjApO3JldHVyblt7ZWRnZTplLGZyb206bj97eFB0OngueFB0LHlQdDppfTp7eFB0OmkseVB0OngueVB0fSx0bzpuP3t4UHQ6eC54UHQreC53aWR0aFB0LHlQdDppfTp7eFB0OmkseVB0OngueVB0K3guaGVpZ2h0UHR9LGNvbG9yOnQuY29sb3I/YCMke3QuY29sb3J9YDpgIzAwMDAwMGAsd2lkdGhQdDp0LndpZHRoLC4uLkN2KHQuc3R5bGUsdC53aWR0aCl9XX0pOltdLHc9dC50cmFpbGluZ0V4dGVudFB0Pz9uLnJlcXVlc3RlZFNwYWNlQWZ0ZXJQdCxUPUN3KGcpO3JldHVybiBlQSh7a2luZDpgcGFyYWdyYXBoYCxpZDp0LmlkLHNvdXJjZTp0LnNvdXJjZSwuLi5lLnBhcmFncmFwaElkPT09dm9pZCAwP3t9OntwYXJhZ3JhcGhJZDplLnBhcmFncmFwaElkfSxmbG93RG9tYWluSWQ6dC5mbG93RG9tYWluSWQsb3JkaW5hcnlGbG93OnQub3JkaW5hcnlGbG93LC4uLmUuc3R5bGVJZD09PXZvaWQgMD97fTp7c3R5bGVJZDplLnN0eWxlSWR9LC4uLiF0LmNvbnRpbnVlc0Zyb21QcmV2aW91cyYmZS5ib29rbWFya3M/Lmxlbmd0aD97Ym9va21hcmtTdGFydHM6ZS5ib29rbWFya3N9Ont9LGZsb3dCb3VuZHM6e3hQdDp0LnBsYWNlbWVudC5wYXJhZ3JhcGhYUHQseVB0OnQucGxhY2VtZW50LnN0YXJ0WVB0LHdpZHRoUHQ6dC5wbGFjZW1lbnQuYXZhaWxhYmxlV2lkdGhQdCxoZWlnaHRQdDpuLmNvbnRlbnRFbmRZUHQtdC5wbGFjZW1lbnQuc3RhcnRZUHQrd30saW5rQm91bmRzOnsuLi5lLnNoYWRpbmd8fGUuYm9yZGVycz94Ont4UHQ6aSx5UHQ6bi5jb250ZW50U3RhcnRZUHQsd2lkdGhQdDpNYXRoLm1heCgwLC4uLmwubWFwKGU9PmUuYm91bmRzLndpZHRoUHQpKSxoZWlnaHRQdDp5fX0sc3BhY2luZzp7YmVmb3JlUHQ6dC5wbGFjZW1lbnQuc3VwcHJlc3NTcGFjZUJlZm9yZT8wOm4ucmVxdWVzdGVkU3BhY2VCZWZvcmVQdCxhZnRlclB0Ond9LGNvbnRleHR1YWxTcGFjaW5nOmUuY29udGV4dHVhbFNwYWNpbmc/PyExLGxpbmVzOmwsYm9yZGVyczpDLHNoYWRpbmc6ZS5zaGFkaW5nP3tjb2xvcjpgIyR7ZS5zaGFkaW5nfWB9OnZvaWQgMCxyZXNvdXJjZXM6dSxkcmF3aW5nczpkLHRleHRCb3hlczpmLGV2ZW50czpfLGV4Y2x1c2lvbnM6Y2oodC5leGNsdXNpb25zLG0pLC4uLlQ/e2NlbGxDb250YWlubWVudEJvdW5kczpUfTp7fSxhbmNob3JDb2xsaXNpb25zOmxqKHQuYW5jaG9yQ29sbGlzaW9ucz8/W10saCksLi4ucC5sZW5ndGg/e2FuY2hvckZyYW1lczpwfTp7fSxwYXJhZ3JhcGhNYXJrOm4ubWFya09ubHk/e2hpZGRlbjplLm1hcmtWYW5pc2g9PT0hMCxib3VuZHM6e3hQdDppLHlQdDpuLmNvbnRlbnRTdGFydFlQdCx3aWR0aFB0OjAsaGVpZ2h0UHQ6eX19OnZvaWQgMH0pfWNvbnN0IGJqPShlLHQpPT5lRChlLHt4UHQ6MCx5UHQ6dH0pLHhqPShlLHQpPT50RChlLHt4UHQ6MCx5UHQ6dH0pLFNqPShlLHQpPT5hRChlLHt4UHQ6MCx5UHQ6dH0pLENqPShlLHQpPT5zRChlLHt4UHQ6MCx5UHQ6dH0pLHdqPShlLHQpPT5jRChlLHt4UHQ6MCx5UHQ6dH0pLFRqPShlLHQpPT5kRChlLHt4UHQ6MCx5UHQ6dH0pLEVqPShlLHQpPT5wRChlLHt4UHQ6MCx5UHQ6dH0pO2Z1bmN0aW9uIERqKGUsdCxuLHIpe2lmKCFlLnNoYWRpbmcmJmUuYm9yZGVycy5sZW5ndGg9PT0wKXJldHVybiBudWxsO2xldCBpPXRbMF0sYT10LmF0KC0xKTtpZighaXx8IWEpcmV0dXJue2JveDp4aihlLmlua0JvdW5kcyxuKSxib3JkZXJzOltdfTtsZXQgbz1lLmlua0JvdW5kcy55UHQscz1vK2UuaW5rQm91bmRzLmhlaWdodFB0LGM9ci5jb250aW51ZXNGcm9tUHJldmlvdXM/TWF0aC5tYXgobyxpLmJvdW5kcy55UHQpOm8sbD1yLmNvbnRpbnVlc09uTmV4dD9NYXRoLm1pbihzLGEuYm91bmRzLnlQdCthLmFkdmFuY2VQdCk6cyx1PXt4UHQ6ZS5pbmtCb3VuZHMueFB0LHlQdDpjK24sd2lkdGhQdDplLmlua0JvdW5kcy53aWR0aFB0LGhlaWdodFB0Ok1hdGgubWF4KDAsbC1jKX0sZD11LnhQdCxmPWQrdS53aWR0aFB0LHA9dS55UHQsbT1wK3UuaGVpZ2h0UHQ7cmV0dXJue2JveDp1LGJvcmRlcnM6ZS5ib3JkZXJzLmZsYXRNYXAoZT0+KGUuZWRnZT09PWB0b3BgfHxlLmVkZ2U9PT1gYmV0d2VlbmApJiZyLmNvbnRpbnVlc0Zyb21QcmV2aW91c3x8ZS5lZGdlPT09YGJvdHRvbWAmJnIuY29udGludWVzT25OZXh0P1tdOmUuZWRnZT09PWB0b3BgfHxlLmVkZ2U9PT1gYmV0d2VlbmA/W3suLi5lLGZyb206e3hQdDpkLHlQdDpwfSx0bzp7eFB0OmYseVB0OnB9fV06ZS5lZGdlPT09YGJvdHRvbWA/W3suLi5lLGZyb206e3hQdDpkLHlQdDptfSx0bzp7eFB0OmYseVB0Om19fV06ZS5lZGdlPT09YGxlZnRgP1t7Li4uZSxmcm9tOnt4UHQ6ZCx5UHQ6cH0sdG86e3hQdDpkLHlQdDptfX1dOmUuZWRnZT09PWByaWdodGA/W3suLi5lLGZyb206e3hQdDpmLHlQdDpwfSx0bzp7eFB0OmYseVB0Om19fV06W3suLi5lLGZyb206YmooZS5mcm9tLG4pLHRvOmJqKGUudG8sbil9XSl9fWZ1bmN0aW9uIE9qKGUsdCxuPWAke2UuaWR9OiR7dC5saW5lU3RhcnR9LSR7dC5saW5lRW5kfWApe2xldCByPWUubGluZXMuc2xpY2UodC5saW5lU3RhcnQsdC5saW5lRW5kKSxpPXJbMF0sYT1yLmF0KC0xKSxvPXQuY29udGludWVzRnJvbVByZXZpb3VzJiZpP2UuZmxvd0JvdW5kcy55UHQtaS5ib3VuZHMueVB0OjAscz1vPT09MD9yOnIubWFwKGU9PndqKGUsbykpLGM9c1swXSxsPXMuYXQoLTEpLHU9ZS5saW5lcy5tYXAoKGUsbik9Pm4+PXQubGluZVN0YXJ0JiZuPHQubGluZUVuZD9zW24tdC5saW5lU3RhcnRdOmUpLGQ9YyYmbD97eFB0Ok1hdGgubWluKC4uLnMubWFwKGU9PmUuYm91bmRzLnhQdCkpLHlQdDpjLmJvdW5kcy55UHQsd2lkdGhQdDpNYXRoLm1heCguLi5zLm1hcChlPT5lLmJvdW5kcy54UHQrZS5ib3VuZHMud2lkdGhQdCkpLU1hdGgubWluKC4uLnMubWFwKGU9PmUuYm91bmRzLnhQdCkpLGhlaWdodFB0OmwuYm91bmRzLnlQdCtsLmJvdW5kcy5oZWlnaHRQdC1jLmJvdW5kcy55UHR9OmUuaW5rQm91bmRzLGY9RGooZSxyLG8sdCkscD1uZXcgU2V0KHIuZmxhdE1hcChlPT5lLnBsYWNlbWVudHMuZmxhdE1hcChlPT5lLmtpbmQ9PT1gZHJhd2luZ2A/W2UuZHJhd2luZ0lkXTpbXSkpKSxtPWUuZHJhd2luZ3MuZmlsdGVyKGU9PnAuaGFzKGUuaWQpKS5tYXAoZT0+ZS5hbmNob3JMYXllcj8udmVydGljYWxPd25lcnNoaXA9PT1gcGFnZWA/ZTpTaihlLG8pKSxoPUN3KG0uZmlsdGVyKGU9PmUuYW5jaG9yTGF5ZXI/LmNlbGxDb250YWlubWVudD09PSEwKS5tYXAoZT0+ZS5mbG93Qm91bmRzKSksZz1uZXcgU2V0KGUuZHJhd2luZ3MuZmxhdE1hcChlPT57aWYoZS5hbmNob3JMYXllcj8udmVydGljYWxPd25lcnNoaXAhPT1gaG9zdGApcmV0dXJuW107bGV0IHQ9ZS5hbmNob3JMYXllci5hY3F1aXNpdGlvbk9jY3VycmVuY2VJZD8/ZS5hbmNob3JMYXllci5vY2N1cnJlbmNlSWQ7cmV0dXJuIHQ9PT12b2lkIDA/W106W3RdfSkpLF89bmV3IFNldChtLmZsYXRNYXAoZT0+e2lmKGUuYW5jaG9yTGF5ZXI/LnZlcnRpY2FsT3duZXJzaGlwIT09YGhvc3RgKXJldHVybltdO2xldCB0PWUuYW5jaG9yTGF5ZXIuYWNxdWlzaXRpb25PY2N1cnJlbmNlSWQ/P2UuYW5jaG9yTGF5ZXIub2NjdXJyZW5jZUlkO3JldHVybiB0PT09dm9pZCAwP1tdOlt0XX0pKSx2PW5ldyBTZXQoci5mbGF0TWFwKGU9PmUucGxhY2VtZW50cy5mbGF0TWFwKGU9PmUua2luZD09PWByZXNvdXJjZWA/W2UucmVzb3VyY2VLZXldOltdKSkpO2ZvcihsZXQgZSBvZiBtKWZvcihsZXQgdCBvZiBlLmNvbW1hbmRzKXQua2luZD09PWByZXNvdXJjZWAmJnYuYWRkKHQucmVzb3VyY2VLZXkpO2xldCB5PW5ldyBTZXQobS5mbGF0TWFwKGU9PltlLmlkLnJlcGxhY2UoYDpkcmF3aW5nOmAsYDp0ZXh0Ym94OmApLC4uLmUudGV4dEJveElkcz8/W11dKSksYj1uZXcgU2V0KG0uZmlsdGVyKGU9PmUuYW5jaG9yTGF5ZXI/LnZlcnRpY2FsT3duZXJzaGlwPT09YHBhZ2VgfHxlLm9yaWVudGF0aW9uPT09YHVwcmlnaHQtcGh5c2ljYWxgKS5mbGF0TWFwKGU9PmUudGV4dEJveElkcz8/W10pKSx4PW5ldyBTZXQobS5tYXAoZT0+RGcoYHNvdXJjZS1vY2N1cnJlbmNlYCxlLnNvdXJjZSkpKSxTPWk/LnJhbmdlLnN0YXJ0LEM9YT8ucmFuZ2UuZW5kLHtib29rbWFya1N0YXJ0czp3LC4uLlR9PWU7cmV0dXJuIGVBKHsuLi5ULGtpbmQ6YHBhcmFncmFwaGAsaWQ6biwuLi4hdC5jb250aW51ZXNGcm9tUHJldmlvdXMmJnc/Lmxlbmd0aD97Ym9va21hcmtTdGFydHM6d306e30sbGluZXM6dSxmbG93Qm91bmRzOnsuLi5lLmZsb3dCb3VuZHMseVB0OmUuZmxvd0JvdW5kcy55UHR9LC4uLmUuY2xpcEJvdW5kcz97Y2xpcEJvdW5kczp4aihlLmNsaXBCb3VuZHMsbyl9Ont9LHNwYWNpbmc6e2JlZm9yZVB0OnQuY29udGludWVzRnJvbVByZXZpb3VzPzA6ZS5zcGFjaW5nLmJlZm9yZVB0LGFmdGVyUHQ6dC5jb250aW51ZXNPbk5leHQ/MDplLnNwYWNpbmcuYWZ0ZXJQdH0saW5rQm91bmRzOmY/LmJveD8/ZCxib3JkZXJzOmY/LmJvcmRlcnM/P2UuYm9yZGVycy5tYXAoZT0+KHsuLi5lLGZyb206YmooZS5mcm9tLG8pLHRvOmJqKGUudG8sbyl9KSkscmVzb3VyY2VzOmUucmVzb3VyY2VzLmZpbHRlcihlPT52LmhhcyhlLnJlc291cmNlS2V5KSksZHJhd2luZ3M6bSxjZWxsQ29udGFpbm1lbnRCb3VuZHM6aD8/dm9pZCAwLHRleHRCb3hlczplLnRleHRCb3hlcy5maWx0ZXIoZT0+eS5oYXMoZS5pZCl8fHguaGFzKERnKGBzb3VyY2Utb2NjdXJyZW5jZWAsZS5zb3VyY2UpKSkubWFwKGU9PmIuaGFzKGUuaWQpP2U6RWooZSxvKSksZXZlbnRzOlM9PT12b2lkIDB8fEM9PT12b2lkIDA/W106ZS5ldmVudHMuZmlsdGVyKGU9PmUub2Zmc2V0Pj1TJiYoZS5vZmZzZXQ8Q3x8IXQuY29udGludWVzT25OZXh0JiZlLm9mZnNldD09PUMpKSxleGNsdXNpb25zOmUuZXhjbHVzaW9ucy5maWx0ZXIoZT0+ZS52ZXJ0aWNhbE93bmVyc2hpcD09PWBwYWdlYHx8ZS5hbmNob3JPY2N1cnJlbmNlSWQ9PT12b2lkIDB8fCFnLmhhcyhlLmFuY2hvck9jY3VycmVuY2VJZCl8fF8uaGFzKGUuYW5jaG9yT2NjdXJyZW5jZUlkKSkubWFwKGU9Pih7Li4uZSxib3VuZHM6ZS52ZXJ0aWNhbE93bmVyc2hpcD09PWBwYWdlYD9lLmJvdW5kczp4aihlLmJvdW5kcyxvKSxwb2x5Z29uOmUudmVydGljYWxPd25lcnNoaXA9PT1gcGFnZWA/ZS5wb2x5Z29uOmUucG9seWdvbi5tYXAoZT0+YmooZSxvKSl9KSksYW5jaG9yQ29sbGlzaW9uczooZS5hbmNob3JDb2xsaXNpb25zPz9bXSkuZmlsdGVyKGU9PmUudmVydGljYWxPd25lcnNoaXA9PT1gcGFnZWB8fCFnLmhhcyhlLm9jY3VycmVuY2VJZCl8fF8uaGFzKGUub2NjdXJyZW5jZUlkKSkubWFwKGU9Pih7Li4uZSxib3VuZHM6ZS52ZXJ0aWNhbE93bmVyc2hpcD09PWBwYWdlYD9lLmJvdW5kczp4aihlLmJvdW5kcyxvKX0pKSwuLi50LmNvbnRpbnVlc09uTmV4dD97cGFyYWdyYXBoTWFyazp2b2lkIDB9OmUucGFyYWdyYXBoTWFyaz97cGFyYWdyYXBoTWFyazp7Li4uZS5wYXJhZ3JhcGhNYXJrLGJvdW5kczp4aihlLnBhcmFncmFwaE1hcmsuYm91bmRzLG8pfX06e30sY29udGludWF0aW9uOnR9KX1mdW5jdGlvbiBraihlLHQpe3JldHVybiBlLnNlZ0luZGV4LXQuc2VnSW5kZXh8fGUuY2hhck9mZnNldC10LmNoYXJPZmZzZXR9ZnVuY3Rpb24gQWooZSx0LG4scixpLGEsbyxzLGMsbCl7aWYoIVtyLGldLmV2ZXJ5KGU9Pk51bWJlci5pc0Zpbml0ZShlKSYmZT49MCkpdGhyb3cgUmFuZ2VFcnJvcihgUGFyYWdyYXBoIGZyYWdtZW50IGV4dGVudHMgbXVzdCBiZSBmaW5pdGUgYW5kIG5vbi1uZWdhdGl2ZWApO2lmKG4ua2luZD09PWBzcGxpdHRhYmxlYCYmbi5saW5lRW5kQm91bmRhcmllcy5sZW5ndGghPT1lLmxpbmVzLmxlbmd0aCl0aHJvdyBSYW5nZUVycm9yKGBTcGxpdHRhYmxlIHBhcmFncmFwaCBzb3VyY2UgYm91bmRhcmllcyBtdXN0IGFsaWduIHdpdGggcmV0YWluZWQgbGluZXNgKTtpZihuLmtpbmQ9PT1gaW5kaXZpc2libGVgJiZ0LmJvdW5kYXJ5IT09bnVsbCl0aHJvdyBSYW5nZUVycm9yKGBJbmRpdmlzaWJsZSBwYXJhZ3JhcGggY2Fubm90IGNhcnJ5IGEgY29udGludWF0aW9uIGJvdW5kYXJ5YCk7bGV0IHU9by5hdXRob3JlZFNwYWNlQWZ0ZXJQdD8/MDtpZighTnVtYmVyLmlzRmluaXRlKHUpfHx1PDApdGhyb3cgUmFuZ2VFcnJvcihgQXV0aG9yZWQgcGFyYWdyYXBoIHNwYWNlQWZ0ZXIgbXVzdCBiZSBmaW5pdGUgYW5kIG5vbi1uZWdhdGl2ZWApO2xldCBkPWUubGluZXMubGVuZ3RoLGY9bj0+T2ooZSx7bGluZVN0YXJ0OjAsbGluZUVuZDpuLGNvbnRpbnVlc0Zyb21QcmV2aW91czp0LmJvdW5kYXJ5IT09bnVsbCxjb250aW51ZXNPbk5leHQ6bjxkfSkscD1lPT57bGV0IHQ9cz8uKGUpPz8wO2lmKCFOdW1iZXIuaXNGaW5pdGUodCl8fHQ8MCl0aHJvdyBSYW5nZUVycm9yKGBQYXJhZ3JhcGggcGFnZS1sb2NhbCByZXNlcnZlIG11c3QgYmUgZmluaXRlIGFuZCBub24tbmVnYXRpdmVgKTtyZXR1cm4gdH0sbT1lPT5sPy4oZSk/PyEwLGg9KGUsdCk9PntpZighdClyZXR1cm4gZS5hZHZhbmNlUHQ7bGV0IG49R0Qoe2FkdmFuY2VQdDplLmFkdmFuY2VQdCxyZXRhaW5lZFNwYWNlQWZ0ZXJQdDplLnNwYWNpbmcuYWZ0ZXJQdCxhdXRob3JlZFNwYWNlQWZ0ZXJQdDp1fSk7cmV0dXJuIEpEKHtwYXJhZ3JhcGg6ZSx3cml0aW5nTW9kZTpvLndyaXRpbmdNb2RlPz9gaG9yaXpvbnRhbC10YmAsbG9naWNhbExpbmVCb3hFeHRlbnRQdDpuLGF2YWlsYWJsZUJsb2NrRXh0ZW50UHQ6cn0pfTtpZihuLmtpbmQ9PT1gaW5kaXZpc2libGVgKXtsZXQgbj1wKGUpLG89aChlLCEwKTtyZXR1cm4gYSYmKG8rbj5yfHwhbShuKSkmJm8rbjw9aT97ZnJhZ21lbnQ6bnVsbCxuZXh0Q3Vyc29yOnQscmVxdWlyZXNGcmVzaEZsb3dSZWdpb246ITAsYWRkaXRpb25hbFJlc2VydmVQdDowLGFkbWl0dGVkQmxvY2tFeHRlbnRQdDowfTp7ZnJhZ21lbnQ6ZSxuZXh0Q3Vyc29yOm51bGwscmVxdWlyZXNGcmVzaEZsb3dSZWdpb246ITEsYWRkaXRpb25hbFJlc2VydmVQdDpuLGFkbWl0dGVkQmxvY2tFeHRlbnRQdDpNYXRoLm1pbihlLmFkdmFuY2VQdCxyKX19aWYoZD09PTApe2xldCBuPXAoZSksbz1oKGUsITApO3JldHVybiBhJiYobytuPnJ8fCFtKG4pKSYmbytuPD1pP3tmcmFnbWVudDpudWxsLG5leHRDdXJzb3I6dCxyZXF1aXJlc0ZyZXNoRmxvd1JlZ2lvbjohMCxhZGRpdGlvbmFsUmVzZXJ2ZVB0OjAsYWRtaXR0ZWRCbG9ja0V4dGVudFB0OjB9OntmcmFnbWVudDplLG5leHRDdXJzb3I6bnVsbCxyZXF1aXJlc0ZyZXNoRmxvd1JlZ2lvbjohMSxhZGRpdGlvbmFsUmVzZXJ2ZVB0Om4sYWRtaXR0ZWRCbG9ja0V4dGVudFB0Ok1hdGgubWluKGUuYWR2YW5jZVB0LHIpfX1sZXQgZz1wKGUpLF89aChlLCEwKTtpZih0LmJvdW5kYXJ5PT09bnVsbCYmby5rZWVwTGluZXMmJmEmJihfK2c+cnx8IW0oZykpJiZfK2c8PWkpcmV0dXJue2ZyYWdtZW50Om51bGwsbmV4dEN1cnNvcjp0LHJlcXVpcmVzRnJlc2hGbG93UmVnaW9uOiEwLGFkZGl0aW9uYWxSZXNlcnZlUHQ6MCxhZG1pdHRlZEJsb2NrRXh0ZW50UHQ6MH07bGV0IHY9VkQoMCxkLHIsZT0+KCgpPT57bGV0IHQ9ZihlKSxuPXAodCk7cmV0dXJuIG0obik/aCh0LGU9PT1kKStuOnIrMX0pKCkpLmVuZDtpZih2PT09MCl7aWYoYSlyZXR1cm57ZnJhZ21lbnQ6bnVsbCxuZXh0Q3Vyc29yOnQscmVxdWlyZXNGcmVzaEZsb3dSZWdpb246ITAsYWRkaXRpb25hbFJlc2VydmVQdDowLGFkbWl0dGVkQmxvY2tFeHRlbnRQdDowfTt2PTF9Zm9yKDs7KXtsZXQgZT1IRCh7d2lkb3dDb250cm9sOm8ud2lkb3dDb250cm9sLHN0YXJ0OjAsZW5kOnYsdG90YWxMaW5lczpkLGNhblJlbG9jYXRlOmF9KTtpZihlLmtpbmQ9PT1gcmVsb2NhdGVgKXJldHVybntmcmFnbWVudDpudWxsLG5leHRDdXJzb3I6dCxyZXF1aXJlc0ZyZXNoRmxvd1JlZ2lvbjohMCxhZGRpdGlvbmFsUmVzZXJ2ZVB0OjAsYWRtaXR0ZWRCbG9ja0V4dGVudFB0OjB9O2lmKGUua2luZCE9PWBkcm9wTGFzdExpbmVgKWJyZWFrOy0tdn1sZXQgeT1mKHYpLGI9djxkP24ubGluZUVuZEJvdW5kYXJpZXNbdi0xXTpudWxsO2lmKGIhPT1udWxsJiZ0LmJvdW5kYXJ5IT09bnVsbCYma2ooYix0LmJvdW5kYXJ5KTw9MCl0aHJvdyBFcnJvcihgUGFyYWdyYXBoIGNvbnRpbnVhdGlvbiBzb3VyY2UgYm91bmRhcnkgZGlkIG5vdCBhZHZhbmNlYCk7cmV0dXJue2ZyYWdtZW50OnksbmV4dEN1cnNvcjpiPT09bnVsbD9udWxsOk9iamVjdC5mcmVlemUoe2JvdW5kYXJ5OmIsc291cmNlUmFuZ2VTdGFydDp5LmxpbmVzLmF0KC0xKS5yYW5nZS5lbmQsLi4uYz09PXZvaWQgMD97fTp7dW5pZm9ybVJ1YnlBZHZhbmNlUHQ6Y319KSxyZXF1aXJlc0ZyZXNoRmxvd1JlZ2lvbjohMSxhZGRpdGlvbmFsUmVzZXJ2ZVB0OnAoeSksYWRtaXR0ZWRCbG9ja0V4dGVudFB0Ok1hdGgubWluKHkuYWR2YW5jZVB0LHIpfX1mdW5jdGlvbiBqaihlLHQpe2xldCBuPW5ldyBNYXA7aWYoIWUpcmV0dXJuIG47bGV0IHI9bmV3IFNldChlLm1hcChlPT5lLmlkKSk7cmV0dXJuIHQuZm9yRWFjaChlPT57ci5oYXMoZSkmJiFuLmhhcyhlKSYmbi5zZXQoZSxuLnNpemUrMSl9KSxufWZ1bmN0aW9uIE1qKGUpe2xldCB0PW5ldyBNYXA7aWYoIWUpcmV0dXJuIHQ7Zm9yKGxldCBuIG9mIGUpdC5zZXQobi5pZCxuKTtyZXR1cm4gdH1mdW5jdGlvbiBOaihlLHQpe2xldCBuPVtdLHI9bmV3IFNldDtmb3IobGV0IGkgb2YgZSlpZihpLnR5cGU9PT1gcGFyYWdyYXBoYCYmYHJ1bnNgaW4gaSlmb3IobGV0IGUgb2YgaS5ydW5zKWUudHlwZSE9PWB0ZXh0YHx8ZS5ub3RlUmVmPy5raW5kIT09dHx8ZS5ub3RlUmVmLmlkLmxlbmd0aD09PTB8fHIuaGFzKGUubm90ZVJlZi5pZCl8fChyLmFkZChlLm5vdGVSZWYuaWQpLG4ucHVzaChlLm5vdGVSZWYuaWQpKTtlbHNlIGlmKGkudHlwZT09PWB0YWJsZWAmJmByb3dzYGluIGkpZm9yKGxldCBlIG9mIGkucm93cylmb3IobGV0IGkgb2YgZS5jZWxscylmb3IobGV0IGUgb2YgTmooaS5jb250ZW50LHQpKXIuaGFzKGUpfHwoci5hZGQoZSksbi5wdXNoKGUpKTtyZXR1cm4gT2JqZWN0LmZyZWV6ZShuKX1mdW5jdGlvbiBQaihlLHQpe3JldHVybiBPYmplY3QuZnJlZXplKFsuLi5uZXcgU2V0KGUuZmxhdE1hcChlPT5lLnBsYWNlbWVudHMuZmxhdE1hcChlPT5lLmtpbmQ9PT1gdGV4dGAmJmUubm90ZVJlZmVyZW5jZT8ua2luZD09PXQ/W2Uubm90ZVJlZmVyZW5jZS5pZF06W10pKSldKX1mdW5jdGlvbiBGaihlLHQpe3JldHVybiBlLnJvd3MuZmxhdE1hcChlPT5lLmNlbGxzLmZsYXRNYXAoZT0+ZS5ibG9ja3MuZmxhdE1hcChlPT5JaihlLmxheW91dCx0KSkpKX1mdW5jdGlvbiBJaihlLHQpe2xldCBuPWUua2luZD09PWBwYXJhZ3JhcGhgP1BqKGUubGluZXMsdCk6RmooZSx0KTtyZXR1cm4gT2JqZWN0LmZyZWV6ZShbLi4ubmV3IFNldChuKV0pfWZ1bmN0aW9uIExqKGUpe3JldHVybiBQaihlLGBmb290bm90ZWApfWZ1bmN0aW9uIFJqKGUpe3JldHVybiBJaihlLGBmb290bm90ZWApfWZ1bmN0aW9uIHpqKGUpe3JldHVybiBJaihlLGBlbmRub3RlYCl9ZnVuY3Rpb24gQmooZSl7aWYoIU51bWJlci5pc0ludGVnZXIoZS5jb2x1bW5Db3VudCl8fGUuY29sdW1uQ291bnQ8PTApdGhyb3cgUmFuZ2VFcnJvcihgQ29sdW1uIGNvdW50IG11c3QgYmUgYSBwb3NpdGl2ZSBpbnRlZ2VyYCk7Zm9yKGxldCB0IG9mIGUuZnJhZ21lbnRzKWlmKCFOdW1iZXIuaXNGaW5pdGUodC5leHRlbnRQdCl8fHQuZXh0ZW50UHQ8MCl0aHJvdyBSYW5nZUVycm9yKGBDb2x1bW4gYmFsYW5jZSBmcmFnbWVudCBleHRlbnRzIG11c3QgYmUgZmluaXRlIGFuZCBub24tbmVnYXRpdmVgKTtpZihlLmZyYWdtZW50cy5sZW5ndGg9PT0wKXJldHVybiBPYmplY3QuZnJlZXplKHt0YXJnZXRQdDowLGN1dEluZGV4ZXM6T2JqZWN0LmZyZWV6ZShbXSksdHJhbnNpdGlvbkV4cGFuc2lvbnM6MH0pO2xldCB0PVswXSxuPVswXSxyPVtdO2UuZnJhZ21lbnRzLmZvckVhY2goKGksYSk9Pnt0LnB1c2godFthXStpLmV4dGVudFB0KTtsZXQgbz1hKzE7KGkuYnJlYWtBZnRlciE9PWBmb3JiaWRkZW5gfHxvPT09ZS5mcmFnbWVudHMubGVuZ3RoKSYmbi5wdXNoKG8pLGkuYnJlYWtBZnRlcj09PWBmb3JjZWRgJiZvPGUuZnJhZ21lbnRzLmxlbmd0aCYmci5wdXNoKG8pfSk7bGV0IGk9TWF0aC5taW4oZS5jb2x1bW5Db3VudCxuLmxlbmd0aC0xKSxhPUFycmF5LmZyb20oe2xlbmd0aDppKzF9LCgpPT5BcnJheShuLmxlbmd0aCkuZmlsbCgxLzApKSxvPUFycmF5LmZyb20oe2xlbmd0aDppKzF9LCgpPT5BcnJheShuLmxlbmd0aCkuZmlsbCgtMSkpO2FbMF1bMF09MDtsZXQgcz0wO2ZvcihsZXQgZT0xO2U8PWk7ZSs9MSl7bGV0IGk9YVtlLTFdLGM9YVtlXSxsPWkuZmxhdE1hcCgoZSx0KT0+TnVtYmVyLmlzRmluaXRlKGUpP1t0XTpbXSksdT0wLGQ9MCxmPTAscD0wO2ZvcihsZXQgYT0xO2E8bi5sZW5ndGg7YSs9MSl7bGV0IG09blthXTtmb3IoO2Q8ci5sZW5ndGgmJnJbZF08bTspZj1yW2RdLGQrPTE7Zm9yKDtuW3BdPGY7KXArPTE7Zm9yKDt1PGwubGVuZ3RoJiZsW3VdPHA7KXUrPTE7bGV0IGg9bFt1XTtpZihoPT09dm9pZCAwfHxoPj1hKWNvbnRpbnVlO2xldCBnPWU9PntzKz0xO2xldCByPW5bZV07cmV0dXJuIE1hdGgubWF4KGlbZV0sdFttXS10W3JdKX0sXz1oLHY9ZyhfKTtmb3IoO3UrMTxsLmxlbmd0aDspe2xldCBlPWxbdSsxXTtpZihlPj1hKWJyZWFrO2xldCB0PWcoZSk7aWYodD52KWJyZWFrO3UrPTEsXz1lLHY9dH1jW2FdPXYsb1tlXVthXT1ffX1sZXQgYz1uLmxlbmd0aC0xLGw9LTEsdT0xLzA7Zm9yKGxldCBlPTE7ZTw9aTtlKz0xKXtsZXQgdD1hW2VdW2NdO3Q8PXUmJih1PXQsbD1lKX1pZihsPDB8fCFOdW1iZXIuaXNGaW5pdGUodSkpdGhyb3cgRXJyb3IoYEF1dGhvcmVkIGNvbHVtbiBicmVha3MgZXhjZWVkIHRoZSBhdmFpbGFibGUgY29sdW1uIGZyb250aWVyYCk7bGV0IGQ9W10sZj1jO2ZvcihsZXQgZT1sO2U+MDstLWUpaWYoZC5wdXNoKG5bZl0pLGY9b1tlXVtmXSxmPDApdGhyb3cgRXJyb3IoYENvbHVtbiBiYWxhbmNlIGZyb250aWVyIG9taXR0ZWQgYSBwcmVkZWNlc3NvcmApO3JldHVybiBkLnJldmVyc2UoKSxPYmplY3QuZnJlZXplKHt0YXJnZXRQdDp1LGN1dEluZGV4ZXM6T2JqZWN0LmZyZWV6ZShkKSx0cmFuc2l0aW9uRXhwYW5zaW9uczpzfSl9ZnVuY3Rpb24gVmooZSl7bGV0IHQ9bmV3IE1hcDtyZXR1cm4gZS5zZXF1ZW5jZS5mb3JFYWNoKChlLG4pPT57aWYoZS5raW5kPT09YGJvZHktYmxvY2tgKXtsZXQgcj1lLmJsb2NrO3Quc2V0KE9nKHIuc291cmNlKSxPYmplY3QuZnJlZXplKHtzZXF1ZW5jZUluZGV4Om4sa2VlcExpbmVzOnIua2luZD09PWBwYXJhZ3JhcGhgJiZyLmtlZXBMaW5lcyxrZWVwTmV4dDpyLmtpbmQ9PT1gcGFyYWdyYXBoYCYmci5rZWVwTmV4dCx3aWRvd0NvbnRyb2w6ci5raW5kPT09YHBhcmFncmFwaGAmJnIud2lkb3dDb250cm9sfSkpO3JldHVybn1lLmtpbmQ9PT1gYWRqYWNlbnQtdGFibGUtZ3JvdXBgJiZlLnRhYmxlcy5mb3JFYWNoKGU9PnQuc2V0KE9nKGUuc291cmNlKSxPYmplY3QuZnJlZXplKHtzZXF1ZW5jZUluZGV4Om4sa2VlcExpbmVzOiExLGtlZXBOZXh0OiExLHdpZG93Q29udHJvbDohMX0pKSl9KSx0fWZ1bmN0aW9uIEhqKGUsdCxuKXtsZXQgcj10LWU7aWYobi5sZW5ndGg8PTEpcmV0dXJuIE9iamVjdC5mcmVlemUoW3JdKTtsZXQgaT1bXSxhPWU7Zm9yKGxldCBlIG9mIG4pe2lmKCFOdW1iZXIuaXNGaW5pdGUoZSl8fGU8YXx8ZT50KXJldHVybiBPYmplY3QuZnJlZXplKFtyXSk7aS5wdXNoKGUtYSksYT1lfXJldHVybiBpW2kubGVuZ3RoLTFdPWkuYXQoLTEpK3QtYSxPYmplY3QuZnJlZXplKGkpfWZ1bmN0aW9uIFVqKGUsdCxuLHIpe2xldCBpPW5ldyBTZXQoci5mbG93RG9tYWluSWRzKSxhPW5ldyBNYXAobi5sYXllcnMuYm9keS5tYXAoZT0+W2UuaWQsZV0pKSxvPVZqKGUpLHM9W107Zm9yKGxldCBlIG9mIHQpe2lmKCFpLmhhcyhlLmZsb3dEb21haW5JZCkpY29udGludWU7bGV0IHQ9YS5nZXQoZS5ub2RlSWQpO2lmKCF0fHwhdC5vcmRpbmFyeUZsb3cpY29udGludWU7bGV0IG49T2codC5zb3VyY2UpLHI9by5nZXQobik7aWYoIXIpY29udGludWU7bGV0IGM9dC5raW5kPT09YHBhcmFncmFwaGAmJiFyLmtlZXBMaW5lcyYmdC5saW5lcy5sZW5ndGg+MT90LmxpbmVzLm1hcChlPT5lLmJvdW5kcy55UHQrZS5hZHZhbmNlUHQpOnQua2luZD09PWB0YWJsZWAmJnQucm93cy5sZW5ndGg+MT90LnJvd3MubWFwKGU9PmUuZmxvd0JvdW5kcy55UHQrZS5hZHZhbmNlUHQpOltlLmJsb2NrRW5kUHRdO0hqKGUuYmxvY2tTdGFydFB0LGUuYmxvY2tFbmRQdCxjKS5mb3JFYWNoKGU9PnMucHVzaCh7ZXh0ZW50UHQ6ZSxicmVha0FmdGVyOmBhbGxvd2VkYCxzZXF1ZW5jZUluZGV4OnIuc2VxdWVuY2VJbmRleCxzb3VyY2VJZGVudGl0eTpuLHBhcmFncmFwaExpbmU6dC5raW5kPT09YHBhcmFncmFwaGAmJiFyLmtlZXBMaW5lcyYmdC5saW5lcy5sZW5ndGg+MH0pKX1sZXQgYz1uZXcgTWFwO3MuZm9yRWFjaCgoZSx0KT0+e2xldCBuPWMuZ2V0KGUuc291cmNlSWRlbnRpdHkpPz9bXTtuLnB1c2godCksYy5zZXQoZS5zb3VyY2VJZGVudGl0eSxuKX0pO2ZvcihsZXRbZSx0XW9mIGMpe2xldCBuPW8uZ2V0KGUpO2lmKCFuKWNvbnRpbnVlO2xldCByPXQuZmlsdGVyKGU9PnNbZV0ucGFyYWdyYXBoTGluZSk7bi5rZWVwTGluZXMmJnQuc2xpY2UoMCwtMSkuZm9yRWFjaChlPT57c1tlXS5icmVha0FmdGVyPWBmb3JiaWRkZW5gfSk7Zm9yKGxldCBlPTA7ZSsxPHIubGVuZ3RoO2UrPTEpSEQoe3dpZG93Q29udHJvbDpuLndpZG93Q29udHJvbCxzdGFydDowLGVuZDplKzEsdG90YWxMaW5lczpyLmxlbmd0aCxjYW5SZWxvY2F0ZTohMH0pLmtpbmQhPT1ga2VlcGAmJihzW3JbZV1dLmJyZWFrQWZ0ZXI9YGZvcmJpZGRlbmApO24ua2VlcE5leHQmJihzW3QuYXQoLTEpXS5icmVha0FmdGVyPWBmb3JiaWRkZW5gKX1sZXQgbD1lLmluaXRpYWxTZWN0aW9uLnNlY3Rpb25PY2N1cnJlbmNlSWQ7cmV0dXJuIGUuc2VxdWVuY2UuZm9yRWFjaCgoZSx0KT0+e2lmKGUua2luZD09PWBiZWdpbi1zZWN0aW9uYCl7bD1lLnNlY3Rpb24uc2VjdGlvbk9jY3VycmVuY2VJZDtyZXR1cm59aWYoIShsIT09ci5zZWN0aW9uT2NjdXJyZW5jZUlkfHxlLmtpbmQhPT1gYXV0aG9yZWQtYnJlYWtgfHxlLmJyZWFrIT09YGNvbHVtbmApKXtmb3IobGV0IGU9cy5sZW5ndGgtMTtlPj0wOy0tZSlpZighKHNbZV0uc2VxdWVuY2VJbmRleD49dCkpe3NbZV0uYnJlYWtBZnRlcj1gZm9yY2VkYDticmVha319fSksT2JqZWN0LmZyZWV6ZShzLm1hcChlPT5PYmplY3QuZnJlZXplKGUpKSl9ZnVuY3Rpb24gV2ooZSx0LG4scixpKXtsZXQgYT1VaihlLHQscixpKSxvPW4uZ2V0KHIucGFnZUluZGV4KT8/MDtyZXR1cm4gQmooe2NvbHVtbkNvdW50OmkuZmxvd0RvbWFpbklkcy5sZW5ndGgsZnJhZ21lbnRzOmF9KS50YXJnZXRQdCtvfWZ1bmN0aW9uIEdqKGUsdCxuLHIsaSl7bGV0IGE9dCxvPWUubGluZXMubWFwKCh0LG8pPT57bGV0IHM9YSsrLGM9U3RyaW5nKHMpLGw9aS5tZWFzdXJlTGluZU51bWJlckdseXBoKGMpLHU9T2JqZWN0LmZyZWV6ZSh7eFB0OmUuZmxvd0JvdW5kcy54UHQtcix5UHQ6dC5iYXNlbGluZVB0fSk7cmV0dXJuIE9iamVjdC5mcmVlemUoe2xpbmVJbmRleDpvLGNvdW50ZXJWYWx1ZTpzLGJvdW5kczpPYmplY3QuZnJlZXplKHt4UHQ6dS54UHQtbC53aWR0aFB0LHlQdDp1LnlQdC1sLmFzY2VudFB0LHdpZHRoUHQ6bC53aWR0aFB0LGhlaWdodFB0OmwuYXNjZW50UHQrbC5kZXNjZW50UHR9KSxwYWludE9wczpzJW49PT0wP09iamVjdC5mcmVlemUoW09iamVjdC5mcmVlemUoe2tpbmQ6YHRleHRgLHRleHQ6YyxvcmlnaW46dSxmb250OmwuZm9udD8/YGAsY29sb3I6YCMwMDAwMDBgLHRleHRBbGlnbjpgcmlnaHRgfSldKTpPYmplY3QuZnJlZXplKFtdKX0pfSk7cmV0dXJuIE9iamVjdC5mcmVlemUoe3BhcmFncmFwaDpPYmplY3QuZnJlZXplKHsuLi5lLGxpbmVOdW1iZXJzOk9iamVjdC5mcmVlemUobyl9KSxjb3VudGVyRW5kOmF9KX1mdW5jdGlvbiBLaihlLHQsbil7bGV0IHI9bmV3IE1hcCxpLGE9ZS5wYWdlcy5tYXAoZT0+e2lmKGUucGFyaXR5QmxhbmspcmV0dXJuIGU7bGV0IGE9Wy4uLmUubGF5ZXJzLmJvZHldO2ZvcihsZXQgbz0wO288ZS5zZWN0aW9uUmVnaW9ucy5sZW5ndGg7bys9MSl7bGV0IHM9ZS5zZWN0aW9uUmVnaW9uc1tvXSxjPW5ldyBTZXQocy5mbG93RG9tYWluSWRzKSxsPWEuZmxhdE1hcCgoZSx0KT0+Yy5oYXMoZS5mbG93RG9tYWluSWQpP1t0XTpbXSksdT1uZXcgTWFwKGwubWFwKGU9PlthW2VdLmlkLGFbZV1dKSksZD1uLmZpbHRlcihlPT57bGV0IHQ9dS5nZXQoZS5ub2RlSWQpO3JldHVybiBjLmhhcyhlLmZsb3dEb21haW5JZCkmJmUuYmxvY2tFbmRQdD5lLmJsb2NrU3RhcnRQdCYmdCE9PXZvaWQgMCYmKHQub3JkaW5hcnlGbG93fHx0LnNlY3Rpb25GbG93T3duZXJzaGlwPT09YGhvc3QtZmxvd2ApfSksZj1kLmxlbmd0aD09PTA/cy5ibG9ja1N0YXJ0UHQ6TWF0aC5taW4oLi4uZC5tYXAoZT0+ZS5ibG9ja1N0YXJ0UHQpKSxwPWQubGVuZ3RoPT09MD9mOk1hdGgubWF4KC4uLmQubWFwKGU9PmUuYmxvY2tFbmRQdCkpLG09cy5ibG9ja0VuZFB0LGg9TWF0aC5tYXgoMCxtLXMuYmxvY2tTdGFydFB0KSxnPU1hdGgubWF4KDAscC1mKSxfPXMuc2VjdGlvbi52ZXJ0aWNhbEFsaWdubWVudCx2PWQubGVuZ3RoPjAmJmc8aD9fPT09YGNlbnRlcmA/cy5ibG9ja1N0YXJ0UHQrKGgtZykvMi1mOl89PT1gYm90dG9tYD9tLWctZjowOjAseT1zLnNlY3Rpb24ubGluZU51bWJlcmluZyxiPXk/LnJlc3RhcnQ9PT1gbmV3UGFnZWA/eS5zdGFydDp5Py5yZXN0YXJ0PT09YG5ld1NlY3Rpb25gP3IuZ2V0KHMuc2VjdGlvbk9jY3VycmVuY2VJZCk/P3kuc3RhcnQ6ci5nZXQocy5zZWN0aW9uT2NjdXJyZW5jZUlkKT8/aT8/eT8uc3RhcnQ/PzE7Yj8/PTE7Zm9yKGxldCBlIG9mIGwpe2xldCBuPWFbZV07aWYobi5raW5kPT09YHBhcmFncmFwaGAmJm4ub3JkaW5hcnlGbG93JiZ5KXtsZXQgZT1HaihuLGIsTWF0aC5tYXgoMSx5LmNvdW50QnkpLE1DKHkuZGlzdGFuY2UpLHQpO249ZS5wYXJhZ3JhcGgsYj1lLmNvdW50ZXJFbmR9diE9PTAmJihuLm9yZGluYXJ5Rmxvd3x8bi5zZWN0aW9uRmxvd093bmVyc2hpcD09PWBob3N0LWZsb3dgKSYmKG4ua2luZD09PWBwYXJhZ3JhcGhgfHxuLmtpbmQ9PT1gdGFibGVgKSYmKG49Q0Qobix7eFB0OjAseVB0OnZ9KSksYVtlXT1ufXkmJihyLnNldChzLnNlY3Rpb25PY2N1cnJlbmNlSWQsYiksaT1iKX1yZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Li4uZSxsYXllcnM6cV8oZS5sYXllcnMsYGJvZHlgLGEpfSl9KTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Li4uZSxwYWdlczpPYmplY3QuZnJlZXplKGEpfSl9ZnVuY3Rpb24gcWooZSl7bGV0IHQ9bmV3IE1hcDtmb3IobGV0IG4gb2YgZSlmb3IobGV0IGUgb2Ygbi5zZWN0aW9uUmVnaW9ucyl0LmhhcyhlLnNlY3Rpb25PY2N1cnJlbmNlSWQpfHx0LnNldChlLnNlY3Rpb25PY2N1cnJlbmNlSWQsbi5wYWdlSW5kZXgpO3JldHVybiB0fWZ1bmN0aW9uIEpqKGUsdCl7bGV0IG49ZVt0XTtyZXR1cm4gbj90PT09MHx8ZVt0LTFdPy5zZWN0aW9uT2NjdXJyZW5jZUlkIT09bi5zZWN0aW9uT2NjdXJyZW5jZUlkOiExfWZ1bmN0aW9uIFlqKGUsdCl7cmV0dXJuIHQudGl0bGVQYWdlJiZ0LmZpcnN0UGFnZU9mU2VjdGlvbj9lLmZpcnN0OnQuZXZlbkFuZE9kZEhlYWRlcnMmJnQuZGlzcGxheVBhZ2VOdW1iZXIlMj09MD9lLmV2ZW46ZS5kZWZhdWx0fWZ1bmN0aW9uIFhqKGUsdCl7aWYoIVtlLnBhZ2VIZWlnaHQsZS5tYXJnaW5Ub3AsZS5tYXJnaW5Cb3R0b20sdC50b3AsdC5ib3R0b21dLmV2ZXJ5KE51bWJlci5pc0Zpbml0ZSkpdGhyb3cgUmFuZ2VFcnJvcihgUmVzZXJ2ZWQgYm9keSBpbnRlcnZhbCBpbnB1dHMgbXVzdCBiZSBmaW5pdGVgKTtpZihlLnBhZ2VIZWlnaHQ8PTB8fHQudG9wPDB8fHQuYm90dG9tPDApdGhyb3cgUmFuZ2VFcnJvcihgUmVzZXJ2ZWQgYm9keSBpbnRlcnZhbCByZXF1aXJlcyBhIHBvc2l0aXZlIHBhZ2UgYW5kIG5vbi1uZWdhdGl2ZSByZXNlcnZlc2ApO2xldCBuPU1hdGgubWluKGUucGFnZUhlaWdodCxNYXRoLmFicyhlLm1hcmdpblRvcCkrdC50b3ApLHI9ZS5wYWdlSGVpZ2h0LU1hdGguYWJzKGUubWFyZ2luQm90dG9tKS10LmJvdHRvbTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7YmxvY2tTdGFydFB0Om4sYmxvY2tFbmRQdDpNYXRoLm1heChuLE1hdGgubWluKGUucGFnZUhlaWdodCxyKSl9KX1mdW5jdGlvbiBaaihlLHQsbil7aWYoIVtlLHQsbl0uZXZlcnkoTnVtYmVyLmlzRmluaXRlKSl0aHJvdyBSYW5nZUVycm9yKGBIZWFkZXIvZm9vdGVyIHJlc2VydmUgaW5wdXRzIG11c3QgYmUgZmluaXRlYCk7aWYoZTwwKXRocm93IFJhbmdlRXJyb3IoYFN0b3J5IGV4dGVudCBtdXN0IGJlIG5vbi1uZWdhdGl2ZWApO3JldHVybiBlPT09MHx8dDwwPzA6TWF0aC5tYXgoMCxlLSh0LW4pKX1mdW5jdGlvbiBRaihlKXtsZXQgdD10PT57bGV0IG49T2JqZWN0LmZyZWV6ZShlLm1lYXN1cmUodCkubWFwKGU9Pk9iamVjdC5mcmVlemUoey4uLmV9KSkpO3JldHVybiBPYmplY3QuZnJlZXplKHtyZXN1bHQ6dCxyZXNlcnZlczpuLHBhZ2VDb3VudDpuLmxlbmd0aCxmaW5nZXJwcmludDpEZyhgaGVhZGVyLWZvb3Rlci1yZXNlcnZlLXYxYCx7aWRlbnRpdHk6ZS5pZGVudGl0eSh0KSxyZXNlcnZlczpufSl9KX0sbj10KGUuc2VlZCk7cmV0dXJuIWUucmVxdWlyZXNDb252ZXJnZW5jZSYmbi5yZXNlcnZlcy5ldmVyeShlPT5lLnRvcD09PTAmJmUuYm90dG9tPT09MCk/bjpNYihuLG49PnQoZS5yZXBhZ2luYXRlKG4ucmVzZXJ2ZXMsbi5yZXN1bHQpKSxlLmxpbWl0Pz8xNil9dmFyICRqPWNsYXNzIGV4dGVuZHMgWntjb25zdHJ1Y3RvcihlLHQpe3N1cGVyKGBJTlZBTElEX0dFT01FVFJZYCxgJHt0fSBleGNlZWRzIHRoZSBhdmFpbGFibGUgZmxvdyBjYXBhY2l0eWApLHRoaXMuY29udGFpbmVySWQ9ZSx0aGlzLmxheW91dElkPXQsdGhpcy5uYW1lPWBGbG93Q2FwYWNpdHlFeGNlZWRlZEVycm9yYH19O2Z1bmN0aW9uIGVNKGUsdCl7aWYoZS5sZW5ndGg9PT0wKXJldHVybnt4UHQ6dC54UHQseVB0OnQueVB0LHdpZHRoUHQ6MCxoZWlnaHRQdDowfTtsZXQgbj1NYXRoLm1pbiguLi5lLm1hcChlPT5lLnhQdCkpLHI9TWF0aC5taW4oLi4uZS5tYXAoZT0+ZS55UHQpKSxpPU1hdGgubWF4KC4uLmUubWFwKGU9PmUueFB0K2Uud2lkdGhQdCkpLGE9TWF0aC5tYXgoLi4uZS5tYXAoZT0+ZS55UHQrZS5oZWlnaHRQdCkpO3JldHVybnt4UHQ6bix5UHQ6cix3aWR0aFB0OmktbixoZWlnaHRQdDphLXJ9fWZ1bmN0aW9uIHRNKGUsdCxuKXtsZXQgcj1bXSxpPWUuY3Vyc29yLGE9ZS5jb250YWluZXIuYm91bmRzO2lmKCFbYS54UHQsYS55UHQsYS53aWR0aFB0LGEuaGVpZ2h0UHRdLmV2ZXJ5KE51bWJlci5pc0Zpbml0ZSl8fGEud2lkdGhQdDwwfHxhLmhlaWdodFB0PDApdGhyb3cgbmV3IFooYElOVkFMSURfR0VPTUVUUllgLGAke2UuY29udGFpbmVyLmlkfSBoYXMgaW52YWxpZCBib3VuZHNgKTtsZXQgbz1lLmNvbnRhaW5lci5ib3VuZHMueVB0K2UuY29udGFpbmVyLmJvdW5kcy5oZWlnaHRQdCxzPWUuY29udGFpbmVyLmNhcGFjaXR5PT09YHVuYm91bmRlZGA/MioqNTMtMTpvLGM9ZS5jb250YWluZXIuYm91bmRzLnhQdCtlLmNvbnRhaW5lci5ib3VuZHMud2lkdGhQdDtpZighTnVtYmVyLmlzRmluaXRlKGkueFB0KXx8IU51bWJlci5pc0Zpbml0ZShpLnlQdCl8fGkueFB0PGEueFB0fHxpLnhQdD5jfHxpLnlQdDxhLnlQdHx8aS55UHQ+byl0aHJvdyBuZXcgWihgSU5WQUxJRF9HRU9NRVRSWWAsYCR7ZS5jb250YWluZXIuaWR9IGhhcyBhbiBpbnZhbGlkIGluaXRpYWwgZmxvdyBjdXJzb3JgKTtmb3IobGV0IGEgb2YgZS5ibG9ja3Mpe2xldCBsPXtjb250YWluZXI6ZS5jb250YWluZXIsY3Vyc29yOmksYXZhaWxhYmxlQm91bmRzOnt4UHQ6ZS5jb250YWluZXIuYm91bmRzLnhQdCx5UHQ6aS55UHQsd2lkdGhQdDplLmNvbnRhaW5lci5ib3VuZHMud2lkdGhQdCxoZWlnaHRQdDpNYXRoLm1heCgwLHMtaS55UHQpfX0sdT1hLmtpbmQ9PT1gcGFyYWdyYXBoYD9uLmxheW91dFBhcmFncmFwaChhLGwsdCk6bi5sYXlvdXRUYWJsZShhLGwsdCk7aWYodS5sYXlvdXQuZmxvd0RvbWFpbklkIT09ZS5jb250YWluZXIuaWQpdGhyb3cgbmV3IFooYElOVkFMSURfUkVGRVJFTkNFYCxgJHt1LmxheW91dC5pZH0gYmVsb25ncyB0byAke3UubGF5b3V0LmZsb3dEb21haW5JZH0sIG5vdCAke2UuY29udGFpbmVyLmlkfWApO2lmKGUuY29udGFpbmVyLmNhcGFjaXR5IT09YHVuYm91bmRlZGAmJk51bWJlci5pc0Zpbml0ZSh1Lm5leHRDdXJzb3IueVB0KSYmdS5uZXh0Q3Vyc29yLnlQdD5vKXRocm93IG5ldyAkaihlLmNvbnRhaW5lci5pZCx1LmxheW91dC5pZCk7aWYoIU51bWJlci5pc0Zpbml0ZSh1Lm5leHRDdXJzb3IueFB0KXx8IU51bWJlci5pc0Zpbml0ZSh1Lm5leHRDdXJzb3IueVB0KXx8dS5uZXh0Q3Vyc29yLnhQdDxlLmNvbnRhaW5lci5ib3VuZHMueFB0fHx1Lm5leHRDdXJzb3IueFB0PmN8fHUubmV4dEN1cnNvci55UHQ8aS55UHQpdGhyb3cgbmV3IFooYElOVkFMSURfR0VPTUVUUllgLGAke3UubGF5b3V0LmlkfSByZXR1cm5lZCBhbiBpbnZhbGlkIGZsb3cgY3Vyc29yYCk7ci5wdXNoKHUubGF5b3V0KSxpPXUubmV4dEN1cnNvcn1yZXR1cm57c291cmNlOmUuc291cmNlLGNvbnRhaW5lcjplLmNvbnRhaW5lcixibG9ja3M6cixuZXh0Q3Vyc29yOmksZmxvd0RvbWFpbklkOmUuY29udGFpbmVyLmlkLGZsb3dCb3VuZHM6ZU0oci5tYXAoZT0+ZS5mbG93Qm91bmRzKSxlLmNvbnRhaW5lci5ib3VuZHMpLGlua0JvdW5kczplTShyLm1hcChlPT5lLmlua0JvdW5kcyksZS5jb250YWluZXIuYm91bmRzKSwuLi5lLmNvbnRhaW5lci5jYXBhY2l0eT09PWB1bmJvdW5kZWRgP3t9OntjbGlwQm91bmRzOmUuY29udGFpbmVyLmJvdW5kc30sYWR2YW5jZVB0OmkueVB0LWUuY3Vyc29yLnlQdCxvcmRpbmFyeUZsb3c6ITB9fWNvbnN0IG5NPW5ldyBXZWFrTWFwLHJNPWU9PmB0eXBlYGluIGUmJmUudHlwZT09PWB1bnN1cHBvcnRlZFRleHRCb3hCbG9ja2A7ZnVuY3Rpb24gaU0oZSx0KXtpZihuTS5oYXMoZSkpdGhyb3cgRXJyb3IoYFN0b3J5IGJsb2NrIGxheW91dCBhbGdvcml0aG1zIGFyZSBhbHJlYWR5IGF0dGFjaGVkYCk7bk0uc2V0KGUsT2JqZWN0LmZyZWV6ZSh7Li4udH0pKX1mdW5jdGlvbiBhTShlLHQpe3JldHVybiBPYmplY3QuZnJlZXplKHsuLi5lLGZsb3dCb3VuZHM6dEQoZS5mbG93Qm91bmRzLHQpLGlua0JvdW5kczp0RChlLmlua0JvdW5kcyx0KSwuLi5lLmNsaXBCb3VuZHM/e2NsaXBCb3VuZHM6dEQoZS5jbGlwQm91bmRzLHQpfTp7fSxibG9ja3M6T2JqZWN0LmZyZWV6ZShlLmJsb2Nrcy5tYXAoZT0+e2lmKGUua2luZD09PWBwYXJhZ3JhcGhgKXJldHVybiBoRChlLHQpO2lmKGUua2luZD09PWB0YWJsZWApcmV0dXJuIGdEKGUsdCk7dGhyb3cgRXJyb3IoYFN0b3J5IGNvbnRhaW5zIHVuc3VwcG9ydGVkIHJldGFpbmVkIG5vZGU6ICR7ZS5raW5kfWApfSkpfSl9ZnVuY3Rpb24gb00oZSx0KXtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Li4uZSxmbG93Qm91bmRzOnREKGUuZmxvd0JvdW5kcyx0KSxpbmtCb3VuZHM6dEQoZS5pbmtCb3VuZHMsdCksLi4uZS5jbGlwQm91bmRzP3tjbGlwQm91bmRzOnREKGUuY2xpcEJvdW5kcyx0KX06e30sc2VwYXJhdG9yOk9iamVjdC5mcmVlemUoZS5zZXBhcmF0b3IubWFwKGU9Pm5EKGUsdCkpKSxzdG9yeTphTShlLnN0b3J5LHQpfSl9ZnVuY3Rpb24gc00oZSx0KXtmb3IobGV0IHQgb2YgZS5ibG9ja3MpaWYoIXJNKHQpJiYodC5zb3VyY2Uuc3RvcnkhPT1lLnNvdXJjZS5zdG9yeXx8dC5zb3VyY2Uuc3RvcnlJbnN0YW5jZSE9PWUuc291cmNlLnN0b3J5SW5zdGFuY2UpKXRocm93IG5ldyBaKGBJTlZBTElEX1JFRkVSRU5DRWAsYFN0b3J5IGJsb2NrICR7dC5zb3VyY2Uuc3Rvcnl9OiR7dC5zb3VyY2Uuc3RvcnlJbnN0YW5jZX0gaXMgbm90IG93bmVkIGJ5ICR7ZS5zb3VyY2Uuc3Rvcnl9OiR7ZS5zb3VyY2Uuc3RvcnlJbnN0YW5jZX1gKTtsZXQgbj1uTS5nZXQodCk7aWYoIW4pdGhyb3cgRXJyb3IoYFN0b3J5IGJsb2NrIGxheW91dCBhbGdvcml0aG1zIGFyZSBub3QgYXR0YWNoZWQgdG8gdGhlIHN1cHBsaWVkIHNlcnZpY2VzYCk7bGV0IHI9ZS5ibG9ja3MuZmlsdGVyKHJNKSxpPXRNKHtibG9ja3M6ZS5ibG9ja3MuZmlsdGVyKGU9PiFyTShlKSksY29udGFpbmVyOmUuY29udGFpbmVyLGN1cnNvcjp7eFB0OmUuY29udGFpbmVyLmJvdW5kcy54UHQseVB0OmUuY29udGFpbmVyLmJvdW5kcy55UHR9LHNvdXJjZTplLnNvdXJjZX0sdCxuKTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7c3Rvcnk6ZS5zb3VyY2Uuc3RvcnksZmxvd0JvdW5kczppLmZsb3dCb3VuZHMsaW5rQm91bmRzOmkuaW5rQm91bmRzLC4uLmkuY2xpcEJvdW5kcz97Y2xpcEJvdW5kczppLmNsaXBCb3VuZHN9Ont9LGJsb2NrczpPYmplY3QuZnJlZXplKFsuLi5pLmJsb2Nrc10pLGFkdmFuY2VQdDppLmFkdmFuY2VQdCxkaWFnbm9zdGljczpPYmplY3QuZnJlZXplKHIubWFwKHQ9Pk9iamVjdC5mcmVlemUoe2NvZGU6YFVOU1VQUE9SVEVEX0ZFQVRVUkVgLHNldmVyaXR5OmB3YXJuaW5nYCxzb3VyY2U6T2JqZWN0LmZyZWV6ZSh7c3Rvcnk6ZS5zb3VyY2Uuc3Rvcnksc3RvcnlJbnN0YW5jZTplLnNvdXJjZS5zdG9yeUluc3RhbmNlLHBhdGg6T2JqZWN0LmZyZWV6ZShbLi4udC5zb3VyY2VQYXRoXSl9KSxtZXNzYWdlOmBVbnN1cHBvcnRlZCB0ZXh0LWJveCBibG9jayAke3QucU5hbWV9YH0pKSl9KX12YXIgY009Y2xhc3MgZXh0ZW5kcyBFcnJvcntjb2RlPWBGT09UTk9URV9SRVNFUlZFX0VYQ0VFRFNfRlJFU0hfUEFHRWA7Y29uc3RydWN0b3IoZSx0LG4pe3N1cGVyKGBCb2R5IGZvb3Rub3RlIGFkbWlzc2lvbiBjYW5ub3QgZml0IGEgZnJlc2ggcGh5c2ljYWwgcGFnZSAocmVzZXJ2ZTogJHtlfSwgY2hhcmdlOiAke3R9LCBmcmVzaCBwYWdlOiAke259KWApLHRoaXMucmVzZXJ2ZVB0PWUsdGhpcy5hZG1pc3Npb25DaGFyZ2VQdD10LHRoaXMuZnJlc2hQYWdlRXh0ZW50UHQ9bix0aGlzLm5hbWU9YEZvb3Rub3RlQWRtaXNzaW9uT3ZlcmZsb3dFcnJvcmB9fTtmdW5jdGlvbiBsTShlLHQpe2lmKHQuaGFzKGUpKXJldHVybltdO3QuYWRkKGUpO2xldCBuPWUuZGlhZ25vc3RpY3M/P1tdO3JldHVybiBlLmtpbmQ9PT1gcGFyYWdyYXBoYD9bLi4ubiwuLi5lLmRyYXdpbmdzLmZsYXRNYXAoZT0+bE0oZSx0KSksLi4uZS50ZXh0Qm94ZXMuZmxhdE1hcChlPT5sTShlLHQpKV06ZS5raW5kPT09YHRhYmxlYD9bLi4ubiwuLi5lLnJvd3MuZmxhdE1hcChlPT5lLmNlbGxzLmZsYXRNYXAoZT0+ZS5ibG9ja3MuZmxhdE1hcChlPT5sTShlLmxheW91dCx0KSkpKSwuLi4oZS5mbG9hdGluZ1RhYmxlcz8/W10pLmZsYXRNYXAoZT0+bE0oZS5jaGlsZCx0KSksLi4uKGUucmVzb2x2ZWRGbG9hdGluZ1RhYmxlcz8/W10pLmZsYXRNYXAoZT0+bE0oZS5jaGlsZCx0KSldOmUua2luZD09PWB0ZXh0Ym94YHx8ZS5raW5kPT09YG5vdGVgP1suLi5uLC4uLmUuc3RvcnkuZGlhZ25vc3RpY3MsLi4uZS5zdG9yeS5ibG9ja3MuZmxhdE1hcChlPT5sTShlLHQpKV06bn1mdW5jdGlvbiB1TShlLHQsbil7aWYoZT4wJiZ0Pm4pdGhyb3cgbmV3IGNNKGUsdCxuKX1mdW5jdGlvbiBkTShlKXtsZXQgdD1uZXcgU2V0LG49ZT0+e2ZvcihsZXQgciBvZiBlLnJlc29sdmVkRmxvYXRpbmdUYWJsZXM/P1tdKXQuYWRkKHIub2NjdXJyZW5jZUlkKSxuKHIuY2hpbGQpfTtyZXR1cm4gbihlKSx0fWZ1bmN0aW9uIGZNKGUsdCxuKXtpZighZS5mbG9hdHMpdGhyb3cgRXJyb3IoYEFjY2VwdGVkIGZsb2F0aW5nIHRhYmxlIG9taXR0ZWQgaXRzIGZsb2F0IHJlZ2lzdHJ5IGRlbHRhYCk7bGV0IHI9ZE0odCk7cmV0dXJuIE9iamVjdC5mcmVlemUoey4uLmUsZmxvYXRzOk9iamVjdC5mcmVlemUoey4uLmUuZmxvYXRzLGVudHJpZXM6T2JqZWN0LmZyZWV6ZShlLmZsb2F0cy5lbnRyaWVzLm1hcChlPT57bGV0IGk9ci5oYXMoZS5vY2N1cnJlbmNlSWQpP19EKG4sZS5vY2N1cnJlbmNlSWQpOnQub3JkaW5hcnlGbG93P251bGw6bjtyZXR1cm4gaT09PW51bGw/ZTpPYmplY3QuZnJlZXplKHsuLi5lLG9jY3VycmVuY2VJZDppLGV4Y2x1c2lvbklkOml9KX0pKX0pfSl9ZnVuY3Rpb24gcE0oZSx0KXtsZXQgbj1uZXcgU2V0KHQuZHJhd2luZ3MuZmxhdE1hcChlPT57bGV0IHQ9ZS5hbmNob3JMYXllcj8uYWNxdWlzaXRpb25PY2N1cnJlbmNlSWQ/P2UuYW5jaG9yTGF5ZXI/Lm9jY3VycmVuY2VJZDtyZXR1cm4gdD09PXZvaWQgMD9bXTpbdF19KSkscj1lLmZsb2F0cz8uZW50cmllcy5maWx0ZXIoZT0+bi5oYXMoZS5vY2N1cnJlbmNlSWQpKT8/W10saT1lLmRyYXdpbmdDb2xsaXNpb25zPy5lbnRyaWVzLmZpbHRlcihlPT5uLmhhcyhlLm9jY3VycmVuY2VJZCkpPz9bXTtyZXR1cm4gci5sZW5ndGg9PT0wJiZpLmxlbmd0aD09PTA/bnVsbDpPYmplY3QuZnJlZXplKHsuLi5lLmZsb2F0cyYmci5sZW5ndGg+MD97ZmxvYXRzOk9iamVjdC5mcmVlemUoey4uLmUuZmxvYXRzLGVudHJpZXM6T2JqZWN0LmZyZWV6ZShyKSxuZXh0UGFyYWdyYXBoSWQ6ZS5mbG9hdHMuYmFzZU5leHRQYXJhZ3JhcGhJZCtyLmxlbmd0aH0pfTp7fSwuLi5lLmRyYXdpbmdDb2xsaXNpb25zJiZpLmxlbmd0aD4wP3tkcmF3aW5nQ29sbGlzaW9uczpPYmplY3QuZnJlZXplKHsuLi5lLmRyYXdpbmdDb2xsaXNpb25zLGVudHJpZXM6T2JqZWN0LmZyZWV6ZShpKX0pfTp7fX0pfWZ1bmN0aW9uIG1NKGUpe2xldCB0PW5ldyBNYXAoW1tlLmluaXRpYWxTZWN0aW9uLnNlY3Rpb25PY2N1cnJlbmNlSWQsZS5pbml0aWFsU2VjdGlvbl1dKTtmb3IobGV0IG49MDtuPGUuc2VxdWVuY2UubGVuZ3RoO24rPTEpe2xldCByPWUuc2VxdWVuY2Vbbl07ci5raW5kPT09YGJlZ2luLXNlY3Rpb25gJiZ0LnNldChyLnNlY3Rpb24uc2VjdGlvbk9jY3VycmVuY2VJZCxyLnNlY3Rpb24pfXJldHVybiB0fWZ1bmN0aW9uIGhNKGUsdCl7cmV0dXJuIFdDKGUuY29udGV4dCxlLnBhZ2VMYXlvdXQsdCl9ZnVuY3Rpb24gZ00oZSx0KXtsZXQgbj1oTShlLHQpO3JldHVybiBJQyh7c2VjdGlvbk9jY3VycmVuY2VJZDplLnNlY3Rpb25PY2N1cnJlbmNlSWQsZ2VvbWV0cnk6bi5nZW9tZXRyeSxjb2x1bW5zOm4uY29sdW1ucyx0ZXh0RGlyZWN0aW9uOm4udGV4dERpcmVjdGlvbixzZWN0aW9uQmlkaTpuLnNlY3Rpb25CaWRpPT09ITAsZ3JpZDpuLmdyaWR9KX1mdW5jdGlvbiBfTShlLHQsbixyPW4uYmxvY2tTdGFydFB0LGk9aE0oZSx0KS5jb2x1bW5zLm1hcCgoZSx0KT0+dCkpe2xldCBhPWhNKGUsdCk7cmV0dXJuIE9iamVjdC5mcmVlemUoe2lkOmBwYWdlOiR7dH06c2VjdGlvbjoke2VuY29kZVVSSUNvbXBvbmVudChlLnNlY3Rpb25PY2N1cnJlbmNlSWQpfWAsc2VjdGlvbk9jY3VycmVuY2VJZDplLnNlY3Rpb25PY2N1cnJlbmNlSWQsc2VjdGlvbjphLHBhZ2VCb3JkZXJzOmUucGFnZUJvcmRlcnNBdXRob3JlZD9lLnBhZ2VCb3JkZXJzOm51bGwsd3JpdGluZ01vZGU6Y3YoYS50ZXh0RGlyZWN0aW9uKSxibG9ja1N0YXJ0UHQ6cixibG9ja0VuZFB0Om4uYmxvY2tFbmRQdCxjb2x1bW5GbG93RGlyZWN0aW9uOmEuc2VjdGlvbkJpZGk9PT0hMD9gcnRsYDpgbHRyYCxjb2x1bW5JbmRleGVzOk9iamVjdC5mcmVlemUoWy4uLmldKSxjb2x1bW5zOk9iamVjdC5mcmVlemUoaS5tYXAoZT0+e2xldCB0PWEuY29sdW1uc1tlXTtpZighdCl0aHJvdyBFcnJvcihgTWlzc2luZyBhdXRob3JlZCBzZWN0aW9uIGNvbHVtbmApO3JldHVybiBPYmplY3QuZnJlZXplKHtpbmxpbmVTdGFydFB0OnQueFB0LGlubGluZUV4dGVudFB0OnQud1B0fSl9KSl9KX1mdW5jdGlvbiB2TShlLHQpe2xldCBuPWN2KGUudGV4dERpcmVjdGlvbikscj1tdih7d2lkdGhQdDplLmdlb21ldHJ5LnBhZ2VXaWR0aCxoZWlnaHRQdDplLmdlb21ldHJ5LnBhZ2VIZWlnaHR9LG4pO3JldHVybiBPYmplY3QuZnJlZXplKG49PT1gaG9yaXpvbnRhbC10YmA/ey4uLnIsY29udGVudFRvcFB0OnQuYmxvY2tTdGFydFB0LGNvbnRlbnRCb3R0b21QdDp0LmJsb2NrRW5kUHR9OnsuLi5yLGNvbnRlbnRUb3BQdDowLGNvbnRlbnRCb3R0b21QdDpyLmhlaWdodFB0fSl9ZnVuY3Rpb24geU0oZSx0LG4pe3JldHVybiBYaihoTShlLHQpLmdlb21ldHJ5LG4pfWZ1bmN0aW9uIGJNKGUsdCxuKXtsZXQgcj1oTShlLHQpO3JldHVybiBxRSh7a2luZDpgY29udGVudGAscGFnZUluZGV4OnQscGh5c2ljYWxQYWdlOnZNKHIsbiksc2VjdGlvbk9jY3VycmVuY2VJZDplLnNlY3Rpb25PY2N1cnJlbmNlSWQsc2VjdGlvbjpyLHJlZ2lvbjpfTShlLHQsbil9KX1mdW5jdGlvbiB4TShlKXtsZXQgdD1lLnBhZ2VzLmF0KC0xKSxuPXQ/LmFjY3VtdWxhdG9yLnNlY3Rpb25SZWdpb25zLmF0KC0xKTtpZighdHx8dC5raW5kIT09YGNvbnRlbnRgfHwhbil0aHJvdyBFcnJvcihgTWlzc2luZyBhY3RpdmUgYm9keSByZWdpb25gKTtyZXR1cm4gbn1mdW5jdGlvbiBTTShlKXtsZXQgdD14TShlKSxuPXQuY29sdW1uSW5kZXhlcz8/dC5zZWN0aW9uLmNvbHVtbnMubWFwKChlLHQpPT50KSxyPSh0LmNvbHVtbkZsb3dEaXJlY3Rpb249PT1gcnRsYD9bLi4ubl0ucmV2ZXJzZSgpOlsuLi5uXSkuYXQoLTEpPT09ZS5mbG93LmNvbHVtbkluZGV4O3JldHVybiBlLmJhbGFuY2VUYXJnZXRQdD09PW51bGx8fHI/dC5ibG9ja0VuZFB0Ok1hdGgubWluKHQuYmxvY2tFbmRQdCx0LmJsb2NrU3RhcnRQdCtlLmJhbGFuY2VUYXJnZXRQdCl9ZnVuY3Rpb24gQ00oZSl7bGV0IHQ9eE0oZSksbj10LmNvbHVtbkluZGV4ZXM/P3Quc2VjdGlvbi5jb2x1bW5zLm1hcCgoZSx0KT0+dCkscj10LmNvbHVtbnNbbi5pbmRleE9mKGUuZmxvdy5jb2x1bW5JbmRleCldO2lmKCFyKXRocm93IEVycm9yKGBNaXNzaW5nIGFjdGl2ZSBib2R5IGNvbHVtbmApO3JldHVybiBPYmplY3QuZnJlZXplKHtwYWdlSW5kZXg6ZS5mbG93LnBhZ2VJbmRleCxjb2x1bW5JbmRleDplLmZsb3cuY29sdW1uSW5kZXgsZmxvd0RvbWFpbklkOiRDKGUuZmxvdy5wYWdlSW5kZXgsdC5pZCxlLmZsb3cuY29sdW1uSW5kZXgpLHNlY3Rpb246dC5zZWN0aW9uLGN1cnNvclB0Ok9iamVjdC5mcmVlemUoe3hQdDpyLmlubGluZVN0YXJ0UHQseVB0OmUuZmxvdy5jdXJzb3JCbG9ja1B0fSksYXZhaWxhYmxlQm91bmRzOk9iamVjdC5mcmVlemUoe3hQdDpyLmlubGluZVN0YXJ0UHQseVB0OmUuZmxvdy5jdXJzb3JCbG9ja1B0LHdpZHRoUHQ6ci5pbmxpbmVFeHRlbnRQdCxoZWlnaHRQdDpNYXRoLm1heCgwLFNNKGUpLWUuZm9vdG5vdGVSZXNlcnZlUHQtZS5mbG93LmN1cnNvckJsb2NrUHQpfSl9KX1mdW5jdGlvbiB3TShlLHQpe2xldCBuPXQ9PntsZXQgbj1lLmdldCh0KTtpZighbil0aHJvdyBFcnJvcihgVW5rbm93biBib2R5IHNlY3Rpb24gJHt0fWApO3JldHVybiBufTtyZXR1cm57b3BlbkNvbnRlbnRQYWdlKGUpe2xldCByPW4oZS5zZWN0aW9uT2NjdXJyZW5jZUlkKSxpPXRbZS5wYWdlSW5kZXhdPz97dG9wOjAsYm90dG9tOjB9LGE9eU0ocixlLnBhZ2VJbmRleCxpKSxvPU9EKGdNKHIsZS5wYWdlSW5kZXgpLHtwYWdlSW5kZXg6ZS5wYWdlSW5kZXgscGFnZUNvbnRlbnRTdGFydEJsb2NrUHQ6YS5ibG9ja1N0YXJ0UHQscGFnZUNvbnRlbnRFbmRCbG9ja1B0OmEuYmxvY2tFbmRQdH0pO3JldHVybntwYWdlOmJNKHIsZS5wYWdlSW5kZXgsYSksZmxvdzpvfX0sb3BlblBhcml0eUJsYW5rUGFnZShlKXtsZXQgcj1uKGUuc2VjdGlvbk9jY3VycmVuY2VJZCksaT1oTShyLGUucGFnZUluZGV4KSxhPXlNKHIsZS5wYWdlSW5kZXgsdFtlLnBhZ2VJbmRleF0/P3t0b3A6MCxib3R0b206MH0pO3JldHVybiBxRSh7a2luZDpgcGFyaXR5LWJsYW5rYCxwYWdlSW5kZXg6ZS5wYWdlSW5kZXgscGh5c2ljYWxQYWdlOnZNKGksYSksc2VjdGlvbk9jY3VycmVuY2VJZDpyLnNlY3Rpb25PY2N1cnJlbmNlSWQsc2VjdGlvbjppLHBhZ2VCb3JkZXJzOnIucGFnZUJvcmRlcnNBdXRob3JlZD9yLnBhZ2VCb3JkZXJzOm51bGx9KX0sb3BlblNhbWVQYWdlU2VjdGlvblJlZ2lvbihlLHQscil7bGV0IGk9bih0LnNlY3Rpb24uc2VjdGlvbk9jY3VycmVuY2VJZCksYT1lLmFjY3VtdWxhdG9yLnNlY3Rpb25SZWdpb25zLG89YS5hdCgtMSk7aWYoIW98fCEoYHBsYWNlbWVudGBpbiB0KSl0aHJvdyBFcnJvcihgQSBzYW1lLXBhZ2Ugc2VjdGlvbiByZXF1aXJlcyBleHBsaWNpdCByZXRhaW5lZCBwbGFjZW1lbnRgKTtsZXQgcz1PYmplY3QuZnJlZXplKHtibG9ja1N0YXJ0UHQ6ZS5hY2N1bXVsYXRvci5zZWN0aW9uUmVnaW9uc1swXS5ibG9ja1N0YXJ0UHQsYmxvY2tFbmRQdDpvLmJsb2NrRW5kUHR9KSxjPXQucGxhY2VtZW50PT09YHNhbWUtcGFnZS1ibG9ja2A/T2JqZWN0LmZyZWV6ZSh7Li4ubyxibG9ja0VuZFB0OnIucmVnaW9uU3RhcnRCbG9ja1B0fSk6KCgpPT57bGV0IGU9dC5vdXRnb2luZ0NvbHVtblN1YnNldDtpZighZXx8ZS5sZW5ndGg9PT0wKXRocm93IEVycm9yKGBBIHNhbWUtcGFnZS1jb2x1bW4gdHJhbnNpdGlvbiByZXF1aXJlcyBvdXRnb2luZyBjb2x1bW4gb3duZXJzaGlwYCk7cmV0dXJuIE9iamVjdC5mcmVlemUoey4uLm8sY29sdW1uSW5kZXhlczpPYmplY3QuZnJlZXplKFsuLi5lXSksY29sdW1uczpPYmplY3QuZnJlZXplKGUubWFwKGU9PntsZXQgdD1vLnNlY3Rpb24uY29sdW1uc1tlXTtpZighdCl0aHJvdyBFcnJvcihgTWlzc2luZyBvdXRnb2luZyBhdXRob3JlZCBjb2x1bW5gKTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7aW5saW5lU3RhcnRQdDp0LnhQdCxpbmxpbmVFeHRlbnRQdDp0LndQdH0pfSkpfSl9KSgpLGw9T2JqZWN0LmZyZWV6ZShbLi4uYS5zbGljZSgwLC0xKSxjXSk7cmV0dXJuIE9iamVjdC5mcmVlemUoey4uLmUsYWNjdW11bGF0b3I6eXcoT2JqZWN0LmZyZWV6ZSh7Li4uZS5hY2N1bXVsYXRvcixzZWN0aW9uUmVnaW9uczpsfSksX00oaSxyLnBhZ2VJbmRleCxzLHIucmVnaW9uU3RhcnRCbG9ja1B0LHQuY29sdW1uU3Vic2V0KSl9KX19fWZ1bmN0aW9uIFRNKGUsdCxuLHIsaSxhLG8scyl7bGV0IGM9ZS5wYWdlcy5hdCgtMSk7aWYoIWN8fGMua2luZCE9PWBjb250ZW50YCl0aHJvdyBFcnJvcihgQm9keSBjb250ZW50IHJlcXVpcmVzIGFuIGFjdGl2ZSBwYWdlYCk7bGV0IGw9eE0oZSksdT1sLmNvbHVtbkluZGV4ZXM/P2wuc2VjdGlvbi5jb2x1bW5zLm1hcCgoZSx0KT0+dCksZD1sLmNvbHVtbnNbdS5pbmRleE9mKGUuZmxvdy5jb2x1bW5JbmRleCldLGY9JEMoZS5mbG93LnBhZ2VJbmRleCxsLmlkLGUuZmxvdy5jb2x1bW5JbmRleCkscD1rZyhuLGYsaSk7aWYoYS5oYXMocCkpdGhyb3cgRXJyb3IoYER1cGxpY2F0ZSBib2R5IG9jY3VycmVuY2UgYWNjZXB0YW5jZTogJHtwfWApO2EuYWRkKHApO2xldCBtPXdEKHQse29jY3VycmVuY2VJZDpwLGRlc3RpbmF0aW9uOntjb29yZGluYXRlU3BhY2U6YGxvZ2ljYWwtcGFnZS1wb2ludHNgLGZsb3dEb21haW5JZDpmLHRyYW5zbGF0aW9uOnt4UHQ6cz9zLnhQdC10LmZsb3dCb3VuZHMueFB0OnQua2luZD09PWB0YWJsZWA/ZC5pbmxpbmVTdGFydFB0OmQuaW5saW5lU3RhcnRQdC10LmZsb3dCb3VuZHMueFB0LHlQdDoocz8ueVB0Pz9lLmZsb3cuY3Vyc29yQmxvY2tQdCktdC5mbG93Qm91bmRzLnlQdH19fSksaD1zPy5zZWN0aW9uRmxvd093bmVyc2hpcD09PXZvaWQgMD9tOk9iamVjdC5mcmVlemUoey4uLm0sc2VjdGlvbkZsb3dPd25lcnNoaXA6cy5zZWN0aW9uRmxvd093bmVyc2hpcH0pLGc9cz8ueVB0Pz9lLmZsb3cuY3Vyc29yQmxvY2tQdCxfPWgua2luZD09PWBwYXJhZ3JhcGhgJiZoLm9yZGluYXJ5Rmxvdz8oKCk9PntsZXQgZT1nK2guc3BhY2luZy5iZWZvcmVQdCx0PWcrci1oLnNwYWNpbmcuYWZ0ZXJQdDtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Li4uaCxmbG93Qm91bmRzOk9iamVjdC5mcmVlemUoey4uLmguZmxvd0JvdW5kcyx5UHQ6ZSxoZWlnaHRQdDpNYXRoLm1heCgwLHQtZSl9KX0pfSkoKTpoLHY9cz8uY29vcmRpbmF0ZVNwYWNlPT09YHVwcmlnaHQtcGh5c2ljYWxgP3suLi5fLG9yZGluYXJ5RmxvdzohMSxmbG93Qm91bmRzOk9iamVjdC5mcmVlemUoey4uLl8uZmxvd0JvdW5kcyxoZWlnaHRQdDpyfSl9Ol8seT1BRChlLmZsb3csdixyKSxiPXkuZXZlbnRzWzBdO2lmKCFifHxiLnR5cGUhPT1gcGxhY2VgKXRocm93IEVycm9yKGBGbG93IHBsYWNlbWVudCBkaWQgbm90IGVtaXQgYW4gYWxsb2NhdGlvbmApO28ucHVzaChPYmplY3QuZnJlZXplKHtub2RlSWQ6di5pZCxmbG93RG9tYWluSWQ6di5mbG93RG9tYWluSWQsYmxvY2tTdGFydFB0OmIuYmxvY2tTdGFydFB0LGJsb2NrRW5kUHQ6Yi5ibG9ja0VuZFB0fSkpO2xldCB4PWJ3KGMuYWNjdW11bGF0b3Ise2xheWVyOmBib2R5YCxub2RlOnYsLi4ucz8uY29vcmRpbmF0ZVNwYWNlPT09YHVwcmlnaHQtcGh5c2ljYWxgP3tjb29yZGluYXRlU3BhY2U6YHVwcmlnaHQtcGh5c2ljYWxgfTp7fX0sITApLFM9Wy4uLmUucGFnZXNdO3JldHVybiBTW1MubGVuZ3RoLTFdPU9iamVjdC5mcmVlemUoey4uLmMsYWNjdW11bGF0b3I6eH0pLE9iamVjdC5mcmVlemUoey4uLmUsZmxvdzp5LnN0YXRlLHBhZ2VzOk9iamVjdC5mcmVlemUoUyl9KX1mdW5jdGlvbiBFTShlKXtyZXR1cm4gZS5ib3VuZGFyeT09PW51bGw/YHJvb3RgOmBwYXJhZ3JhcGg6JHtlLmJvdW5kYXJ5LnNlZ0luZGV4fToke2UuYm91bmRhcnkuY2hhck9mZnNldH1gfWZ1bmN0aW9uIERNKGUsdCl7Zm9yKGxldCBuPXQ7bjxlLnNlcXVlbmNlLmxlbmd0aDtuKz0xKXtsZXQgdD1lLnNlcXVlbmNlW25dO2lmKHQua2luZD09PWBjb25zdW1lLXNvdXJjZWApY29udGludWU7aWYodC5raW5kPT09YGF1dGhvcmVkLWJyZWFrYCl7aWYodC5icmVhayE9PWBsYXN0UmVuZGVyZWRQYWdlQnJlYWtgKXJldHVybiExO2NvbnRpbnVlfWlmKHQua2luZD09PWBiZWdpbi1zZWN0aW9uYCl7aWYodC5zZWN0aW9uLnN0YXJ0VHlwZSE9PWBjb250aW51b3VzYClyZXR1cm4hMTtjb250aW51ZX1sZXQgcj10LmtpbmQ9PT1gYWRqYWNlbnQtdGFibGUtZ3JvdXBgP3Q6dC5ibG9jaztpZihyLmtpbmQhPT1gcGFyYWdyYXBoYClyZXR1cm4hMDtpZihyLnBhZ2VCcmVha0JlZm9yZSlyZXR1cm4hMTtpZihyLmlua2xlc3MhPT0hMClyZXR1cm4hMH1yZXR1cm4hMX1mdW5jdGlvbiBPTShlKXtyZXR1cm4gZS5wYXJhZ3JhcGhNYXJrIT09dm9pZCAwJiZlLmxpbmVzLmxlbmd0aD09PTAmJmUuc2hhZGluZz09PXZvaWQgMCYmZS5ib3JkZXJzLmxlbmd0aD09PTAmJmUucmVzb3VyY2VzLmxlbmd0aD09PTAmJmUuZHJhd2luZ3MubGVuZ3RoPT09MCYmZS50ZXh0Qm94ZXMubGVuZ3RoPT09MH1mdW5jdGlvbiBrTShlKXtyZXR1cm5bZS5yb3dJbmRleCxlLnJvd0ZyYWdtZW50SW5kZXgsZS5jZWxscy5tYXAoZT0+W2UuYmxvY2tJbmRleCxlLnBhcmFncmFwaExpbmVTdGFydCxlLm5lc3RlZEZyYWdtZW50SW5kZXgsZS5uZXN0ZWRDdXJzb3I9PT1udWxsP251bGw6a00oZS5uZXN0ZWRDdXJzb3IpXSldfWZ1bmN0aW9uIEFNKGUpe2lmKGU9PT12b2lkIDApcmV0dXJuYHJvb3RgO2lmKGUua2luZD09PWB0YWJsZWApcmV0dXJuYHRhYmxlOiR7SlNPTi5zdHJpbmdpZnkoa00oZS5jdXJzb3IpKX1gO2xldCB0PWUuY3Vyc29yLnRhYmxlQ3Vyc29yO3JldHVybmBhZGphY2VudC10YWJsZToke2UuY3Vyc29yLnRhYmxlSW5kZXh9OiR7ZS5jdXJzb3Iuc291cmNlUm93SW5kZXh9OiR7SlNPTi5zdHJpbmdpZnkodD09PXZvaWQgMD9udWxsOmtNKHQpKX1gfWZ1bmN0aW9uIGpNKGUsdCl7bGV0IG49ZS5jdXJzb3JQdC55UHQrdCxyPWUuYXZhaWxhYmxlQm91bmRzLnlQdCtlLmF2YWlsYWJsZUJvdW5kcy5oZWlnaHRQdDtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Li4uZSxjdXJzb3JQdDpPYmplY3QuZnJlZXplKHsuLi5lLmN1cnNvclB0LHlQdDpufSksYXZhaWxhYmxlQm91bmRzOk9iamVjdC5mcmVlemUoey4uLmUuYXZhaWxhYmxlQm91bmRzLHlQdDpuLGhlaWdodFB0Ok1hdGgubWF4KDAsci1uKX0pfSl9ZnVuY3Rpb24gTU0oZSx0KXtsZXQgbj1xaihlLnBhZ2VzLm1hcChlPT5lLmFjY3VtdWxhdG9yKSkscj0wLGk9bnVsbCxhPWUucGFnZXMubWFwKGU9PntsZXQgYT10LmdldChlLmFjY3VtdWxhdG9yLnNlY3Rpb25PY2N1cnJlbmNlSWQpLG89YS5zZWN0aW9uT2NjdXJyZW5jZUlkIT09aTthLnNlY3Rpb25PY2N1cnJlbmNlSWQhPT1pJiZhLnBhZ2VOdW1iZXJpbmcuc3RhcnQhPT1udWxsP3I9TkMoYS5wYWdlTnVtYmVyaW5nLnN0YXJ0LGUuYWNjdW11bGF0b3IucGFnZUluZGV4LG4uZ2V0KGEuc2VjdGlvbk9jY3VycmVuY2VJZCk/P2UuYWNjdW11bGF0b3IucGFnZUluZGV4KTpyKz0xLGk9YS5zZWN0aW9uT2NjdXJyZW5jZUlkO2xldCBzPXtkaXNwbGF5TnVtYmVyOnIsZm9ybWF0OmEucGFnZU51bWJlcmluZy5mb3JtYXQ/P2BkZWNpbWFsYCxzZWN0aW9uT2NjdXJyZW5jZUlkOmEuc2VjdGlvbk9jY3VycmVuY2VJZH07cmV0dXJuIGUua2luZD09PWBwYXJpdHktYmxhbmtgP1N3KHtwYWdlSW5kZXg6ZS5hY2N1bXVsYXRvci5wYWdlSW5kZXgscGh5c2ljYWxQYWdlOmUuYWNjdW11bGF0b3IucGh5c2ljYWxQYWdlLHNlY3Rpb25PY2N1cnJlbmNlSWQ6ZS5hY2N1bXVsYXRvci5zZWN0aW9uT2NjdXJyZW5jZUlkLHNlY3Rpb246ZS5hY2N1bXVsYXRvci5zZWN0aW9uLHBhZ2VCb3JkZXJzOmUuYWNjdW11bGF0b3IucGFnZUJvcmRlcnMsZmlyc3RTZWN0aW9uT3duZWRQYWdlOm8scGFnZU51bWJlcjpzfSk6eHcoZS5hY2N1bXVsYXRvcixzLG8pfSksbz1uZXcgV2Vha1NldDtyZXR1cm57cGFnZXM6YSxkaWFnbm9zdGljczphLmZsYXRNYXAoZT0+Sl8oZSkuZmxhdE1hcCgoe25vZGU6ZX0pPT5sTShlLG8pKSl9fWZ1bmN0aW9uIE5NKGUsdCxuLHIsaSxhKXtsZXQgbz1mXyh0KTtpZighbyl0aHJvdyBFcnJvcihgQm9keSBsYXlvdXQga2VybmVsIGlzIG5vdCBhdHRhY2hlZCB0byB0aGUgc3VwcGxpZWQgc2VydmljZXNgKTtsZXQgcz1tTShlKSxjPW5ldyBTZXQsbD1bXSx1PXJbMF0/P3t0b3A6MCxib3R0b206MH0sZD15TShlLmluaXRpYWxTZWN0aW9uLDAsdSksZj1KRShPRChnTShlLmluaXRpYWxTZWN0aW9uLDApLHtwYWdlQ29udGVudFN0YXJ0QmxvY2tQdDpkLmJsb2NrU3RhcnRQdCxwYWdlQ29udGVudEVuZEJsb2NrUHQ6ZC5ibG9ja0VuZFB0fSksYk0oZS5pbml0aWFsU2VjdGlvbiwwLGQpKSxwPWU9PntsZXQgdD1hLmdldChlLmZsb3cuc2VjdGlvbi5zZWN0aW9uT2NjdXJyZW5jZUlkKTtyZXR1cm4gdD8ucGFnZUluZGV4PT09ZS5mbG93LnBhZ2VJbmRleD90LnRhcmdldFB0Om51bGx9O2Y9WUUoZixwKGYpKTtsZXQgbT13TShzLHIpLGg9bnVsbCxnPW8ub3BlbkJvZHlMYXlvdXRTZXNzaW9uKHtzb3VyY2U6ZS5zb3VyY2Usc2VjdGlvbjplLmluaXRpYWxTZWN0aW9uLmNvbnRleHQsaW5pdGlhbExvY2F0aW9uOkNNKGYpfSx0LG4pLF89ZT0+e2xldCB0PXMuZ2V0KGUuZmxvdy5zZWN0aW9uLnNlY3Rpb25PY2N1cnJlbmNlSWQpO2lmKCF0KXRocm93IEVycm9yKGBVbmtub3duIGJvZHkgc2VjdGlvbiAke2UuZmxvdy5zZWN0aW9uLnNlY3Rpb25PY2N1cnJlbmNlSWR9YCk7bGV0IG49ZS5mbG93LnBhZ2VJbmRleCsxLGk9eU0odCxuLHJbbl0/P3t0b3A6MCxib3R0b206MH0pO3JldHVybiBpLmJsb2NrRW5kUHQtaS5ibG9ja1N0YXJ0UHR9LHY9KHQsbik9PntpZihpIT09bnVsbCl7bGV0IGU9Q00odCk7cmV0dXJuIE9iamVjdC5mcmVlemUoWy4uLmkudmFsdWVzKCldLmZpbHRlcih0PT50LnBhZ2VJbmRleD09PWUucGFnZUluZGV4JiZ0LmZsb3dEb21haW5JZD09PWUuZmxvd0RvbWFpbklkKS5tYXAoKHtvY2N1cnJlbmNlSWQ6ZSxwYXJhZ3JhcGhTb3VyY2U6dH0pPT5PYmplY3QuZnJlZXplKHtvY2N1cnJlbmNlSWQ6ZSxwYXJhZ3JhcGhTb3VyY2U6dH0pKSl9bGV0IHI9W107Zm9yKGxldCB0PW47dDxlLnNlcXVlbmNlLmxlbmd0aDt0Kz0xKXtsZXQgaT1lLnNlcXVlbmNlW3RdO2lmKGkua2luZD09PWBhdXRob3JlZC1icmVha2AmJmkuYnJlYWshPT1gY29sdW1uYHx8aS5raW5kPT09YGJlZ2luLXNlY3Rpb25gJiZpLnNlY3Rpb24uc3RhcnRUeXBlIT09YGNvbnRpbnVvdXNgKWJyZWFrO2lmKCEoaS5raW5kIT09YGJvZHktYmxvY2tgfHxpLmJsb2NrLmtpbmQhPT1gcGFyYWdyYXBoYCkpe2lmKHQ+biYmaS5ibG9jay5wYWdlQnJlYWtCZWZvcmUpYnJlYWs7aS5ibG9jay5wYWdlT3duZWRBbmNob3JPY2N1cnJlbmNlSWRzPy5mb3JFYWNoKGU9PnIucHVzaChPYmplY3QuZnJlZXplKHtvY2N1cnJlbmNlSWQ6ZSxwYXJhZ3JhcGhTb3VyY2U6aS5ibG9jay5zb3VyY2V9KSkpfX1yZXR1cm4gT2JqZWN0LmZyZWV6ZShyKX0seT0oZSx0KT0+e2xldCBuPXYoZSx0KTtpZihuLmxlbmd0aD09PTApcmV0dXJuO2lmKCFnLnByZXNjYW5QYWdlQW5jaG9ycyl0aHJvdyBFcnJvcihgUGFnZS1vd25lZCBhbmNob3JzIHJlcXVpcmUgY2Fub25pY2FsIHByZXNjYW4gYWNxdWlzaXRpb25gKTtsZXQgcj1DTShlKSxpPWcucHJlc2NhblBhZ2VBbmNob3JzKHthbmNob3JzOm4sbG9jYXRpb246cixhdmFpbGFibGVJbmxpbmVFeHRlbnRQdDpyLmF2YWlsYWJsZUJvdW5kcy53aWR0aFB0fSk7aSYmZy5jb21taXRGbG93UmVnaXN0cnlEZWx0YShpKX07eShmLDApO2xldCBiPShlLHQsbj0hMSk9PntsZXQgcj1mLmZsb3cucGFnZUluZGV4LGk9ZS5ldmVudHMuc29tZShlPT5lLnR5cGU9PT1gbmV4dC1wYWdlYCYmZS5yZWFzb249PT1gb3ZlcmZsb3dgKSxhPWUuZXZlbnRzLnNvbWUoZT0+ZS50eXBlPT09YGJlZ2luLXNlY3Rpb25gJiZgcGxhY2VtZW50YGluIGUmJmUucGxhY2VtZW50PT09YHNhbWUtcGFnZS1jb2x1bW5gKTtmPVpFKGYsZSxtKSxmPVlFKGYscChmKSk7bGV0IG89Q00oZik7Zi5mbG93LnBhZ2VJbmRleD09PXI/KGcubW92ZUFjcXVpc2l0aW9uQ3Vyc29yKG8pLGEmJnkoZix0KSk6KGg9aSYmbj90Om51bGwsZy5yZXNldFBhZ2VBY3F1aXNpdGlvbihvKSx5KGYsdCkpfSx4PW5ldyBNYXAsUz1uZXcgTWFwLEM9bmV3IE1hcCx3PWU9Pih4LmdldChlKT8uc2l6ZT8/MCk+MCxUPShlLHQsbik9PkUobj8/UmooZSksdCksRT0oZSx0KT0+e2xldCBuPXguZ2V0KGYuZmxvdy5wYWdlSW5kZXgpPz9uZXcgU2V0LHI9Wy4uLm5ldyBTZXQoZSldLmZpbHRlcihlPT4hbi5oYXMoZSkpLGk9Q00oZik7aWYoci5sZW5ndGg+MCYmIWcubGF5b3V0Tm90ZXMpdGhyb3cgRXJyb3IoYEZvb3Rub3RlIGxheW91dCByZXF1aXJlcyBhIG5vdGUtY2FwYWJsZSBsYXlvdXQgc2Vzc2lvbmApO2xldCBhPXIubGVuZ3RoPT09MD9PYmplY3QuZnJlZXplKFtdKTpnLmxheW91dE5vdGVzKHtraW5kOmBmb290bm90ZWAscmVmZXJlbmNlSWRzOk9iamVjdC5mcmVlemUocikscGFnZUluZGV4OmYuZmxvdy5wYWdlSW5kZXgsc2VjdGlvbjppLnNlY3Rpb24sY29udGFpbmVyOntpZDpgbm90ZXM6cGFnZToke2YuZmxvdy5wYWdlSW5kZXh9YCxraW5kOmBmb290bm90ZWAsYm91bmRzOnt4UHQ6aS5hdmFpbGFibGVCb3VuZHMueFB0LHlQdDowLHdpZHRoUHQ6dCxoZWlnaHRQdDppLnNlY3Rpb24uZ2VvbWV0cnkucGFnZUhlaWdodH19LGZpcnN0T25QYWdlOm4uc2l6ZT09PTB9KTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7aWRzOk9iamVjdC5mcmVlemUociksbGF5b3V0czphLHJlc2VydmVQdDphLnJlZHVjZSgoZSx0KT0+ZSt0LmFkdmFuY2VQdCwwKX0pfSxEPShlLHQsbik9PntsZXQgcj14LmdldChmLmZsb3cucGFnZUluZGV4KTtyfHwocj1uZXcgU2V0LHguc2V0KGYuZmxvdy5wYWdlSW5kZXgscikpLGUuZm9yRWFjaChlPT5yLmFkZChlKSk7bGV0IGk9Qy5nZXQoZi5mbG93LnBhZ2VJbmRleCk/P1tdO2kucHVzaCguLi50KSxDLnNldChmLmZsb3cucGFnZUluZGV4LGkpLFMuc2V0KGYuZmxvdy5wYWdlSW5kZXgsKFMuZ2V0KGYuZmxvdy5wYWdlSW5kZXgpPz8wKStuKSxmPVhFKGYsbil9LE89KCk9Pk1hdGgubWF4KDAsU00oZiktZi5mb290bm90ZVJlc2VydmVQdC1mLmZsb3cuZGVlcGVzdENvbHVtbkJsb2NrUHQpLGs9ZT0+ZT5PKCksQT1udWxsLGo9dE8oZS5zZXF1ZW5jZSksTT1udWxsO2JvZHlFbnRyaWVzOmZvcihsZXQgdD0wO3Q8ZS5zZXF1ZW5jZS5sZW5ndGg7dCs9MSl7bGV0IG49ZS5zZXF1ZW5jZVt0XTtpZihuLmtpbmQ9PT1gY29uc3VtZS1zb3VyY2VgKWNvbnRpbnVlO2lmKG4ua2luZD09PWBhdXRob3JlZC1icmVha2Ape2lmKEE9bnVsbCxuLmJyZWFrPT09YGNvbHVtbmAmJiFqLmhhcyh0KSljb250aW51ZTtiKHpEKGYuZmxvdyxuLmJyZWFrLG4ucGFyaXR5KSx0KzEpO2NvbnRpbnVlfWlmKG4ua2luZD09PWBiZWdpbi1zZWN0aW9uYCl7QT1udWxsO2xldCBlPWN2KHhNKGYpLnNlY3Rpb24udGV4dERpcmVjdGlvbiksaT1jdihoTShuLnNlY3Rpb24sZi5mbG93LnBhZ2VJbmRleCkudGV4dERpcmVjdGlvbiksYT1tdih7d2lkdGhQdDp4TShmKS5zZWN0aW9uLmdlb21ldHJ5LnBhZ2VXaWR0aCxoZWlnaHRQdDp4TShmKS5zZWN0aW9uLmdlb21ldHJ5LnBhZ2VIZWlnaHR9LGUpLG89aE0obi5zZWN0aW9uLGYuZmxvdy5wYWdlSW5kZXgpLHM9bXYoe3dpZHRoUHQ6by5nZW9tZXRyeS5wYWdlV2lkdGgsaGVpZ2h0UHQ6by5nZW9tZXRyeS5wYWdlSGVpZ2h0fSxpKSxjPW4uc2VjdGlvbi5zdGFydFR5cGU9PT1gY29udGludW91c2AmJihlIT09aXx8YS53aWR0aFB0IT09cy53aWR0aFB0fHxhLmhlaWdodFB0IT09cy5oZWlnaHRQdCk/YG5leHRQYWdlYDpuLnNlY3Rpb24uc3RhcnRUeXBlLGw9eU0obi5zZWN0aW9uLGYuZmxvdy5wYWdlSW5kZXgscltmLmZsb3cucGFnZUluZGV4XT8/e3RvcDowLGJvdHRvbTowfSk7dHJ5e2IoQkQoZi5mbG93LGdNKG4uc2VjdGlvbixmLmZsb3cucGFnZUluZGV4KSxjLHtoYXNGb290bm90ZVJlZmVyZW5jZU9uQ3VycmVudFBhZ2U6dyhmLmZsb3cucGFnZUluZGV4KSxpbmNvbWluZ1BhZ2VDb250ZW50U3RhcnRCbG9ja1B0OmwuYmxvY2tTdGFydFB0LGluY29taW5nUGFnZUNvbnRlbnRFbmRCbG9ja1B0OmwuYmxvY2tFbmRQdH0pLHQrMSl9Y2F0Y2goZSl7aWYoIShlIGluc3RhbmNlb2YgVEQpfHxmLmZsb3cucGFnZUluZGV4PT09MCl0aHJvdyBlO2xldCB0PWYuZmxvdy5wYWdlSW5kZXg7Zj1PYmplY3QuZnJlZXplKHsuLi5mLHBhZ2VzOk9iamVjdC5mcmVlemUoZi5wYWdlcy5maWx0ZXIoZT0+ZS5hY2N1bXVsYXRvci5wYWdlSW5kZXg8dCkpfSksTT1PYmplY3QuZnJlZXplKHtjb2RlOmBVTlNVUFBPUlRFRF9GRUFUVVJFYCxzZXZlcml0eTpgZXJyb3JgLHNvdXJjZTpuLnNvdXJjZSxtZXNzYWdlOmBEb2N1bWVudCBsYXlvdXQgc3RvcHBlZCBhZnRlciB0aGUgbGFzdCBjb21wbGV0ZSBwYWdlIGJlY2F1c2UgYSBuZXh0Q29sdW1uIHNlY3Rpb24gY291bGQgbm90IGJlIHBsYWNlZCBzYWZlbHkgKCR7ZS5yZWFzb259KWB9KTticmVhayBib2R5RW50cmllc31jb250aW51ZX1sZXQgaT1uLmtpbmQ9PT1gYWRqYWNlbnQtdGFibGUtZ3JvdXBgP246bi5ibG9jaztpZihpLmtpbmQ9PT1gcGFyYWdyYXBoYCl7aWYoaS5jb250aW51b3VzU2VjdGlvblJvbGU9PT1gY29sbGFwc2UtbWFya2ApY29udGludWU7aS5wYWdlQnJlYWtCZWZvcmUmJmIoekQoZi5mbG93LGBwYWdlQnJlYWtCZWZvcmVgKSx0KTtsZXQgbj1BPy5zcGFjZUFmdGVyUHQ/PzAsYT13ayhBLGksbixpLmNvbnRpbnVvdXNTZWN0aW9uUm9sZT09PWBzdXBwcmVzcy1iZWZvcmVgPzA6aS5zcGFjZUJlZm9yZVB0KSxvPWkuY29udGludW91c1NlY3Rpb25Sb2xlPT09YGRyb3AtcHJldmlvdXMtYWZ0ZXJgP246YS5vdmVybGFwO28+MCYmKGY9T2JqZWN0LmZyZWV6ZSh7Li4uZixmbG93Ok9iamVjdC5mcmVlemUoey4uLmYuZmxvdyxjdXJzb3JCbG9ja1B0Ok1hdGgubWF4KGYuZmxvdy5yZWdpb25TdGFydEJsb2NrUHQsZi5mbG93LmN1cnNvckJsb2NrUHQtbyl9KX0pKTtsZXQgcz1PYmplY3QuZnJlZXplKHtib3VuZGFyeTpudWxsfSk7Zm9yKDtzOyl7bGV0IG49RU0ocyksbz1DTShmKSx1PWcubWVhc3VyZVBhcmFncmFwaCh7aW5wdXQ6aSxsb2NhdGlvbjpvLGF2YWlsYWJsZUlubGluZUV4dGVudFB0Om8uYXZhaWxhYmxlQm91bmRzLndpZHRoUHQsc3VwcHJlc3NTcGFjZUJlZm9yZTpzLmJvdW5kYXJ5IT09bnVsbHx8aS5jb250aW51b3VzU2VjdGlvblJvbGU9PT1gc3VwcHJlc3MtYmVmb3JlYHx8YS5zdXBwcmVzc0JlZm9yZXx8cy5ib3VuZGFyeT09PW51bGwmJiFmLmZsb3cucGFnZUhhc0NvbnRlbnQmJmg9PT10LGNvbnRpbnVhdGlvbjpzfSk7aWYodS5wbGFjZW1lbnQpe2xldCBlPVQodS5sYXlvdXQsby5hdmFpbGFibGVCb3VuZHMud2lkdGhQdCx1LnJldGFpbmVkRm9vdG5vdGVSZWZlcmVuY2VJZHMpLHI9dS5yZWxvY2F0aW9uQmxvY2tFeHRlbnRQdCxhPXUucGxhY2VtZW50LnNlY3Rpb25GbG93T3duZXJzaGlwPT09YHBhZ2VgP2UucmVzZXJ2ZVB0OihyPz91LmJsb2NrRXh0ZW50UHQpK2UucmVzZXJ2ZVB0LGQ9XyhmKSxwPWsoZS5yZXNlcnZlUHQpO2lmKHVNKGUucmVzZXJ2ZVB0LGEsZCksKGE+by5hdmFpbGFibGVCb3VuZHMuaGVpZ2h0UHR8fHApJiZhPD1kJiZmLmZsb3cucGFnZUhhc0NvbnRlbnQpe2IocD9JRChmLmZsb3csZi5mbG93LnNlY3Rpb24sYG92ZXJmbG93YCk6akQoZi5mbG93LGBvdmVyZmxvd2ApLHQpO2NvbnRpbnVlfWY9VE0oZix1LmxheW91dCxpLnNvdXJjZSx1LmJsb2NrRXh0ZW50UHQsbixjLGwsdS5wbGFjZW1lbnQpLEQoZS5pZHMsZS5sYXlvdXRzLGUucmVzZXJ2ZVB0KSx1LmZsb3dSZWdpc3RyeURlbHRhJiZnLmNvbW1pdEZsb3dSZWdpc3RyeURlbHRhKHUuZmxvd1JlZ2lzdHJ5RGVsdGEpLHM9bnVsbCxnLm1vdmVBY3F1aXNpdGlvbkN1cnNvcihDTShmKSk7Y29udGludWV9aWYocy5ib3VuZGFyeT09PW51bGwmJmkua2VlcE5leHQmJmYuZmxvdy5wYWdlSGFzQ29udGVudCl7bGV0IG49dS5ibG9ja0V4dGVudFB0LHI9bmV3IFNldChSaih1LmxheW91dCkpLGE9ITEscz1ZRCh7a2VlcE5leHQ6aS5rZWVwTmV4dCxpbmtsZXNzOmkuaW5rbGVzcz09PSEwLHVuZGVjb3JhdGVkTWFyazpPTSh1LmxheW91dCl9KTtmb3IobGV0IGk9dCsxO2k8ZS5zZXF1ZW5jZS5sZW5ndGg7aSs9MSl7bGV0IHQ9ZS5zZXF1ZW5jZVtpXTtpZih0LmtpbmQ9PT1gY29uc3VtZS1zb3VyY2VgKWNvbnRpbnVlO2lmKHQua2luZD09PWBhdXRob3JlZC1icmVha2B8fHQua2luZD09PWBiZWdpbi1zZWN0aW9uYClicmVhaztsZXQgYz10LmtpbmQ9PT1gYWRqYWNlbnQtdGFibGUtZ3JvdXBgP3Q6dC5ibG9jaztpZihjLmtpbmQ9PT1gcGFyYWdyYXBoYCYmYy5wYWdlQnJlYWtCZWZvcmUpYnJlYWs7bGV0IGw9Zy5tZWFzdXJlRm9sbG93aW5nQmxvY2soe2lucHV0OmMsbG9jYXRpb246byxhdmFpbGFibGVJbmxpbmVFeHRlbnRQdDpvLmF2YWlsYWJsZUJvdW5kcy53aWR0aFB0fSksdT1jLmtpbmQ9PT1gcGFyYWdyYXBoYCYmKGMua2VlcE5leHR8fHMpO2lmKHM9ITEsbis9dT9sLmZ1bGxFeHRlbnRQdDpsLmxlYWRDb250ZW50RXh0ZW50UHQsKHU/bC5mdWxsRm9vdG5vdGVSZWZlcmVuY2VJZHM6bC5sZWFkRm9vdG5vdGVSZWZlcmVuY2VJZHMpPy5mb3JFYWNoKGU9PnIuYWRkKGUpKSwhdSl7YT0hMDticmVha319bGV0IGM9RShbLi4ucl0sby5hdmFpbGFibGVCb3VuZHMud2lkdGhQdCkucmVzZXJ2ZVB0LGw9bitjO2lmKGEmJmw+by5hdmFpbGFibGVCb3VuZHMuaGVpZ2h0UHQmJmw8PV8oZikpe2IoakQoZi5mbG93LGBvdmVyZmxvd2ApLHQsITApO2NvbnRpbnVlfX1sZXQgZD1lLnNlcXVlbmNlW3QrMV0scD1lLnNlcXVlbmNlW3QrMl0sbT1kPy5raW5kPT09YGJvZHktYmxvY2tgJiZkLmJsb2NrLmtpbmQ9PT1gcGFyYWdyYXBoYCYmcD8ua2luZD09PWBhdXRob3JlZC1icmVha2AmJnAuYnJlYWs9PT1gcGFnZWAmJnAuc2FtZVNvdXJjZVBhcmFncmFwaEFzUHJldmlvdXMhPT0hMCx2PVFEKHUubGF5b3V0KTtpZihzLmJvdW5kYXJ5PT09bnVsbCYmdiYmbSYmZi5mbG93LnBhZ2VIYXNDb250ZW50KXtsZXQgZT1qTShvLHUuYmxvY2tFeHRlbnRQdCksbj1nLm1lYXN1cmVQYXJhZ3JhcGgoe2lucHV0OmQuYmxvY2ssbG9jYXRpb246ZSxhdmFpbGFibGVJbmxpbmVFeHRlbnRQdDplLmF2YWlsYWJsZUJvdW5kcy53aWR0aFB0LHN1cHByZXNzU3BhY2VCZWZvcmU6ITEsY29udGludWF0aW9uOk9iamVjdC5mcmVlemUoe2JvdW5kYXJ5Om51bGx9KX0pO2cubW92ZUFjcXVpc2l0aW9uQ3Vyc29yKG8pO2xldCByPSREKG4ubGF5b3V0LGUuY3Vyc29yUHQueVB0KTtpZihyIT09bnVsbCl7bGV0IGU9dS5ibG9ja0V4dGVudFB0K3I7aWYoZT5vLmF2YWlsYWJsZUJvdW5kcy5oZWlnaHRQdCYmZTw9XyhmKSl7YihqRChmLmZsb3csYG92ZXJmbG93YCksdCk7Y29udGludWV9fX1sZXQgeT1lLnNlcXVlbmNlW3QrMV0seD15Py5raW5kPT09YGF1dGhvcmVkLWJyZWFrYCYmeS5icmVhaz09PWBwYWdlYDtpZihzLmJvdW5kYXJ5PT09bnVsbCYmeCl7bGV0IGU9ZU8odS5sYXlvdXQpO2lmKGUhPT1udWxsKXtmPVRNKGYsZSxpLnNvdXJjZSwwLG4sYyxsKSx1LmZsb3dSZWdpc3RyeURlbHRhJiZnLmNvbW1pdEZsb3dSZWdpc3RyeURlbHRhKHUuZmxvd1JlZ2lzdHJ5RGVsdGEpLHM9bnVsbCxnLm1vdmVBY3F1aXNpdGlvbkN1cnNvcihDTShmKSk7Y29udGludWV9fWxldCBTPVQodS5sYXlvdXQsby5hdmFpbGFibGVCb3VuZHMud2lkdGhQdCkucmVzZXJ2ZVB0LEM9KHJbZi5mbG93LnBhZ2VJbmRleF0/LmJvdHRvbT8/MCk9PT0wJiZmLmZvb3Rub3RlUmVzZXJ2ZVB0PT09MCx3PVNNKGYpPT09eE0oZikuYmxvY2tFbmRQdCxPPXk/LmtpbmQ9PT1gYmVnaW4tc2VjdGlvbmAmJnkuc2VjdGlvbi5zdGFydFR5cGU9PT1gbmV4dFBhZ2VgLEE9UEMoe2hhc0NvbnRpbnVhdGlvbkJvdW5kYXJ5OnMuYm91bmRhcnkhPT1udWxsLGlua2xlc3M6aS5pbmtsZXNzPT09ITAsdW5kZWNvcmF0ZWQ6T00odS5sYXlvdXQpLGtlZXBOZXh0Omkua2VlcE5leHQsbWFya1Jlc2VydmVQdDpTLHBhZ2VCb3R0b21Jc1VucmVzZXJ2ZWQ6QyxwaHlzaWNhbFJlZ2lvbkJvdHRvbUlzQWN0aXZlOncsaGFzRm9sbG93aW5nSW5rOkRNKGUsdCsxKSxmb2xsb3dzTmV4dFBhZ2VTZWN0aW9uQm91bmRhcnk6TyxtYXJrRXh0ZW50UHQ6dS5ibG9ja0V4dGVudFB0LG1hcmtCZWxvd0Jhc2VsaW5lUHQ6dS5tYXJrQmVsb3dCYXNlbGluZVB0Pz8wfSksaj1Baih1LmxheW91dCxzLHUuZnJhZ21lbnRhdGlvbixvLmF2YWlsYWJsZUJvdW5kcy5oZWlnaHRQdCtBLF8oZiksZi5mbG93LnBhZ2VIYXNDb250ZW50LHtrZWVwTGluZXM6aS5rZWVwTGluZXMsd2lkb3dDb250cm9sOmkud2lkb3dDb250cm9sLGF1dGhvcmVkU3BhY2VBZnRlclB0Omkuc3BhY2VBZnRlclB0LHdyaXRpbmdNb2RlOnhNKGYpLndyaXRpbmdNb2RlfSxlPT5UKGUsby5hdmFpbGFibGVCb3VuZHMud2lkdGhQdCkucmVzZXJ2ZVB0LHUudW5pZm9ybVJ1YnlBZHZhbmNlUHQsZT0+IWsoZSkpO2lmKGoucmVxdWlyZXNGcmVzaEZsb3dSZWdpb24pe2IoakQoZi5mbG93LGBvdmVyZmxvd2ApLHQpO2NvbnRpbnVlfWlmKCFqLmZyYWdtZW50KXRocm93IEVycm9yKGBQYXJhZ3JhcGggYWNxdWlzaXRpb24gbWFkZSBubyBwcm9ncmVzc2ApO2Y9VE0oZixqLmZyYWdtZW50LGkuc291cmNlLE1hdGgubWluKGouYWRtaXR0ZWRCbG9ja0V4dGVudFB0LG8uYXZhaWxhYmxlQm91bmRzLmhlaWdodFB0KSxuLGMsbCx1LnBsYWNlbWVudCk7bGV0IE09VChqLmZyYWdtZW50LG8uYXZhaWxhYmxlQm91bmRzLndpZHRoUHQpO2lmKHVNKE0ucmVzZXJ2ZVB0LGouZnJhZ21lbnQuYWR2YW5jZVB0K00ucmVzZXJ2ZVB0LF8oZikpLEQoTS5pZHMsTS5sYXlvdXRzLE0ucmVzZXJ2ZVB0KSx1LmZsb3dSZWdpc3RyeURlbHRhKXtsZXQgZT1wTSh1LmZsb3dSZWdpc3RyeURlbHRhLGouZnJhZ21lbnQpO2UmJmcuY29tbWl0Rmxvd1JlZ2lzdHJ5RGVsdGEoZSl9cz1qLm5leHRDdXJzb3IscyYmYihqRChmLmZsb3csYG92ZXJmbG93YCksdCksbz1DTShmKSxnLm1vdmVBY3F1aXNpdGlvbkN1cnNvcihvKX1BPWl9ZWxzZXtBPW51bGw7bGV0IGUsbj0hMTtmb3IoOyFuOyl7bGV0IHI9QU0oZSksYT1DTShmKSxvPXQ9PmcubWVhc3VyZVRhYmxlKHtpbnB1dDppLGxvY2F0aW9uOmEsYXZhaWxhYmxlSW5saW5lRXh0ZW50UHQ6YS5hdmFpbGFibGVCb3VuZHMud2lkdGhQdCxhdmFpbGFibGVCbG9ja0V4dGVudFB0OnQsZnJlc2hQYWdlQmxvY2tFeHRlbnRQdDpfKGYpLC4uLmU/e2N1cnNvcjplfTp7fX0pLHM9YS5hdmFpbGFibGVCb3VuZHMuaGVpZ2h0UHQsdT1vKHMpO2lmKHUucmV0cnlBdEJsb2NrU3RhcnRQdCE9PXZvaWQgMCl7aWYoIU51bWJlci5pc0Zpbml0ZSh1LnJldHJ5QXRCbG9ja1N0YXJ0UHQpfHx1LnJldHJ5QXRCbG9ja1N0YXJ0UHQ8PWYuZmxvdy5jdXJzb3JCbG9ja1B0KXRocm93IEVycm9yKGBUYWJsZSByZXBvc2l0aW9uaW5nIG11c3QgYWR2YW5jZSB0aGUgYmxvY2sgY3Vyc29yYCk7Zj1PYmplY3QuZnJlZXplKHsuLi5mLGZsb3c6T2JqZWN0LmZyZWV6ZSh7Li4uZi5mbG93LGN1cnNvckJsb2NrUHQ6dS5yZXRyeUF0QmxvY2tTdGFydFB0fSl9KSxnLm1vdmVBY3F1aXNpdGlvbkN1cnNvcihDTShmKSk7Y29udGludWV9bGV0IGQ9dS5yZXF1aXJlc0ZyZXNoRmxvd1JlZ2lvbj9PYmplY3QuZnJlZXplKHtpZHM6T2JqZWN0LmZyZWV6ZShbXSksbGF5b3V0czpPYmplY3QuZnJlZXplKFtdKSxyZXNlcnZlUHQ6MH0pOlQodS5sYXlvdXQsYS5hdmFpbGFibGVCb3VuZHMud2lkdGhQdCkscD1PYmplY3QuZnJlZXplKHtyZXNlcnZlUHQ6ZC5yZXNlcnZlUHQsY2hhcmdlUHQ6dS5ibG9ja0V4dGVudFB0K2QucmVzZXJ2ZVB0fSksbT1uZXcgU2V0O2Zvcig7IXUucmVxdWlyZXNGcmVzaEZsb3dSZWdpb24mJnUuYmxvY2tFeHRlbnRQdCtkLnJlc2VydmVQdD5hLmF2YWlsYWJsZUJvdW5kcy5oZWlnaHRQdDspe2xldCBlPUpTT04uc3RyaW5naWZ5KHthZHZhbmNlUHQ6dS5ibG9ja0V4dGVudFB0LG5leHRDdXJzb3I6dS5uZXh0Q3Vyc29yPz9udWxsLG5vdGVJZHM6ZC5pZHMscmVzZXJ2ZVB0OmQucmVzZXJ2ZVB0fSk7aWYobS5oYXMoZSkpdGhyb3cgdU0ocC5yZXNlcnZlUHQscC5jaGFyZ2VQdCxfKGYpKSxFcnJvcihgVGFibGUgZm9vdG5vdGUgYWRtaXNzaW9uIGRpZCBub3QgY29udmVyZ2VgKTttLmFkZChlKSxzPU1hdGgubWF4KDAsYS5hdmFpbGFibGVCb3VuZHMuaGVpZ2h0UHQtZC5yZXNlcnZlUHQpLHU9byhzKSxkPXUucmVxdWlyZXNGcmVzaEZsb3dSZWdpb24/T2JqZWN0LmZyZWV6ZSh7aWRzOk9iamVjdC5mcmVlemUoW10pLGxheW91dHM6T2JqZWN0LmZyZWV6ZShbXSkscmVzZXJ2ZVB0OjB9KTpUKHUubGF5b3V0LGEuYXZhaWxhYmxlQm91bmRzLndpZHRoUHQpLHUucmVxdWlyZXNGcmVzaEZsb3dSZWdpb258fChwPU9iamVjdC5mcmVlemUoe3Jlc2VydmVQdDpkLnJlc2VydmVQdCxjaGFyZ2VQdDp1LmJsb2NrRXh0ZW50UHQrZC5yZXNlcnZlUHR9KSl9aWYodS5yZXF1aXJlc0ZyZXNoRmxvd1JlZ2lvbil7dU0ocC5yZXNlcnZlUHQscC5jaGFyZ2VQdCxfKGYpKTtsZXQgbj0hZi5mbG93LnBhZ2VIYXNDb250ZW50JiZ1Lm5leHRDdXJzb3I/LmtpbmQ9PT1gdGFibGVgJiZ1Lm5leHRDdXJzb3IuZmxvYXRpbmdDb250aW51YXRpb25GcmFtZT09PWBmcmVzaC10ZXh0YCYmIShlPy5raW5kPT09YHRhYmxlYCYmZS5mbG9hdGluZ0NvbnRpbnVhdGlvbkZyYW1lIT09dm9pZCAwKTtpZih1Lm5leHRDdXJzb3I/LmtpbmQ9PT1gdGFibGVgJiZ1Lm5leHRDdXJzb3IuZmxvYXRpbmdDb250aW51YXRpb25GcmFtZSE9PXZvaWQgMCYmKGU9dS5uZXh0Q3Vyc29yKSxuKWNvbnRpbnVlO2IoakQoZi5mbG93LGBvdmVyZmxvd2ApLHQpO2NvbnRpbnVlfWlmKGsoZC5yZXNlcnZlUHQpJiZmLmZsb3cucGFnZUhhc0NvbnRlbnQpe2IoSUQoZi5mbG93LGYuZmxvdy5zZWN0aW9uLGBvdmVyZmxvd2ApLHQpO2NvbnRpbnVlfWY9VE0oZix1LmxheW91dCxpLnNvdXJjZSx1LmJsb2NrRXh0ZW50UHQscixjLGwsdS5wbGFjZW1lbnQpLEQoZC5pZHMsZC5sYXlvdXRzLGQucmVzZXJ2ZVB0KSx1LmZsb3dSZWdpc3RyeURlbHRhJiZnLmNvbW1pdEZsb3dSZWdpc3RyeURlbHRhKGZNKHUuZmxvd1JlZ2lzdHJ5RGVsdGEsdS5sYXlvdXQsa2coaS5zb3VyY2UsYS5mbG93RG9tYWluSWQscikpKSxlPXUubmV4dEN1cnNvcj8/dm9pZCAwLG49ZT09PXZvaWQgMCxlJiZiKGpEKGYuZmxvdyxgb3ZlcmZsb3dgKSx0KX19Zy5tb3ZlQWNxdWlzaXRpb25DdXJzb3IoQ00oZikpfWxldCBOPW5ldyBTZXQoWy4uLlMua2V5cygpLC4uLkMua2V5cygpXSk7Zm9yKGxldCBlIG9mIE4pe2xldCB0PVMuZ2V0KGUpPz8wLG49KEMuZ2V0KGUpPz9bXSkucmVkdWNlKChlLHQpPT5lK3QuYWR2YW5jZVB0LDApO2lmKHQhPT1uKXRocm93IG5ldyBaKGBJTlZBTElEX0dFT01FVFJZYCxgUGFnZSAke2V9IGZvb3Rub3RlIHJlc2VydmUgJHt0fSBkb2VzIG5vdCBlcXVhbCByZXRhaW5lZCBhZHZhbmNlICR7bn1gKX1sZXQgUD1NTShmLHMpLEY9bmV3IFNldChQLnBhZ2VzLm1hcChlPT5lLnBhZ2VJbmRleCkpLEk9bmV3IFNldChQLnBhZ2VzLmZsYXRNYXAoZT0+Sl8oZSkubWFwKCh7bm9kZTplfSk9PmUuaWQpKSksTD1uZXcgTWFwKFsuLi5TXS5maWx0ZXIoKFtlXSk9PkYuaGFzKGUpKSksUj1uZXcgTWFwKFsuLi5DXS5maWx0ZXIoKFtlXSk9PkYuaGFzKGUpKSk7cmV0dXJuIE9iamVjdC5mcmVlemUoe2xheW91dDpQLHNlc3Npb246ZyxhbGxvY2F0aW9uczpPYmplY3QuZnJlZXplKGwuZmlsdGVyKGU9PkkuaGFzKGUubm9kZUlkKSkpLGZvb3Rub3RlUmVzZXJ2ZUJ5UGFnZTpMLGZvb3Rub3RlTGF5b3V0c0J5UGFnZTpSLHRlcm1pbmFsRGlhZ25vc3RpYzpNfSl9ZnVuY3Rpb24gUE0oZSx0KXtyZXR1cm4gT2JqZWN0LmZyZWV6ZShlLmxheW91dC5wYWdlcy5tYXAoKG4scik9PntpZihuLnBhcml0eUJsYW5rfHxjdihuLnNlY3Rpb24udGV4dERpcmVjdGlvbikhPT1gaG9yaXpvbnRhbC10YmApcmV0dXJuIE9iamVjdC5mcmVlemUoe3RvcDowLGJvdHRvbTowfSk7bGV0IGk9dC5nZXQobi5zZWN0aW9uT2NjdXJyZW5jZUlkKTtpZighaSl0aHJvdyBFcnJvcihgVW5rbm93biBib2R5IHNlY3Rpb24gJHtuLnNlY3Rpb25PY2N1cnJlbmNlSWR9YCk7bGV0IGE9TWF0aC5tYXgoMCxuLnNlY3Rpb24uZ2VvbWV0cnkucGFnZVdpZHRoLU1hdGguYWJzKG4uc2VjdGlvbi5nZW9tZXRyeS5tYXJnaW5MZWZ0KS1NYXRoLmFicyhuLnNlY3Rpb24uZ2VvbWV0cnkubWFyZ2luUmlnaHQpKSxvPXQ9PntsZXQgbz1Zaih0PT09YGhlYWRlcmA/aS5oZWFkZXJzOmkuZm9vdGVycyx7dGl0bGVQYWdlOmkudGl0bGVQYWdlLGZpcnN0UGFnZU9mU2VjdGlvbjpKaihlLmxheW91dC5wYWdlcyxyKSxldmVuQW5kT2RkSGVhZGVyczppLmV2ZW5BbmRPZGRIZWFkZXJzLGRpc3BsYXlQYWdlTnVtYmVyOm4ucGFnZU51bWJlci5kaXNwbGF5TnVtYmVyfSk7aWYobz09PW51bGwpcmV0dXJuIDA7aWYoIWUuc2Vzc2lvbi5sYXlvdXRTdG9yeSl0aHJvdyBFcnJvcihgSGVhZGVyL2Zvb3RlciBzdG9yeSBsYXlvdXQgcmVxdWlyZXMgYSBzdG9yeS1jYXBhYmxlIGxheW91dCBzZXNzaW9uYCk7cmV0dXJuIGUuc2Vzc2lvbi5sYXlvdXRTdG9yeSh7c291cmNlOm8scGFnZUluZGV4Om4ucGFnZUluZGV4LHNlY3Rpb246bi5zZWN0aW9uLGNvbnRhaW5lcjp7aWQ6YHN0b3J5OiR7dH06cGFnZToke24ucGFnZUluZGV4fWAsa2luZDp0LGJvdW5kczp7eFB0Ok1hdGguYWJzKG4uc2VjdGlvbi5nZW9tZXRyeS5tYXJnaW5MZWZ0KSx5UHQ6MCx3aWR0aFB0OmEsaGVpZ2h0UHQ6bi5zZWN0aW9uLmdlb21ldHJ5LnBhZ2VIZWlnaHR9fX0pLmFkdmFuY2VQdH07cmV0dXJuIE9iamVjdC5mcmVlemUoe3RvcDpaaihvKGBoZWFkZXJgKSxuLnNlY3Rpb24uZ2VvbWV0cnkubWFyZ2luVG9wLG4uc2VjdGlvbi5nZW9tZXRyeS5oZWFkZXJEaXN0YW5jZSksYm90dG9tOlpqKG8oYGZvb3RlcmApLG4uc2VjdGlvbi5nZW9tZXRyeS5tYXJnaW5Cb3R0b20sbi5zZWN0aW9uLmdlb21ldHJ5LmZvb3RlckRpc3RhbmNlKX0pfSkpfWZ1bmN0aW9uIEZNKGUsdCxuLHIpe2xldCBpPWUucGFnZXMubWFwKChpLGEpPT57aWYoaS5wYXJpdHlCbGFuaylyZXR1cm4gaTtsZXQgbz1uLmdldChpLnNlY3Rpb25PY2N1cnJlbmNlSWQpO2lmKCFvKXRocm93IEVycm9yKGBVbmtub3duIGJvZHkgc2VjdGlvbiAke2kuc2VjdGlvbk9jY3VycmVuY2VJZH1gKTtpZighdC5sYXlvdXRTdG9yeSl7aWYoIShPYmplY3QudmFsdWVzKG8uaGVhZGVycykuc29tZShlPT5lIT09bnVsbCl8fE9iamVjdC52YWx1ZXMoby5mb290ZXJzKS5zb21lKGU9PmUhPT1udWxsKXx8KHIuZ2V0KGkucGFnZUluZGV4KT8ubGVuZ3RoPz8wKT4wKSlyZXR1cm4gaTt0aHJvdyBFcnJvcihgUGFnZS1zdG9yeSBjb21wb3NpdGlvbiByZXF1aXJlcyBhIHN0b3J5LWNhcGFibGUgbGF5b3V0IHNlc3Npb25gKX1sZXQgcz1jdihpLnNlY3Rpb24udGV4dERpcmVjdGlvbikhPT1gaG9yaXpvbnRhbC10YmAsYz1zP1ZDKGkuc2VjdGlvbi5nZW9tZXRyeSk6aS5zZWN0aW9uLmdlb21ldHJ5LGw9TWF0aC5hYnMoYy5tYXJnaW5MZWZ0KSx1PU1hdGgubWF4KDAsYy5wYWdlV2lkdGgtTWF0aC5hYnMoYy5tYXJnaW5MZWZ0KS1NYXRoLmFicyhjLm1hcmdpblJpZ2h0KSksZD1zP2B1cHJpZ2h0LXBoeXNpY2FsYDpgc2VjdGlvbi1sb2dpY2FsYCxmPXM/T2JqZWN0LmZyZWV6ZSh7Li4uaS5zZWN0aW9uLGdlb21ldHJ5Ok9iamVjdC5mcmVlemUoey4uLmN9KSxjb2x1bW5zOk9iamVjdC5mcmVlemUoW09iamVjdC5mcmVlemUoe3hQdDpsLHdQdDp1fSldKSx0ZXh0RGlyZWN0aW9uOmBsclRiYH0pOmkuc2VjdGlvbixwPXQ9PllqKHQ9PT1gaGVhZGVyYD9vLmhlYWRlcnM6by5mb290ZXJzLHt0aXRsZVBhZ2U6by50aXRsZVBhZ2UsZmlyc3RQYWdlT2ZTZWN0aW9uOkpqKGUucGFnZXMsYSksZXZlbkFuZE9kZEhlYWRlcnM6by5ldmVuQW5kT2RkSGVhZGVycyxkaXNwbGF5UGFnZU51bWJlcjppLnBhZ2VOdW1iZXIuZGlzcGxheU51bWJlcn0pLG09ZT0+e2xldCBuPXAoZSk7aWYobj09PW51bGwpcmV0dXJuIG51bGw7bGV0IHI9dC5sYXlvdXRTdG9yeSh7c291cmNlOm4scGFnZUluZGV4OmkucGFnZUluZGV4LHNlY3Rpb246Zixjb250YWluZXI6e2lkOmBzdG9yeToke2V9OnBhZ2U6JHtpLnBhZ2VJbmRleH1gLGtpbmQ6ZSxib3VuZHM6e3hQdDpsLHlQdDowLHdpZHRoUHQ6dSxoZWlnaHRQdDpjLnBhZ2VIZWlnaHR9fX0pO3JldHVybiBhTShyLHt4UHQ6MCx5UHQ6KGU9PT1gaGVhZGVyYD9jLmhlYWRlckRpc3RhbmNlOmMucGFnZUhlaWdodC1jLmZvb3RlckRpc3RhbmNlLXIuYWR2YW5jZVB0KS1yLmZsb3dCb3VuZHMueVB0fSl9LGg9bShgaGVhZGVyYCksZz1tKGBmb290ZXJgKSxfPXIuZ2V0KGkucGFnZUluZGV4KT8/W10sdj1fLnJlZHVjZSgoZSx0KT0+ZSt0LmFkdmFuY2VQdCwwKSx5PWkuc2VjdGlvblJlZ2lvbnNbMF0sYj0oeT8uYmxvY2tFbmRQdD8/TWF0aC5tYXgoMCxpLnNlY3Rpb24uZ2VvbWV0cnkucGFnZUhlaWdodC1NYXRoLmFicyhpLnNlY3Rpb24uZ2VvbWV0cnkubWFyZ2luQm90dG9tKSkpLXYseD1iLFM9Xy5tYXAoZT0+e2xldCB0PW9NKGUse3hQdDowLHlQdDp4LWUuZmxvd0JvdW5kcy55UHR9KTtyZXR1cm4geCs9ZS5hZHZhbmNlUHQsdH0pLEM9Uy5sZW5ndGg9PT0wPzA6TWF0aC5taW4oLi4uUy5tYXAoZT0+ZS5mbG93Qm91bmRzLnhQdCkpLHc9Uy5sZW5ndGg9PT0wPzA6TWF0aC5tYXgoLi4uUy5tYXAoZT0+ZS5mbG93Qm91bmRzLnhQdCtlLmZsb3dCb3VuZHMud2lkdGhQdCkpLFQ9T2JqZWN0LmZyZWV6ZSh7eFB0OkMseVB0OmIsd2lkdGhQdDp3LUMsaGVpZ2h0UHQ6dn0pLEU9eT9PYmplY3QuZnJlZXplKHZ2KHkuY29vcmRpbmF0ZVNwYWNlLmxvZ2ljYWxUb1BoeXNpY2FsLFQpKTpULEQ9Wy4uLmg/W09iamVjdC5mcmVlemUoe2lkOmBzdG9yeTpoZWFkZXI6cGFnZToke2kucGFnZUluZGV4fWAsa2luZDpgaGVhZGVyYCxsb2dpY2FsQm91bmRzOk9iamVjdC5mcmVlemUoe3hQdDpsLHlQdDpoLmZsb3dCb3VuZHMueVB0LHdpZHRoUHQ6dSxoZWlnaHRQdDpoLmFkdmFuY2VQdH0pLHBoeXNpY2FsQm91bmRzOk9iamVjdC5mcmVlemUoe3hQdDpsLHlQdDpoLmZsb3dCb3VuZHMueVB0LHdpZHRoUHQ6dSxoZWlnaHRQdDpoLmFkdmFuY2VQdH0pfSldOltdLC4uLlMubGVuZ3RoPjA/W09iamVjdC5mcmVlemUoe2lkOmBub3RlczpwYWdlOiR7aS5wYWdlSW5kZXh9YCxraW5kOmBmb290bm90ZWAsLi4ueT97c2VjdGlvblJlZ2lvbklkOnkuaWR9Ont9LGxvZ2ljYWxCb3VuZHM6VCxwaHlzaWNhbEJvdW5kczpFfSldOltdLC4uLmc/W09iamVjdC5mcmVlemUoe2lkOmBzdG9yeTpmb290ZXI6cGFnZToke2kucGFnZUluZGV4fWAsa2luZDpgZm9vdGVyYCxsb2dpY2FsQm91bmRzOk9iamVjdC5mcmVlemUoe3hQdDpsLHlQdDpnLmZsb3dCb3VuZHMueVB0LHdpZHRoUHQ6dSxoZWlnaHRQdDpnLmFkdmFuY2VQdH0pLHBoeXNpY2FsQm91bmRzOk9iamVjdC5mcmVlemUoe3hQdDpsLHlQdDpnLmZsb3dCb3VuZHMueVB0LHdpZHRoUHQ6dSxoZWlnaHRQdDpnLmFkdmFuY2VQdH0pfSldOltdXSxPPWkubGF5ZXJzLnJvb3RzLm1hcChlPT5lKSxrPU8uZmluZEluZGV4KGU9PmUubGF5ZXIhPT1gYmFja2dyb3VuZGAmJmUubGF5ZXIhPT1gYmVoaW5kVGV4dGApLEE9azwwP08ubGVuZ3RoOmssaj1bLi4uTy5zbGljZSgwLEEpLC4uLmg/LmJsb2Nrcy5tYXAoZT0+KHtsYXllcjpgaGVhZGVyYCxub2RlOmUsY29vcmRpbmF0ZVNwYWNlOmR9KSk/P1tdLC4uLk8uc2xpY2UoQSldLE09LTE7Zm9yKGxldCBlPTA7ZTxqLmxlbmd0aDtlKz0xKWpbZV0ubGF5ZXI9PT1gYm9keWAmJihNPWUpO2xldCBOPU08MD9qLmxlbmd0aDpNKzEsUD1bLi4uai5zbGljZSgwLE4pLC4uLlMubWFwKGU9Pih7bGF5ZXI6YG5vdGVzYCxub2RlOmUsY29vcmRpbmF0ZVNwYWNlOmBzZWN0aW9uLWxvZ2ljYWxgfSkpLC4uLmouc2xpY2UoTiksLi4uZz8uYmxvY2tzLm1hcChlPT4oe2xheWVyOmBmb290ZXJgLG5vZGU6ZSxjb29yZGluYXRlU3BhY2U6ZH0pKT8/W11dO3JldHVybiBPYmplY3QuZnJlZXplKHsuLi5pLGZsb3dEb21haW5zOk9iamVjdC5mcmVlemUoWy4uLmkuZmxvd0RvbWFpbnMsLi4uRF0pLGxheWVyczpLXyhQKSxyZWFkaW5nT3JkZXI6T2JqZWN0LmZyZWV6ZShbLi4uaD8uYmxvY2tzLm1hcChlPT5lLmlkKT8/W10sLi4uaS5yZWFkaW5nT3JkZXIsLi4uUy5tYXAoZT0+ZS5pZCksLi4uZz8uYmxvY2tzLm1hcChlPT5lLmlkKT8/W11dKX0pfSk7cmV0dXJuIE9iamVjdC5mcmVlemUoey4uLmUscGFnZXM6T2JqZWN0LmZyZWV6ZShpKX0pfWZ1bmN0aW9uIElNKGUsdCxuKXtpZihuLmxlbmd0aD09PTApcmV0dXJuIGU7bGV0IHI9LTE7Zm9yKGxldCB0PWUucGFnZXMubGVuZ3RoLTE7dD49MDstLXQpaWYoIWUucGFnZXNbdF0ucGFyaXR5Qmxhbmspe3I9dDticmVha31pZihyPDApcmV0dXJuIGU7bGV0IGk9ZS5wYWdlc1tyXTtpZighdC5sYXlvdXROb3RlcylyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Li4uZSxkaWFnbm9zdGljczpPYmplY3QuZnJlZXplKFsuLi5lLmRpYWdub3N0aWNzLE9iamVjdC5mcmVlemUoe2NvZGU6YFVOU1VQUE9SVEVEX0ZFQVRVUkVgLHNldmVyaXR5OmBlcnJvcmAsc291cmNlOk9iamVjdC5mcmVlemUoe3N0b3J5OmBlbmRub3RlYCxzdG9yeUluc3RhbmNlOm5bMF0scGF0aDpPYmplY3QuZnJlZXplKFtdKX0pLG1lc3NhZ2U6YERvY3VtZW50LWVuZCBub3RlcyByZXF1aXJlIGEgbm90ZS1jYXBhYmxlIGxheW91dCBzZXNzaW9uYH0pXSl9KTtsZXQgYT1uZXcgTWFwKGkuZmxvd0RvbWFpbnMubWFwKGU9PltlLmlkLGVdKSksbz1pLmxheWVycy5ib2R5LmZpbHRlcihlPT5lLm9yZGluYXJ5RmxvdyYmYS5nZXQoZS5mbG93RG9tYWluSWQpPy5raW5kPT09YGJvZHlgKS5yZWR1Y2UoKGUsdCk9PmU9PT1udWxsfHx0LmZsb3dCb3VuZHMueVB0K3QuZmxvd0JvdW5kcy5oZWlnaHRQdD5lLmZsb3dCb3VuZHMueVB0K2UuZmxvd0JvdW5kcy5oZWlnaHRQdD90OmUsbnVsbCkscz1vP2EuZ2V0KG8uZmxvd0RvbWFpbklkKTpbLi4uaS5mbG93RG9tYWluc10ucmV2ZXJzZSgpLmZpbmQoZT0+ZS5raW5kPT09YGJvZHlgKTtpZighcylyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Li4uZSxkaWFnbm9zdGljczpPYmplY3QuZnJlZXplKFsuLi5lLmRpYWdub3N0aWNzLE9iamVjdC5mcmVlemUoe2NvZGU6YFVOU1VQUE9SVEVEX0ZFQVRVUkVgLHNldmVyaXR5OmBlcnJvcmAsbWVzc2FnZTpgRG9jdW1lbnQtZW5kIG5vdGVzIHJlcXVpcmUgYSByZXRhaW5lZCBib2R5IGZsb3cgZG9tYWluYH0pXSl9KTtsZXQgYz1pLnNlY3Rpb25SZWdpb25zLmZpbmQoZT0+ZS5mbG93RG9tYWluSWRzLmluY2x1ZGVzKHMuaWQpKT8/aS5zZWN0aW9uUmVnaW9uc1swXSxsPW8/by5mbG93Qm91bmRzLnlQdCtvLmZsb3dCb3VuZHMuaGVpZ2h0UHQ6cy5sb2dpY2FsQm91bmRzLnlQdCx1PWkubGF5ZXJzLm5vdGVzLmZpbHRlcihlPT5lLmtpbmQ9PT1gbm90ZWAmJmUuc291cmNlLnN0b3J5PT09YGZvb3Rub3RlYCkucmVkdWNlKChlLHQpPT5NYXRoLm1pbihlLHQuZmxvd0JvdW5kcy55UHQpLHMubG9naWNhbEJvdW5kcy55UHQrcy5sb2dpY2FsQm91bmRzLmhlaWdodFB0KSxkPU1hdGgubWluKHMubG9naWNhbEJvdW5kcy55UHQrcy5sb2dpY2FsQm91bmRzLmhlaWdodFB0LHUpLGY9YGVuZG5vdGVzOnBhZ2U6JHtpLnBhZ2VJbmRleH1gO3RyeXtsZXQgYT10LmxheW91dE5vdGVzKHtraW5kOmBlbmRub3RlYCxyZWZlcmVuY2VJZHM6T2JqZWN0LmZyZWV6ZShbLi4ubl0pLHBhZ2VJbmRleDppLnBhZ2VJbmRleCxzZWN0aW9uOmM/LnNlY3Rpb24/P2kuc2VjdGlvbixjb250YWluZXI6e2lkOmYsa2luZDpgZW5kbm90ZWAsYm91bmRzOnt4UHQ6cy5sb2dpY2FsQm91bmRzLnhQdCx5UHQ6bCx3aWR0aFB0OnMubG9naWNhbEJvdW5kcy53aWR0aFB0LGhlaWdodFB0Ok1hdGgubWF4KDAsZC1sKX19LGZpcnN0T25QYWdlOiEwfSk7aWYoYS5sZW5ndGg9PT0wKXJldHVybiBlO2xldCBvPWEucmVkdWNlKChlLHQpPT5lK3QuYWR2YW5jZVB0LDApLHU9T2JqZWN0LmZyZWV6ZSh7eFB0OnMubG9naWNhbEJvdW5kcy54UHQseVB0Omwsd2lkdGhQdDpzLmxvZ2ljYWxCb3VuZHMud2lkdGhQdCxoZWlnaHRQdDpvfSkscD1PYmplY3QuZnJlZXplKHtpZDpmLGtpbmQ6YGVuZG5vdGVgLC4uLmM/e3NlY3Rpb25SZWdpb25JZDpjLmlkfTp7fSxsb2dpY2FsQm91bmRzOnUscGh5c2ljYWxCb3VuZHM6Yz9PYmplY3QuZnJlZXplKHZ2KGMuY29vcmRpbmF0ZVNwYWNlLmxvZ2ljYWxUb1BoeXNpY2FsLHUpKTp1fSksbT1pLmxheWVycy5yb290cy5tYXAoZT0+ZSksaD0tMTtmb3IobGV0IGU9MDtlPG0ubGVuZ3RoO2UrPTEpbVtlXS5sYXllcj09PWBib2R5YCYmKGg9ZSk7aCs9MSxtLnNwbGljZShoLDAsLi4uYS5tYXAoZT0+KHtsYXllcjpgbm90ZXNgLG5vZGU6ZSxjb29yZGluYXRlU3BhY2U6YHNlY3Rpb24tbG9naWNhbGB9KSkpO2xldCBnPW5ldyBTZXQoaS5sYXllcnMuYm9keS5tYXAoZT0+ZS5pZCkpLF89LTE7Zm9yKGxldCBlPTA7ZTxpLnJlYWRpbmdPcmRlci5sZW5ndGg7ZSs9MSlnLmhhcyhpLnJlYWRpbmdPcmRlcltlXSkmJihfPWUpO18rPTE7bGV0IHY9Wy4uLmkucmVhZGluZ09yZGVyXTt2LnNwbGljZShfLDAsLi4uYS5tYXAoZT0+ZS5pZCkpO2xldCB5PVsuLi5lLnBhZ2VzXTtyZXR1cm4geVtyXT1PYmplY3QuZnJlZXplKHsuLi5pLGZsb3dEb21haW5zOk9iamVjdC5mcmVlemUoWy4uLmkuZmxvd0RvbWFpbnMscF0pLGxheWVyczpLXyhtKSxyZWFkaW5nT3JkZXI6T2JqZWN0LmZyZWV6ZSh2KX0pLE9iamVjdC5mcmVlemUoey4uLmUscGFnZXM6T2JqZWN0LmZyZWV6ZSh5KX0pfWNhdGNoKHQpe2lmKCEodCBpbnN0YW5jZW9mIEdFKXx8dC5raW5kIT09YGVuZG5vdGVgfHx0LnBhZ2VJbmRleCE9PWkucGFnZUluZGV4fHx0LmNvbnRhaW5lcklkIT09Zil0aHJvdyB0O3JldHVybiBPYmplY3QuZnJlZXplKHsuLi5lLGRpYWdub3N0aWNzOk9iamVjdC5mcmVlemUoWy4uLmUuZGlhZ25vc3RpY3MsT2JqZWN0LmZyZWV6ZSh7Y29kZTpgVU5TVVBQT1JURURfRkVBVFVSRWAsc2V2ZXJpdHk6YGVycm9yYCxzb3VyY2U6T2JqZWN0LmZyZWV6ZSh7c3Rvcnk6YGVuZG5vdGVgLHN0b3J5SW5zdGFuY2U6blswXSxwYXRoOk9iamVjdC5mcmVlemUoW10pfSksbWVzc2FnZTpgRG9jdW1lbnQtZW5kIG5vdGVzIGRvIG5vdCBmaXQgdGhlIHJldGFpbmVkIHRlcm1pbmFsIGZsb3cgcmVnaW9uOiAke3QgaW5zdGFuY2VvZiBFcnJvcj90Lm1lc3NhZ2U6U3RyaW5nKHQpfWB9KV0pfSl9fWZ1bmN0aW9uIExNKGUsdCxuLHIpe3JldHVybiBPYmplY3QuZnJlZXplKHsuLi5lLGRpYWdub3N0aWNzOk9iamVjdC5mcmVlemUoWy4uLmUuZGlhZ25vc3RpY3MsT2JqZWN0LmZyZWV6ZSh7Y29kZTpgVU5TVVBQT1JURURfRkVBVFVSRWAsc2V2ZXJpdHk6YGVycm9yYCxtZXNzYWdlOmBVbnN1cHBvcnRlZCAke3R9IHBvc2l0aW9uICR7SlNPTi5zdHJpbmdpZnkobil9OyByZXRhaW5lZCBsYXlvdXQgdXNlcyB0aGUgJHtyfSBmYWxsYmFja2B9KV0pfSl9ZnVuY3Rpb24gUk0oZSl7bGV0IHQ9bmV3IE1hcDtmb3IobGV0IG4gb2YgZS5wYWdlcylmb3IobGV0IGUgb2Ygbi5sYXllcnMuYm9keSlpZihlLmtpbmQ9PT1gcGFyYWdyYXBoYClmb3IobGV0IHIgb2YgZS5kcmF3aW5ncyl7bGV0IGk9ci5hbmNob3JMYXllcjtpZighaXx8aS5ob3Jpem9udGFsT3duZXJzaGlwIT09YHBhZ2VgfHxpLnZlcnRpY2FsT3duZXJzaGlwIT09YHBhZ2VgKWNvbnRpbnVlO2xldCBhPWkuYWNxdWlzaXRpb25PY2N1cnJlbmNlSWQ/P2kub2NjdXJyZW5jZUlkO3Quc2V0KGEsT2JqZWN0LmZyZWV6ZSh7b2NjdXJyZW5jZUlkOmEscGFyYWdyYXBoU291cmNlOmUuc291cmNlLHBhZ2VJbmRleDpuLnBhZ2VJbmRleCxmbG93RG9tYWluSWQ6ZS5mbG93RG9tYWluSWR9KSl9cmV0dXJuIHR9ZnVuY3Rpb24gek0oZSl7cmV0dXJuIEpTT04uc3RyaW5naWZ5KFsuLi5lXS5zb3J0KChbZV0sW3RdKT0+ZS5sb2NhbGVDb21wYXJlKHQpKSl9ZnVuY3Rpb24gQk0oZSx0LG4scixpKXtpZighZS5zZXF1ZW5jZS5zb21lKGU9PmUua2luZD09PWBib2R5LWJsb2NrYCYmZS5ibG9jay5raW5kPT09YHBhcmFncmFwaGAmJihlLmJsb2NrLnBhZ2VPd25lZEFuY2hvck9jY3VycmVuY2VJZHM/Lmxlbmd0aD8/MCk+MCkpcmV0dXJuIE5NKGUsdCxuLHIsbnVsbCxpKTt0cnl7cmV0dXJuIGpiKHtzdGVwOmE9PntsZXQgbz1OTShlLHQsbixyLGE/LnBsYW4/P251bGwsaSk7cmV0dXJuIE9iamVjdC5mcmVlemUoe3Bhc3M6byxwbGFuOlJNKG8ubGF5b3V0KX0pfSxzdGF0ZU9mOmU9PnpNKGUucGxhbiksbGltaXQ6MTZ9KS52YWx1ZS5wYXNzfWNhdGNoKGUpe3Rocm93IGUgaW5zdGFuY2VvZiBBYj9uZXcgWihgTk9OX0NPTlZFUkdFTkNFYCxlLnJlYXNvbj09PWBjeWNsZWA/YFBhZ2UtYW5jaG9yIGRlc3RpbmF0aW9uIGFjcXVpc2l0aW9uIHJlcGVhdGVkIGFuIGV4YWN0LXN0YXRlIGN5Y2xlYDpgUGFnZS1hbmNob3IgZGVzdGluYXRpb24gYWNxdWlzaXRpb24gcmVhY2hlZCB0aGUgb3BlcmF0aW9uYWwgcGFzcyBsaW1pdCAxNmApOmV9fWZ1bmN0aW9uIFZNKGUpe2xldCB0PVtdLG49ZS5pbml0aWFsU2VjdGlvbjtmb3IobGV0IHIgb2YgZS5zZXF1ZW5jZSlyLmtpbmQ9PT1gYmVnaW4tc2VjdGlvbmAmJihyLnNlY3Rpb24uc3RhcnRUeXBlPT09YGNvbnRpbnVvdXNgJiZ0LnB1c2goT2JqZWN0LmZyZWV6ZSh7b3V0Z29pbmdTZWN0aW9uT2NjdXJyZW5jZUlkOm4uc2VjdGlvbk9jY3VycmVuY2VJZCxpbmNvbWluZ1NlY3Rpb25PY2N1cnJlbmNlSWQ6ci5zZWN0aW9uLnNlY3Rpb25PY2N1cnJlbmNlSWR9KSksbj1yLnNlY3Rpb24pO3JldHVybiBPYmplY3QuZnJlZXplKHQpfWZ1bmN0aW9uIEhNKGUsdCxuKXtmb3IobGV0IHIgb2YgZS5wYWdlcylmb3IobGV0IGU9MDtlKzE8ci5zZWN0aW9uUmVnaW9ucy5sZW5ndGg7ZSs9MSl7bGV0IGk9ci5zZWN0aW9uUmVnaW9uc1tlXSxhPXIuc2VjdGlvblJlZ2lvbnNbZSsxXTtpZihpLnNlY3Rpb25PY2N1cnJlbmNlSWQ9PT10JiZhLnNlY3Rpb25PY2N1cnJlbmNlSWQ9PT1uKXJldHVybiBPYmplY3QuZnJlZXplKHtwYWdlOnIsb3V0Z29pbmc6aX0pfXJldHVybiBudWxsfWZ1bmN0aW9uIFVNKGUsdCxuLHIpe2xldCBpPW5ldyBNYXAsYT1CTShlLHQsbixyLGkpO2lmKGEudGVybWluYWxEaWFnbm9zdGljIT09bnVsbClyZXR1cm4gYTtmb3IobGV0IG8gb2YgVk0oZSkpe2xldCBzPUhNKGEubGF5b3V0LG8ub3V0Z29pbmdTZWN0aW9uT2NjdXJyZW5jZUlkLG8uaW5jb21pbmdTZWN0aW9uT2NjdXJyZW5jZUlkKTtpZihzPT09bnVsbHx8cy5vdXRnb2luZy5mbG93RG9tYWluSWRzLmxlbmd0aDwyKWNvbnRpbnVlO2xldCBjPXMucGFnZS5wYWdlSW5kZXgsbD1XaihlLGEuYWxsb2NhdGlvbnMsYS5mb290bm90ZVJlc2VydmVCeVBhZ2Uscy5wYWdlLHMub3V0Z29pbmcpLHU9bmV3IE1hcChpKTtpZih1LnNldChvLm91dGdvaW5nU2VjdGlvbk9jY3VycmVuY2VJZCxPYmplY3QuZnJlZXplKHtwYWdlSW5kZXg6Yyx0YXJnZXRQdDpsfSkpLGk9dSxhPUJNKGUsdCxuLHIsaSksYS50ZXJtaW5hbERpYWdub3N0aWMhPT1udWxsKXJldHVybiBhfXJldHVybiBhfWZ1bmN0aW9uIFdNKGUsdCxuKXt0PXdfKHQpO2xldCByPW1NKGUpLGk9VU0oZSx0LG4sW10pLGE9UWooe3NlZWQ6aSxtZWFzdXJlOmU9PlBNKGUscikscmVwYWdpbmF0ZToocixpKT0+e2xldCBhPVRrKGkubGF5b3V0KTtyZXR1cm4gVU0oZSxFXyh0LHt0b3RhbFBhZ2VzOmkubGF5b3V0LnBhZ2VzLmxlbmd0aCxyZXNvbHZlRGVzdGluYXRpb25QYWdlOmU9PmFbZV19KSxuLHIpfSxpZGVudGl0eTplPT5UayhlLmxheW91dCkscmVxdWlyZXNDb252ZXJnZW5jZTppLnNlc3Npb24uaGFzUGFnaW5hdGlvbkZpZWxkc30pLnJlc3VsdCxvPUtqKGEubGF5b3V0LGEuc2Vzc2lvbixhLmFsbG9jYXRpb25zKSxzPWUubm90ZUxheW91dFNldHRpbmdzPz9PYmplY3QuZnJlZXplKHtmb290bm90ZVBvc2l0aW9uOmBwYWdlQm90dG9tYCxlbmRub3RlUG9zaXRpb246YGRvY0VuZGB9KSxjPUZNKG8sYS5zZXNzaW9uLHIsYS5mb290bm90ZUxheW91dHNCeVBhZ2UpLGw9Yy5wYWdlcy5zb21lKGU9PmUubGF5ZXJzLm5vdGVzLnNvbWUoZT0+ZS5zb3VyY2Uuc3Rvcnk9PT1gZm9vdG5vdGVgKSkmJnMuZm9vdG5vdGVQb3NpdGlvbiE9PWBwYWdlQm90dG9tYD9MTShjLGBmb290bm90ZWAscy5mb290bm90ZVBvc2l0aW9uLGBwYWdlQm90dG9tYCk6Yyx1PW5ldyBTZXQoby5wYWdlcy5mbGF0TWFwKGU9PmUubGF5ZXJzLmJvZHkuZmxhdE1hcChlPT5lLmtpbmQ9PT1gcGFyYWdyYXBoYHx8ZS5raW5kPT09YHRhYmxlYD96aihlKTpbXSkpKSxkPShlLmVuZG5vdGVJZHM/P1tdKS5maWx0ZXIoZT0+dS5oYXMoZSkpLGY9SU0obCxhLnNlc3Npb24sZCkscD1kLmxlbmd0aD4wJiZzLmVuZG5vdGVQb3NpdGlvbiE9PWBkb2NFbmRgP0xNKGYsYGVuZG5vdGVgLHMuZW5kbm90ZVBvc2l0aW9uLGBkb2NFbmRgKTpmLG09Wy4uLmUucGFyc2VyRGlhZ25vc3RpY3M/P1tdLC4uLmEudGVybWluYWxEaWFnbm9zdGljPT09bnVsbD9bXTpbYS50ZXJtaW5hbERpYWdub3N0aWNdXSxoPW0ubGVuZ3RoPT09MD9wOk9iamVjdC5mcmVlemUoey4uLnAsZGlhZ25vc3RpY3M6T2JqZWN0LmZyZWV6ZShbLi4ubSwuLi5wLmRpYWdub3N0aWNzXSl9KTtyZXR1cm4gaVQoT2JqZWN0LmZyZWV6ZSh7Li4uaCxwYWdlczpPYmplY3QuZnJlZXplKGgucGFnZXMubWFwKGd3KSl9KSl9ZnVuY3Rpb24gR00oZSx0LG49JF8odm9pZCAwLERhdGUubm93KCkpKXtyZXR1cm4gV00oZSx0LG4pfWZ1bmN0aW9uIEtNKGUsdCxuKXtpZih2XyhlKSlyZXR1cm47bGV0IHI9bigpO3NUKHtzb3VyY2U6cixzZXJ2aWNlczplLGRlZmF1bHRDdXJyZW50RGF0ZU1zOnQsYnVpbGRMYXlvdXQ6dD0+R00oci5ib2R5TGF5b3V0SW5wdXQsZSx0KX0pfWFzeW5jIGZ1bmN0aW9uIHFNKGUsdCl7aWYoZS5sZW5ndGg9PT0wKXJldHVybntyZWNvcmRzOltdLGRyYXdhYmxlczpuZXcgTWFwfTthd2FpdCB0LmxvYWRNYXRoSmF4KCk7bGV0IG49W10scj1uZXcgTWFwLGk9bmV3IFNldDtmb3IobGV0IGEgb2YgZSl7aWYoaS5oYXMoYS5yZXNvdXJjZUtleSkpdGhyb3cgRXJyb3IoYER1cGxpY2F0ZSBtYXRoIG9jY3VycmVuY2U6ICR7YS5yZXNvdXJjZUtleX1gKTtpLmFkZChhLnJlc291cmNlS2V5KTt0cnl7bGV0IGU9YXdhaXQgdC5tYXRoTUxUb1N2ZyhGbChhLm5vZGVzLGEuZGlzcGxheSkpLGk9YXdhaXQgWGwoZSxgIzAwMDAwMGApO24ucHVzaCh7cmVzb3VyY2VLZXk6YS5yZXNvdXJjZUtleSx3aWR0aEVtOmUud2lkdGhFbSxhc2NlbnRFbTplLmFzY2VudEVtLGRlc2NlbnRFbTplLmRlc2NlbnRFbSxkaWFnbm9zdGljczpbXX0pLHIuc2V0KGEucmVzb3VyY2VLZXksaS5zb3VyY2UpfWNhdGNoe24ucHVzaCh7cmVzb3VyY2VLZXk6YS5yZXNvdXJjZUtleSx3aWR0aEVtOjAsYXNjZW50RW06MCxkZXNjZW50RW06MCxhdmFpbGFibGU6ITEsZGlhZ25vc3RpY3M6W3tjb2RlOmBVTlNVUFBPUlRFRF9GRUFUVVJFYCxzZXZlcml0eTpgd2FybmluZ2AsbWVzc2FnZTpgTWF0aCBjb252ZXJzaW9uIGZhaWxlZDsgdXNpbmcgdGhlIGRldGVybWluaXN0aWMgdGV4dCBmYWxsYmFja2B9XX0pfX1yZXR1cm57cmVjb3JkczpuLGRyYXdhYmxlczpyfX1mdW5jdGlvbiBKTShlLHQpe3N3aXRjaChlKXtjYXNlYG1hcmdpbmA6cmV0dXJue2xlZnQ6dC5tYXJnaW5MZWZ0LHJpZ2h0OnQucGFnZVdpZHRoLXQubWFyZ2luUmlnaHR9O2Nhc2VgcGFnZWA6cmV0dXJue2xlZnQ6MCxyaWdodDp0LnBhZ2VXaWR0aH07ZGVmYXVsdDpyZXR1cm57bGVmdDp0LmNvbnRlbnRYLHJpZ2h0OnQuY29udGVudFgrdC5jb250ZW50V319fWZ1bmN0aW9uIFlNKGUsdCxuLHIpe3N3aXRjaChlKXtjYXNlYG1hcmdpbmA6cmV0dXJue3N0YXJ0OnIubWFyZ2luVG9wLGVuZDpyLnBhZ2VILXIubWFyZ2luQm90dG9tfTtjYXNlYHBhZ2VgOnJldHVybntzdGFydDowLGVuZDpyLnBhZ2VIfTtkZWZhdWx0OnJldHVybntzdGFydDp0LGVuZDp0K259fX1mdW5jdGlvbiBYTShlLHQsbixyKXtzd2l0Y2goZSl7Y2FzZWBjZW50ZXJgOnJldHVybiB0KyhuLXQtcikvMjtjYXNlYHJpZ2h0YDpjYXNlYG91dHNpZGVgOnJldHVybiBuLXI7ZGVmYXVsdDpyZXR1cm4gdH19ZnVuY3Rpb24gWk0oZSx0LG4pe3N3aXRjaChlKXtjYXNlYGNlbnRlcmA6cmV0dXJuIHQuc3RhcnQrKHQuZW5kLXQuc3RhcnQtbikvMjtjYXNlYGJvdHRvbWA6Y2FzZWBvdXRzaWRlYDpyZXR1cm4gdC5lbmQtbjtkZWZhdWx0OnJldHVybiB0LnN0YXJ0fX1mdW5jdGlvbiBRTShlLHQsbil7cmV0dXJuIGUrdDw9bi5lbmQ/ZTpNYXRoLm1heChuLnN0YXJ0LG4uZW5kLXQpfWZ1bmN0aW9uICRNKGUsdCxuLHIsaSxhKXtsZXQgbz1lLmRyb3BDYXA9PT1gZHJvcGB8fGUuZHJvcENhcD09PWBtYXJnaW5gLHM9Sk0oZS5oQW5jaG9yLHQpLGM9WU0oZS52QW5jaG9yLG4saSx0KSxsPWUudz09bnVsbD9yOmUudyx1O2lmKG8pdT1NYXRoLm1heCgxLGUubGluZXMpKmE7ZWxzZXtsZXQgdD1lLmg/PzA7dT1lLmhSdWxlPT09YGV4YWN0YD90OmUuaFJ1bGU9PT1gYXRMZWFzdGA/TWF0aC5tYXgodCxpKTppfWxldCBkO2Q9ZS5kcm9wQ2FwPT09YGRyb3BgP3MubGVmdDplLmRyb3BDYXA9PT1gbWFyZ2luYD9zLmxlZnQtbDplLnhBbGlnbj9YTShlLnhBbGlnbixzLmxlZnQscy5yaWdodCxsKTpzLmxlZnQrKGUueD8/MCk7bGV0IGY7Zj1vP2Muc3RhcnQ6ZS55QWxpZ24mJmUudkFuY2hvciE9PWB0ZXh0YD9aTShlLnlBbGlnbixjLHUpOmMuc3RhcnQrKGUueT8/MCksKGUudkFuY2hvcj09PWBwYWdlYHx8ZS52QW5jaG9yPT09YG1hcmdpbmApJiYoZj1RTShmLHUsYykpO2xldCBwPWUud3JhcD09PWBhcm91bmRgfHxlLndyYXA9PT1gYXV0b2A/ZS5oU3BhY2U6MCxtPWUudlNwYWNlO3JldHVybnt4OmQseTpmLHc6bCxoOnUsZXhMZWZ0OmQtcCxleFJpZ2h0OmQrbCtwLGV4VG9wOmYtbSxleEJvdHRvbTpmK3UrbX19ZnVuY3Rpb24gZU4oZSx0KXtpZih0LmtpbmQ9PT1gdGFibGVgJiZ0LnRhYmxlT3ZlcmxhcD09PXZvaWQgMCl0aHJvdyBFcnJvcihgRmxvYXRpbmctdGFibGUgdHJhbnNwb3J0IG9taXR0ZWQgdGJsT3ZlcmxhcGApO2xldCBuPXQueCxyPXQueTtpZih0LmF2b2lkT3ZlcmxhcCl7bGV0IGk9e29jY3VycmVuY2VJZDpgZGlzcGxheS1tb3ZpbmctZmxvYXRgLHBhcmFncmFwaElkOnQucGFyYUlkLGJvdW5kczp7eFB0Om4seVB0OnIsd2lkdGhQdDp0LncsaGVpZ2h0UHQ6dC5ofSxleGNsdXNpb25Cb3VuZHM6e3hQdDpuLXQuZGwseVB0OnItdC5kdCx3aWR0aFB0OnQudyt0LmRsK3QuZHIsaGVpZ2h0UHQ6dC5oK3QuZHQrdC5kYn19LGE9V3koe21vdmluZzp0LmtpbmQ9PT1gdGFibGVgP3suLi5pLGtpbmQ6YHRhYmxlYCx0YWJsZU92ZXJsYXA6dC50YWJsZU92ZXJsYXB9OnsuLi5pLGtpbmQ6dC5raW5kPT09YGZyYW1lYD9gZnJhbWVgOmBkcmF3aW5nbWxgfSxibG9ja2VyczplLmZsb2F0cy5tYXAoUnkpLGF2b2lkYW5jZTp0LmtpbmQ9PT1gdGFibGVgP0Z5KHQudGFibGVPdmVybGFwLHQucGFyYUlkKTpJeSh0LmFsbG93T3ZlcmxhcD8/ITAsdC5wYXJhSWQpLHJpZ2h0Qm91bmRhcnlQdDplLnBhZ2VXaWR0aCxvdmVybGFwRXBzaWxvblB0Ok55LHJpZ2h0Qm91bmRhcnlTbGFja1B0OlB5fSk7bj1hLmJvdW5kcy54UHQscj1hLmJvdW5kcy55UHR9bGV0IGk9e21vZGU6dC5tb2RlLGltYWdlS2V5OnQuaW1hZ2VLZXksaW1hZ2VYOm4saW1hZ2VZOnIsaW1hZ2VXOnQudyxpbWFnZUg6dC5oLHhMZWZ0Om4tdC5kbCx4UmlnaHQ6bit0LncrdC5kcix5VG9wOnItdC5kdCx5Qm90dG9tOnIrdC5oK3QuZGIsc2lkZTp0LnNpZGUsZGlzdExlZnQ6dC5kbCxkaXN0UmlnaHQ6dC5kcixkaXN0VG9wOnQuZHQsZGlzdEJvdHRvbTp0LmRiLHBhcmFJZDp0LnBhcmFJZH0sYT10LmtpbmQ9PT1gdGFibGVgP3suLi5pLGtpbmQ6YHRhYmxlYCx0YWJsZU92ZXJsYXA6dC50YWJsZU92ZXJsYXB9OnsuLi5pLGtpbmQ6dC5raW5kfTtyZXR1cm4gZS5mbG9hdHMucHVzaChhKSxhfWZ1bmN0aW9uIHROKGUpe3JldHVybiBlLnhQdCtlLndpZHRoUHR9ZnVuY3Rpb24gbk4oZSl7cmV0dXJuIGUueVB0K2UuaGVpZ2h0UHR9ZnVuY3Rpb24gck4oZSx0LG4scil7cmV0dXJuIGU9PT1gY2VudGVyYD90KyhuLXQtcikvMjplPT09YHJpZ2h0YHx8ZT09PWBvdXRzaWRlYD9uLXI6dH1mdW5jdGlvbiBpTihlLHQsbixyKXtyZXR1cm4gZT09PWBjZW50ZXJgP3QrKG4tdC1yKS8yOmU9PT1gYm90dG9tYHx8ZT09PWBvdXRzaWRlYD9uLXI6dH1mdW5jdGlvbiBhTihlLHQsbixyLGk9ITEpe2xldCBhPWUuaG9yelNwZWNpZmllZD9lLmhvcnpBbmNob3I9PT1gcGFnZWA/dC5wYWdlOmUuaG9yekFuY2hvcj09PWBtYXJnaW5gP3QubWFyZ2luOnQudGV4dDp0LnRleHQsbz1lLnZlcnRBbmNob3I9PT1gcGFnZWA/dC5wYWdlOmUudmVydEFuY2hvcj09PWBtYXJnaW5gP3QubWFyZ2luOnQudGV4dCxzPWUueEFsaWduP3JOKGUueEFsaWduLGEueFB0LHROKGEpLG4pOmEueFB0K2UueFB0LGM9ZS55QWxpZ24mJmUudmVydEFuY2hvciE9PWB0ZXh0YD9pTihlLnlBbGlnbixvLnlQdCxuTihvKSxyKTpvLnlQdCtlLnlQdDtyZXR1cm4haSYmKGUudmVydEFuY2hvcj09PWBwYWdlYHx8ZS52ZXJ0QW5jaG9yPT09YG1hcmdpbmApJiZjK3I+bk4obykmJihjPU1hdGgubWF4KG8ueVB0LG5OKG8pLXIpKSxPYmplY3QuZnJlZXplKHt4OnMseTpjLHc6bixoOnJ9KX1mdW5jdGlvbiBvTihlLHQsbixyKXtyZXR1cm4gYU4oZSx0LG4scil9ZnVuY3Rpb24gc04oZSx0LG4pe2xldCByPWUuY2hpbGQuY29sdW1uV2lkdGhzUHQucmVkdWNlKChlLHQpPT5lK3QsMCksaT1lLmNoaWxkLmFkdmFuY2VQdCxhPWUucG9zaXRpb25pbmcsbz1PYmplY3QuZnJlZXplKHt4UHQ6dCx5UHQ6bix3aWR0aFB0OnIsaGVpZ2h0UHQ6aX0pLHM9T2JqZWN0LmZyZWV6ZSh7eFB0OnQtYS5sZWZ0RnJvbVRleHRQdCx5UHQ6bi1hLnRvcEZyb21UZXh0UHQsd2lkdGhQdDpyK2EubGVmdEZyb21UZXh0UHQrYS5yaWdodEZyb21UZXh0UHQsaGVpZ2h0UHQ6aSthLnRvcEZyb21UZXh0UHQrYS5ib3R0b21Gcm9tVGV4dFB0fSk7cmV0dXJuIE9iamVjdC5mcmVlemUoe2tpbmQ6YHJlc29sdmVkLWZsb2F0aW5nLXRhYmxlLXBsYWNlbWVudGAsb2NjdXJyZW5jZUlkOmUub2NjdXJyZW5jZUlkLHhQdDp0LHlQdDpuLGJvdW5kczpvLGV4Y2x1c2lvbkJvdW5kczpzLG92ZXJsYXA6ZS5vdmVybGFwLGNoaWxkOmUuY2hpbGQsc291cmNlOmV9KX1mdW5jdGlvbiBjTihlLHQpe2xldCBuPWUuY2hpbGQuY29sdW1uV2lkdGhzUHQucmVkdWNlKChlLHQpPT5lK3QsMCkscj1lLmNoaWxkLmFkdmFuY2VQdCxpPW9OKGUucG9zaXRpb25pbmcsdCxuLHIpLGE9JEUoZS5wb3NpdGlvbmluZyk7cmV0dXJuIHNOKGUsYS54JiZlLmFjcXVpcmVkVGV4dE9mZnNldFB0P3QudGV4dC54UHQrZS5hY3F1aXJlZFRleHRPZmZzZXRQdC54UHQ6aS54LGEueSYmZS5hY3F1aXJlZFRleHRPZmZzZXRQdD90LnRleHQueVB0K2UuYWNxdWlyZWRUZXh0T2Zmc2V0UHQueVB0OmkueSl9ZnVuY3Rpb24gbE4oZSx0LG4pe3JldHVybiBPYmplY3QuZnJlZXplKHtjb29yZGluYXRlU3BhY2U6ZS5jb29yZGluYXRlU3BhY2UsZmxvd0RvbWFpbklkOmUuZmxvd0RvbWFpbklkLGJhc2VFbnRyaWVzOmUuZW50cmllcyxiYXNlTmV4dFBhcmFncmFwaElkOmUubmV4dFBhcmFncmFwaElkLG5leHRQYXJhZ3JhcGhJZDpuLGVudHJpZXM6T2JqZWN0LmZyZWV6ZShbLi4udF0pfSl9ZnVuY3Rpb24gdU4oZSx0KXtpZih0LmNvb3JkaW5hdGVTcGFjZSE9PWUuY29vcmRpbmF0ZVNwYWNlfHx0LmZsb3dEb21haW5JZCE9PWUuZmxvd0RvbWFpbklkfHx0LmVudHJpZXMhPT1lLmJhc2VFbnRyaWVzfHx0Lm5leHRQYXJhZ3JhcGhJZCE9PWUuYmFzZU5leHRQYXJhZ3JhcGhJZCl0aHJvdyBFcnJvcihgRmxvYXRpbmcgdGFibGUgcmVnaXN0cnkgZGVsdGEgYmFzZS9kb21haW4gbWlzbWF0Y2hgKTtsZXQgbj1uZXcgU2V0KHQuZW50cmllcy5tYXAoZT0+ZS5vY2N1cnJlbmNlSWQpKTtpZihlLmVudHJpZXMuc29tZShlPT5uLmhhcyhlLm9jY3VycmVuY2VJZCkpKXRocm93IEVycm9yKGBGbG9hdGluZyB0YWJsZSByZWdpc3RyeSBkZWx0YSB3YXMgYWxyZWFkeSBjb21taXR0ZWRgKTtpZihlLm5leHRQYXJhZ3JhcGhJZCE9PWUuYmFzZU5leHRQYXJhZ3JhcGhJZCtlLmVudHJpZXMubGVuZ3RoKXRocm93IEVycm9yKGBGbG9hdGluZyB0YWJsZSByZWdpc3RyeSBkZWx0YSBzZXF1ZW5jZSBtaXNtYXRjaGApfWZ1bmN0aW9uIGROKGUsdCxuPWBsb2dpY2FsLXBhZ2UtcG9pbnRzYCxyPWBsb2dpY2FsLXBhZ2VgKXtsZXQgaT1uZXcgU2V0O2ZvcihsZXQgdCBvZiBlKXtpZihpLmhhcyh0Lm9jY3VycmVuY2VJZCkpdGhyb3cgRXJyb3IoYER1cGxpY2F0ZSBmbG9hdCByZWdpc3RyeSBvY2N1cnJlbmNlOiAke3Qub2NjdXJyZW5jZUlkfWApO2kuYWRkKHQub2NjdXJyZW5jZUlkKX1yZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Y29vcmRpbmF0ZVNwYWNlOm4sZmxvd0RvbWFpbklkOnIsYmFzZTpPYmplY3QuZnJlZXplKFsuLi5lXSksZGVsdGE6T2JqZWN0LmZyZWV6ZShbXSksbmV4dFBhcmFncmFwaElkOnR9KX1mdW5jdGlvbiBmTihlLHQsbil7bGV0IHI9Wy4uLm4uYmFzZSwuLi5uLmRlbHRhXSxpPXIuZmluZCh0PT50Lm9jY3VycmVuY2VJZD09PWUub2NjdXJyZW5jZUlkKTtpZihpKXJldHVybiBPYmplY3QuZnJlZXplKHtwbGFjZW1lbnQ6T2JqZWN0LmZyZWV6ZSh7Li4uc04oZSxpLmJvdW5kcy54UHQsaS5ib3VuZHMueVB0KSxib3VuZHM6aS5ib3VuZHMsZXhjbHVzaW9uQm91bmRzOmkuZXhjbHVzaW9uQm91bmRzfSksdHJhbnNhY3Rpb246bn0pO2xldCBhPWNOKGUsdCksbz1XeSh7bW92aW5nOntvY2N1cnJlbmNlSWQ6ZS5vY2N1cnJlbmNlSWQsa2luZDpgdGFibGVgLHRhYmxlT3ZlcmxhcDplLm92ZXJsYXAscGFyYWdyYXBoSWQ6bi5uZXh0UGFyYWdyYXBoSWQsYm91bmRzOmEuYm91bmRzLGV4Y2x1c2lvbkJvdW5kczphLmV4Y2x1c2lvbkJvdW5kc30sYmxvY2tlcnM6ci5maWx0ZXIoZT0+ZS5raW5kIT09YHNoYXBlYHx8ZS53cmFwIT09dm9pZCAwKS5tYXAoTHkpLGF2b2lkYW5jZTpGeShlLm92ZXJsYXAsbi5uZXh0UGFyYWdyYXBoSWQpLHJpZ2h0Qm91bmRhcnlQdDp0Tih0LnBhZ2UpLG92ZXJsYXBFcHNpbG9uUHQ6TnkscmlnaHRCb3VuZGFyeVNsYWNrUHQ6UHl9KSxzPXNOKGUsby5ib3VuZHMueFB0LG8uYm91bmRzLnlQdCksYz1PYmplY3QuZnJlZXplKHtraW5kOmB0YWJsZWAsb2NjdXJyZW5jZUlkOmUub2NjdXJyZW5jZUlkLG92ZXJsYXA6ZS5vdmVybGFwLHBhcmFncmFwaElkOm4ubmV4dFBhcmFncmFwaElkLGJvdW5kczpzLmJvdW5kcyxleGNsdXNpb25Cb3VuZHM6cy5leGNsdXNpb25Cb3VuZHN9KTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7cGxhY2VtZW50OnMsdHJhbnNhY3Rpb246T2JqZWN0LmZyZWV6ZSh7Y29vcmRpbmF0ZVNwYWNlOm4uY29vcmRpbmF0ZVNwYWNlLGZsb3dEb21haW5JZDpuLmZsb3dEb21haW5JZCxiYXNlOm4uYmFzZSxkZWx0YTpPYmplY3QuZnJlZXplKFsuLi5uLmRlbHRhLGNdKSxuZXh0UGFyYWdyYXBoSWQ6bi5uZXh0UGFyYWdyYXBoSWQrMX0pfSl9ZnVuY3Rpb24gcE4oZSx0LG4pe2xldCByPW4ucGFnZVdpZHRoLGk9bi5tYXJnaW5MZWZ0LGE9bi5tYXJnaW5SaWdodDtzd2l0Y2goZT8/KHQ/YG1hcmdpbmA6YHBhZ2VgKSl7Y2FzZWBwYWdlYDpyZXR1cm57c3RhcnQ6MCxlbmQ6cn07Y2FzZWBsZWZ0TWFyZ2luYDpyZXR1cm57c3RhcnQ6MCxlbmQ6aX07Y2FzZWByaWdodE1hcmdpbmA6cmV0dXJue3N0YXJ0OnItYSxlbmQ6cn07Y2FzZWBpbnNpZGVNYXJnaW5gOnJldHVybntzdGFydDowLGVuZDppfTtjYXNlYG91dHNpZGVNYXJnaW5gOnJldHVybntzdGFydDpyLWEsZW5kOnJ9O2Nhc2VgY2hhcmFjdGVyYDpjYXNlYGNvbHVtbmA6cmV0dXJue3N0YXJ0Om4uY29udGVudFgsZW5kOm4uY29udGVudFgrbi5jb250ZW50V307ZGVmYXVsdDpyZXR1cm57c3RhcnQ6aSxlbmQ6ci1hfX19ZnVuY3Rpb24gbU4oZSx0LG4scil7bGV0IGk9ci5tYXJnaW5Ub3AsYT1yLm1hcmdpbkJvdHRvbTtzd2l0Y2goZT8/KHQ/YHBhcmFncmFwaGA6YHBhZ2VgKSl7Y2FzZWBwYWdlYDpyZXR1cm57c3RhcnQ6MCxlbmQ6ci5wYWdlSH07Y2FzZWB0b3BNYXJnaW5gOnJldHVybntzdGFydDowLGVuZDppfTtjYXNlYGJvdHRvbU1hcmdpbmA6cmV0dXJue3N0YXJ0OnIucGFnZUgtYSxlbmQ6ci5wYWdlSH07Y2FzZWBwYXJhZ3JhcGhgOmNhc2VgbGluZWA6cmV0dXJue3N0YXJ0Om4sZW5kOnIucGFnZUh9O2RlZmF1bHQ6cmV0dXJue3N0YXJ0OmksZW5kOnIucGFnZUgtYX19fWZ1bmN0aW9uIGhOKGUsdCxuLHIsaSxhLG8scyl7bGV0IGM9cE4oYSx0LGkpO2lmKG8hPW51bGwpcmV0dXJuIGMuc3RhcnQrKGMuZW5kLWMuc3RhcnQpKm8rbjtpZighZSlyZXR1cm4gYy5zdGFydCtuO2xldCBsPWMuZW5kLWMuc3RhcnQsdT1zPz9yLGQ9cz09bnVsbD8wOm47c3dpdGNoKGUpe2Nhc2VgY2VudGVyYDpyZXR1cm4gYy5zdGFydCsobC11KS8yK2Q7Y2FzZWByaWdodGA6Y2FzZWBvdXRzaWRlYDpyZXR1cm4gYy5lbmQtdStkO2RlZmF1bHQ6cmV0dXJuIGMuc3RhcnQrZH19ZnVuY3Rpb24gZ04oZSx0LG4scixpLGEsbyxzLGMpe2xldCBsPW1OKG8sdCxpLGEpO2lmKHMhPW51bGwpcmV0dXJuIGwuc3RhcnQrKGwuZW5kLWwuc3RhcnQpKnMrbjtpZighZSlyZXR1cm4gbC5zdGFydCtuO2xldCB1PWwuZW5kLWwuc3RhcnQsZD1jPz9yLGY9Yz09bnVsbD8wOm47c3dpdGNoKGUpe2Nhc2VgY2VudGVyYDpyZXR1cm4gbC5zdGFydCsodS1kKS8yK2Y7Y2FzZWBib3R0b21gOmNhc2Vgb3V0c2lkZWA6cmV0dXJuIGwuZW5kLWQrZjtkZWZhdWx0OnJldHVybiBsLnN0YXJ0K2Z9fWZ1bmN0aW9uIF9OKGUpe3JldHVybiB2TihlLnRleHREaXJlY3Rpb24pfWZ1bmN0aW9uIHZOKGUpe3JldHVybiB0eXBlb2YgZT09YHN0cmluZ2AmJkhDKGUpfWZ1bmN0aW9uIHlOKGUpe3JldHVybiBlPT09YGJ0THJgfWZ1bmN0aW9uIGJOKGUpe3JldHVybnsuLi5lLC4uLkJDKGUpfX1mdW5jdGlvbiB4TihlKXtyZXR1cm57Li4uZSwuLi5WQyhlKX19ZnVuY3Rpb24gU04oZSl7Zm9yKGxldCB0IG9mIGUuYm9keSl7aWYodC50eXBlIT09YHBhcmFncmFwaGApY29udGludWU7bGV0IGU9dDtpZih0eXBlb2YgZS5kZWZhdWx0Rm9udFNpemU9PWBudW1iZXJgKXJldHVybiBlLmRlZmF1bHRGb250U2l6ZTtmb3IobGV0IHQgb2YgZS5ydW5zKWlmKHQudHlwZT09PWB0ZXh0YClyZXR1cm4gdC5mb250U2l6ZX1yZXR1cm4gMTB9ZnVuY3Rpb24gQ04oZSl7cmV0dXJue3BhZ2VJbmRleDplLnBhZ2VJbmRleCx0b3RhbFBhZ2VzOmUudG90YWxQYWdlcyxkaXNwbGF5UGFnZU51bWJlcjplLmRpc3BsYXlQYWdlTnVtYmVyLHBhZ2VOdW1iZXJGb3JtYXQ6ZS5wYWdlTnVtYmVyRm9ybWF0LGN1cnJlbnREYXRlTXM6ZS5jdXJyZW50RGF0ZU1zLG5vdGVOdW1iZXJzOmUubm90ZU51bWJlcnMsbm90ZVJlZmVyZW5jZU51bWJlcjplLm5vdGVSZWZlcmVuY2VOdW1iZXIscGFnZVdyaXRpbmdNb2RlOmN2KGUuc2VjdGlvbkxheW91dC50ZXh0RGlyZWN0aW9uKSx2ZXJ0aWNhbENKSzplLnZlcnRpY2FsQ0pLJiYhZS52ZXJ0aWNhbEFsbFJvdGF0ZWQsdmVydGljYWxQYWdlRnJhbWU6ZS52ZXJ0aWNhbENKSz09PSEwLGRvY3VtZW50SGFzRWFzdEFzaWFuVGV4dDplLmRvY0Vhc3RBc2lhbix1c2VGZUxheW91dDplLmxheW91dFNldHRpbmdzLmNvbXBhdC51c2VGZUxheW91dCxiYWxhbmNlU2luZ2xlQnl0ZURvdWJsZUJ5dGVXaWR0aDplLmxheW91dFNldHRpbmdzLmNvbXBhdC5iYWxhbmNlU2luZ2xlQnl0ZURvdWJsZUJ5dGVXaWR0aCxjaGFyYWN0ZXJTcGFjaW5nQ29udHJvbDplLmxheW91dFNldHRpbmdzLmNoYXJhY3RlclNwYWNpbmdDb250cm9sLHJlc29sdmVkTG9jYWxGb250czplLnJlc29sdmVkTG9jYWxGb250cyxsYXlvdXRTZXJ2aWNlczplLmxheW91dFNlcnZpY2VzLHZlcnRpY2FsR2x5cGhNZWFzdXJlbWVudDplLnZlcnRpY2FsR2x5cGhNZWFzdXJlbWVudH19ZnVuY3Rpb24gd04oZSx0KXtsZXQgbj1CUyh0KTtyZXR1cm57dHlwZTpuP24udHlwZTp0LmxpbmVHcmlkLmFjdGl2ZT9lLnNlY3Rpb25MYXlvdXQuZ3JpZC5raW5kOm51bGwsbGluZVBpdGNoUHQ6dC5saW5lR3JpZC5hY3RpdmU/dC5saW5lR3JpZC5waXRjaFB0Om51bGwsY2hhcmFjdGVyUGl0Y2hQdDpuPy5jaGFyYWN0ZXJQaXRjaFB0Pz9udWxsLGNoYXJTcGFjZVB0Om4/LmNoYXJTcGFjZVB0Pz9udWxsfX1jb25zdCBUTj1PYmplY3QuZnJlZXplKHtzdG9yeTpgYm9keWAsY29udGFpbmVyczpPYmplY3QuZnJlZXplKFtdKSxsaW5lTnVtYmVyaW5nRWxpZ2libGU6ITB9KTtmdW5jdGlvbiBFTihlKXtsZXQgdD1NYXRoLm1heCgwLGUucGFnZUgtZS5tYXJnaW5Ub3AtZS5tYXJnaW5Cb3R0b20pO3JldHVybntwYWdlOnt4UHQ6MCx5UHQ6MCx3aWR0aFB0OmUucGFnZVdpZHRoLGhlaWdodFB0OmUucGFnZUh9LG1hcmdpbjp7eFB0OmUubWFyZ2luTGVmdCx5UHQ6ZS5tYXJnaW5Ub3Asd2lkdGhQdDpNYXRoLm1heCgwLGUucGFnZVdpZHRoLWUubWFyZ2luTGVmdC1lLm1hcmdpblJpZ2h0KSxoZWlnaHRQdDp0fSxjb2x1bW46e3hQdDplLmNvbnRlbnRYLHlQdDplLm1hcmdpblRvcCx3aWR0aFB0OmUuY29udGVudFcsaGVpZ2h0UHQ6dH0scGFnZVBhcml0eTplLnBhZ2VJbmRleCUyPT0wP2BvZGRgOmBldmVuYH19ZnVuY3Rpb24gRE4oZSx0LG4pe3JldHVybiBLUyhuLHtudW1iZXJpbmc6dC5udW1iZXJpbmcsLi4udC5udW1iZXJpbmc/e21hcmtlcklucHV0OmUuYWNxdWlzaXRpb25JbnB1dHMubnVtYmVyaW5nTWFya2VyU2hhcGVJbnB1dCh0Lm51bWJlcmluZyxBeCh0KSl9Ont9LGF1dGhvcmVkRmlyc3RJbmRlbnRQdDp0LmluZGVudEZpcnN0LHRhYlN0b3BzOnQudGFiU3RvcHMsZGVmYXVsdFRhYlB0OmUuZGVmYXVsdFRhYlB0LHNlcnZpY2U6ZS5sYXlvdXRTZXJ2aWNlcz8udGV4dH0pfWZ1bmN0aW9uIE9OKGUsdCl7cmV0dXJuIEROKGUsdCxrQyhlLmxheW91dFNldHRpbmdzLGUuc2VjdGlvbkxheW91dCxUTix0KSl9ZnVuY3Rpb24ga04oZSx0KXtyZXR1cm4gRE4oZSx0LGtDKGUubGF5b3V0U2V0dGluZ3MsZS5zZWN0aW9uTGF5b3V0LGUuc3RvcnlDb250ZXh0Pz9UTix0KSl9ZnVuY3Rpb24gQU4oZSl7cmV0dXJuey4uLmUsc3RvcnlDb250ZXh0OnZDKGUuc3RvcnlDb250ZXh0Pz9UTil9fWZ1bmN0aW9uIGpOKGUsdCl7bGV0IG49ZS5yZXRhaW5lZFRhYmxlc0J5U291cmNlSW5kZXg/LmdldCh0KTtpZighbil0aHJvdyBFcnJvcihgVGFibGUgcGxhY2VtZW50IHJlcXVpcmVzIHJldGFpbmVkIHRhYmxlIGFjcXVpc2l0aW9uYCk7cmV0dXJuIG59ZnVuY3Rpb24gTU4oZSx0KXtsZXQgbj1lPDBuPy1lOmUscj10PDBuPy10OnQ7Zm9yKDtyIT09MG47KVtuLHJdPVtyLG4lcl07cmV0dXJuIG49PT0wbj8xbjpufWZ1bmN0aW9uIE5OKGUsdCl7aWYodD09PTBuKXRocm93IFJhbmdlRXJyb3IoYEV4YWN0IGxlbmd0aCBkZW5vbWluYXRvciBtdXN0IG5vdCBiZSB6ZXJvYCk7bGV0IG49dDwwbj8tMW46MW4scj1NTihlLHQpO3JldHVybiBPYmplY3QuZnJlZXplKHtudW1lcmF0b3I6biplL3IsZGVub21pbmF0b3I6bip0L3J9KX1mdW5jdGlvbiBQTihlKXtsZXQgdD0vXihbKy1dPykoPzooXGQrKSg/OlwuKFxkKikpP3xcLihcZCspKSg/OltlRV0oWystXT9cZCspKT8kLy5leGVjKGUpO2lmKCF0KXJldHVybiBudWxsO2xldCBuPXRbMV09PT1gLWAscj10WzJdPz9gYCxpPXRbM10/P3RbNF0/P2BgLGE9TnVtYmVyKHRbNV0/P2AwYCk7aWYoIU51bWJlci5pc1NhZmVJbnRlZ2VyKGEpKXJldHVybiBudWxsO2xldCBvPWAke3J9JHtpfWAscz0wO2Zvcig7czxvLmxlbmd0aCYmby5jaGFyQ29kZUF0KHMpPT09NDg7KXMrPTE7aWYocz09PW8ubGVuZ3RoKXJldHVybiBOTigwbiwxbik7bGV0IGM9by5sZW5ndGgtMTtmb3IoO2M+cyYmby5jaGFyQ29kZUF0KGMpPT09NDg7KS0tYztsZXQgbD1vLnNsaWNlKHMsYysxKSx1PW8ubGVuZ3RoLTEtYyxkPWEtaS5sZW5ndGgrdSxmPWQrbC5sZW5ndGgtMTtpZihsLmxlbmd0aD43Njh8fE1hdGguYWJzKGYpPjExMDApcmV0dXJuIG51bGw7bGV0IHA9QmlnSW50KGwpLG09MW47cmV0dXJuIGQ+PTA/cCo9MTBuKipCaWdJbnQoZCk6bT0xMG4qKkJpZ0ludCgtZCksbiYmKHA9LXApLE5OKHAsbSl9ZnVuY3Rpb24gRk4oZSl7bGV0IHQ9L14oLT9cZCspXC8oWzEtOV1cZCopJC8uZXhlYyhlKTtpZighdCl0aHJvdyBSYW5nZUVycm9yKGBJbnZhbGlkIGV4YWN0IGxlbmd0aCBrZXk6ICR7ZX1gKTtyZXR1cm4gTk4oQmlnSW50KHRbMV0pLEJpZ0ludCh0WzJdKSl9ZnVuY3Rpb24gSU4oZSl7bGV0IHQ9Tk4oZS5udW1lcmF0b3IsZS5kZW5vbWluYXRvcik7cmV0dXJuYCR7dC5udW1lcmF0b3J9LyR7dC5kZW5vbWluYXRvcn1gfWZ1bmN0aW9uIExOKGUpe2xldCB0PVBOKGUpO3JldHVybiB0P0lOKHQpOm51bGx9ZnVuY3Rpb24gUk4oZSl7aWYoIU51bWJlci5pc0Zpbml0ZShlKXx8ZTwwKXJldHVybiBudWxsO2xldCB0PVBOKGUudG9TdHJpbmcoKSk7cmV0dXJuIHQ/SU4odCk6bnVsbH1mdW5jdGlvbiB6TihlLHQpe2xldCBuPWUudG9TdHJpbmcoMikubGVuZ3RoLXQudG9TdHJpbmcoMikubGVuZ3RoO3JldHVybihuPj0wP2U8dDw8QmlnSW50KG4pOmU8PEJpZ0ludCgtbik8dCkmJi0tbixufWZ1bmN0aW9uIEJOKGUsdCxuKXtsZXQgcj1uPj0wP2U8PEJpZ0ludChuKTplLGk9bjwwP3Q8PEJpZ0ludCgtbik6dCxhPXIvaSxvPXIlaSoybi1pO3JldHVybiBvPjBufHxvPT09MG4mJmElMm4hPTBuP2ErMW46YX1mdW5jdGlvbiBWTihlKXtsZXQgdD1GTihlKTtpZih0Lm51bWVyYXRvcj09PTBuKXJldHVybiAwO2xldCBuPXQubnVtZXJhdG9yPDBuLHI9bj8tdC5udW1lcmF0b3I6dC5udW1lcmF0b3IsaT16TihyLHQuZGVub21pbmF0b3IpLGE7aWYoaTwtMTAyMil7bGV0IGU9Qk4ocix0LmRlbm9taW5hdG9yLDEwNzQpO2E9TnVtYmVyKGUpKk51bWJlci5NSU5fVkFMVUV9ZWxzZXtsZXQgZT1CTihyLHQuZGVub21pbmF0b3IsNTItaSk7ZT09PTFuPDw1M24mJihlPj49MW4saSs9MSksYT1pPjEwMjM/MS8wOk51bWJlcihlKSoyKiooaS01Mil9cmV0dXJuIG4/LWE6YX1mdW5jdGlvbiBITihlLHQpe2xldCBuPUZOKGUpLHI9Rk4odCk7cmV0dXJuIElOKE5OKG4ubnVtZXJhdG9yKnIuZGVub21pbmF0b3Irci5udW1lcmF0b3Iqbi5kZW5vbWluYXRvcixuLmRlbm9taW5hdG9yKnIuZGVub21pbmF0b3IpKX1mdW5jdGlvbiBVTihlLHQpe2xldCBuPUZOKGUpLHI9Rk4odCk7cmV0dXJuIElOKE5OKG4ubnVtZXJhdG9yKnIubnVtZXJhdG9yLG4uZGVub21pbmF0b3Iqci5kZW5vbWluYXRvcikpfWZ1bmN0aW9uIFdOKGUsdCl7bGV0IG49Rk4oZSkscj1GTih0KTtyZXR1cm4gSU4oTk4obi5udW1lcmF0b3Iqci5kZW5vbWluYXRvci1yLm51bWVyYXRvcipuLmRlbm9taW5hdG9yLG4uZGVub21pbmF0b3Iqci5kZW5vbWluYXRvcikpfWZ1bmN0aW9uIEdOKGUsdCl7aWYodD09PTBuKXRocm93IFJhbmdlRXJyb3IoYEV4YWN0IGxlbmd0aCBkaXZpc29yIG11c3Qgbm90IGJlIHplcm9gKTtsZXQgbj1GTihlKTtyZXR1cm4gSU4oTk4obi5udW1lcmF0b3Isbi5kZW5vbWluYXRvcip0KSl9ZnVuY3Rpb24gS04oZSx0KXtsZXQgbj1GTihlKSxyPUZOKHQpLGk9bi5udW1lcmF0b3Iqci5kZW5vbWluYXRvci1yLm51bWVyYXRvcipuLmRlbm9taW5hdG9yO3JldHVybiBpPDBuPy0xOisoaT4wbil9Y29uc3QgcU49MWUtOTtmdW5jdGlvbiBKTihlLHQsbixyKXtsZXQgaT1OdW1iZXIuaXNGaW5pdGUoZSk/TWF0aC5tYXgoMCxlKTowLGE9TWF0aC5tYXgoMCx0KSxvPWErTWF0aC5tYXgoMSxuKTtyZXR1cm57c3RhcnRQdDphPT09MD9pOmkvMixlbmRQdDpvPj1NYXRoLm1heCgwLHIpP2k6aS8yfX1mdW5jdGlvbiBZTihlKXtyZXR1cm4gdHlwZW9mIGU9PWBudW1iZXJgJiZOdW1iZXIuaXNGaW5pdGUoZSk/TWF0aC5tYXgoMCxlKTowfWZ1bmN0aW9uIFhOKGUpe3JldHVybiBlLm1hcChlPT5NYXRoLmFicyhlKTw9cU4/MDplKX1mdW5jdGlvbiBaTihlKXtsZXQgdD1lLmdyaWRXaWR0aHNQdC5sZW5ndGg7Zm9yKGxldCBuIG9mIGUucm93cyl7Zm9yKGxldCBlIG9mIG4uY2VsbHMpdD1NYXRoLm1heCh0LGUuY29sdW1uU3RhcnQrTWF0aC5tYXgoMSxlLmNvbHVtblNwYW4pKTtsZXQgZT1uLmNlbGxzLnJlZHVjZSgoZSx0KT0+TWF0aC5tYXgoZSx0LmNvbHVtblN0YXJ0K01hdGgubWF4KDEsdC5jb2x1bW5TcGFuKSksbi5iZWZvcmU/LmNvbHVtblNwYW4/PzApO3Q9TWF0aC5tYXgodCxlKyhuLmFmdGVyPy5jb2x1bW5TcGFuPz8wKSl9cmV0dXJuIHR9ZnVuY3Rpb24gUU4oZSx0LG4pe2xldCByPTAsaT1NYXRoLm1pbihlLmxlbmd0aCx0K01hdGgubWF4KDEsbikpO2ZvcihsZXQgbj1NYXRoLm1heCgwLHQpO248aTtuKz0xKXIrPWVbbl0/PzA7cmV0dXJuIHJ9ZnVuY3Rpb24gJE4oZSx0KXtyZXR1cm4gZT9lLmtpbmQ9PT1gcGN0YD9ZTihlLnZhbHVlKSp0OllOKGUudmFsdWUpOm51bGx9ZnVuY3Rpb24gZVAoZSx0LG4scil7bGV0IGk9TWF0aC5tYXgoMCx0KSxhPU1hdGgubWF4KDEsTWF0aC5taW4obixlLmxlbmd0aC1pKSk7aWYoYTw9MClyZXR1cm47bGV0IG89UU4oZSxpLGEpO2lmKG88PXFOKXtlW2krYS0xXT1yO3JldHVybn1sZXQgcz1yL287Zm9yKGxldCB0PWk7dDxpK2E7dCs9MSllW3RdPShlW3RdPz8wKSpzfWZ1bmN0aW9uIHRQKGUsdCxuLHIpe2xldCBpPU1hdGgubWF4KDAsdCksYT1NYXRoLm1heCgxLE1hdGgubWluKG4sZS5sZW5ndGgtaSkpO2lmKGE8PTApcmV0dXJuO2xldCBvPVFOKGUsaSxhKTtyPD1vK3FOfHwoZVtpK2EtMV0rPXItbyl9ZnVuY3Rpb24gblAoZSx0KXtsZXQgbj1bXTtlLmJlZm9yZSYmZS5iZWZvcmUuY29sdW1uU3Bhbj4wJiZuLnB1c2goe3N0YXJ0OjAsc3BhbjplLmJlZm9yZS5jb2x1bW5TcGFuLHByZWZlcnJlZDplLmJlZm9yZS5wcmVmZXJyZWRXaWR0aH0pO2ZvcihsZXQgdCBvZiBlLmNlbGxzKW4ucHVzaCh7c3RhcnQ6dC5jb2x1bW5TdGFydCxzcGFuOnQuY29sdW1uU3BhbixwcmVmZXJyZWQ6dC5wcmVmZXJyZWRXaWR0aH0pO3JldHVybiBlLmFmdGVyJiZlLmFmdGVyLmNvbHVtblNwYW4+MCYmbi5wdXNoKHtzdGFydDpNYXRoLm1heCgwLHQtZS5hZnRlci5jb2x1bW5TcGFuKSxzcGFuOmUuYWZ0ZXIuY29sdW1uU3BhbixwcmVmZXJyZWQ6ZS5hZnRlci5wcmVmZXJyZWRXaWR0aH0pLG59ZnVuY3Rpb24gclAoZSx0KXtsZXQgbj1BcnJheS5mcm9tKHtsZW5ndGg6dH0sKHQsbik9PllOKGUuZ3JpZFdpZHRoc1B0W25dPz8wKSkscj1uLnJlZHVjZSgoZSx0KT0+ZSt0LDApLGk9ZS50YWJsZVByZWZlcnJlZFdpZHRoUHQ/PyhyPjA/cjpZTihlLmF2YWlsYWJsZVdpZHRoUHQpKTtlLnJvd3MuZm9yRWFjaCgoZSxyKT0+e2ZvcihsZXQgYSBvZiBuUChlLHQpKXtsZXQgZT0kTihhLnByZWZlcnJlZCxpKTtlIT09bnVsbCYmKHI9PT0wP2VQKG4sYS5zdGFydCxhLnNwYW4sZSk6dFAobixhLnN0YXJ0LGEuc3BhbixlKSl9fSksZS50YWJsZVByZWZlcnJlZFdpZHRoUHQ9PT1udWxsJiZpUChuLGUucm93cyk7bGV0IGE9ZS50YWJsZVByZWZlcnJlZFdpZHRoUHQsbz1uLnJlZHVjZSgoZSx0KT0+ZSt0LDApO2lmKGEhPT1udWxsJiZhPj0wJiZvPD1xTiYmbi5sZW5ndGg+MClyZXR1cm4gbi5tYXAoKCk9PmEvbi5sZW5ndGgpO2lmKGEhPT1udWxsJiZhPj0wJiZvPnFOKXtsZXQgZT1hL287cmV0dXJuIG4ubWFwKHQ9PnQqZSl9cmV0dXJuIG59ZnVuY3Rpb24gaVAoZSx0KXtsZXQgbj1BcnJheShlLmxlbmd0aCkuZmlsbCgwKTtmb3IobGV0IHIgb2YgdClmb3IobGV0IHQgb2Ygci5jZWxscyl7aWYodC5jb2x1bW5TcGFuIT09MXx8dC5wcmVmZXJyZWRXaWR0aD8ua2luZCE9PWBwY3RgKWNvbnRpbnVlO2xldCByPXQuY29sdW1uU3RhcnQ7cjwwfHxyPj1lLmxlbmd0aHx8KG5bcl09TWF0aC5tYXgobltyXT8/MCxZTih0LnByZWZlcnJlZFdpZHRoLnZhbHVlKSkpfWxldCByPWUucmVkdWNlKChlLHQpPT5lK3QsMCksaT1uLm1hcCgodCxuKT0+dCpyPmVbbl0rcU4pLGE9bmV3IFNldDtmb3IoO2kuc29tZShCb29sZWFuKTspe2xldCB0PWkubWFwKGU9PmU/YDFgOmAwYCkuam9pbihgYCk7aWYoYS5oYXModCkpcmV0dXJuO2EuYWRkKHQpO2xldCBvPTAscz0wO2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCs9MSlpW3RdP3MrPW5bdF0/PzA6bys9ZVt0XT8/MDtpZihzPj0xLXFOKXJldHVybjtyPW8vKDEtcyk7bGV0IGM9bi5tYXAoKHQsbik9PnQqcj5lW25dK3FOKTtpZihjLmV2ZXJ5KChlLHQpPT5lPT09aVt0XSkpe2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCs9MSlpW3RdJiYoZVt0XT1uW3RdKnIpO3JldHVybn1pPWN9fWZ1bmN0aW9uIGFQKGUsdCxuKXtsZXQgcj1BcnJheSh0KS5maWxsKDApLGk9QXJyYXkodCkuZmlsbCgwKTtmb3IobGV0IG4gb2YgZSlmb3IobGV0IGUgb2Ygbi5jZWxscyllLmNvbHVtblNwYW4hPT0xfHxlLmNvbHVtblN0YXJ0PDB8fGUuY29sdW1uU3RhcnQ+PXR8fChyW2UuY29sdW1uU3RhcnRdPU1hdGgubWF4KHJbZS5jb2x1bW5TdGFydF0/PzAsWU4oZS5taW5Db250ZW50V2lkdGhQdCkpLGlbZS5jb2x1bW5TdGFydF09TWF0aC5tYXgoaVtlLmNvbHVtblN0YXJ0XT8/MCxZTihlLm1heENvbnRlbnRXaWR0aFB0KSkpO2xldCBhPUFycmF5KHQpLmZpbGwoITEpO2ZvcihsZXQgbyBvZiBlKWZvcihsZXQgZSBvZiBvLmNlbGxzKXtsZXQgbz1lLmNvbHVtblN0YXJ0O2lmKGUuY29sdW1uU3BhbiE9PTF8fG88MHx8bz49dHx8YVtvXXx8ZS5wcmVmZXJyZWRXaWR0aD09PW51bGwpY29udGludWU7bGV0IHM9JE4oZS5wcmVmZXJyZWRXaWR0aCxuKTtzIT09bnVsbCYmKGlbb109TWF0aC5tYXgocltvXT8/MCxzKSxhW29dPSEwKX1mb3IobGV0IGU9MDtlPHQ7ZSs9MSlpW2VdPU1hdGgubWF4KHJbZV0/PzAsaVtlXT8/MCk7cmV0dXJue21pbmltdW1zOnIsbWF4aW11bXM6aX19ZnVuY3Rpb24gb1AoZSx0LG4scixpKXtsZXQgYT1NYXRoLm1pbihlLmxlbmd0aCxuK3IpLG89ZS5tYXAoKGUsdCk9PnQpLmZpbHRlcihlPT5lPG58fGU+PWEpLHM9by5tYXAobj0+TWF0aC5tYXgoMCxlW25dLSh0W25dPz8wKSkpLGM9cy5yZWR1Y2UoKGUsdCk9PmUrdCwwKSxsPU1hdGgubWluKGksYyk7cmV0dXJuIGw8PXFOfHxjPD1xTj8wOihvLmZvckVhY2goKHQsbik9PntlW3RdLT1sKigoc1tuXT8/MCkvYyl9KSxsKX1mdW5jdGlvbiBzUChlLHQsbixyKXtpZihyPD1xTnx8bjw9MClyZXR1cm47bGV0IGk9UU4oZSx0LG4pO2ZvcihsZXQgYT0wO2E8bjthKz0xKXtsZXQgbz10K2Escz1pPnFOPyhlW29dPz8wKS9pOjEvbjtlW29dKz1yKnN9fWZ1bmN0aW9uIGNQKGUpe2xldCB0PVpOKGUpO2lmKGUubGF5b3V0PT09YGZpeGVkYCl7bGV0IG49clAoZSx0KS5yZWR1Y2UoKGUsdCk9PmUrdCwwKTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7bWluV2lkdGhQdDpuLG1heFdpZHRoUHQ6bn0pfWxldCBuPUFycmF5KHQpLmZpbGwoMCkscj1BcnJheSh0KS5maWxsKDApLGk9ZS5yb3dzLmZsYXRNYXAoZT0+ZS5jZWxscykuc29ydCgoZSx0KT0+ZS5jb2x1bW5TcGFuLXQuY29sdW1uU3BhbiksYT0oZSx0LG4pPT57bGV0IHI9TWF0aC5tYXgoMCx0LmNvbHVtblN0YXJ0KSxpPU1hdGgubWF4KDEsTWF0aC5taW4odC5jb2x1bW5TcGFuLGUubGVuZ3RoLXIpKTtpZihpPD0wKXJldHVybjtsZXQgYT1ZTihuKS1RTihlLHIsaSk7YT5xTiYmc1AoZSxyLGksYSl9O2ZvcihsZXQgZSBvZiBpKWEobixlLGUubWluQ29udGVudFdpZHRoUHQpLGEocixlLE1hdGgubWF4KGUubWluQ29udGVudFdpZHRoUHQsZS5tYXhDb250ZW50V2lkdGhQdCkpO2xldCBvPW4ucmVkdWNlKChlLHQpPT5lK3QsMCkscz1NYXRoLm1heChvLHIucmVkdWNlKChlLHQpPT5lK3QsMCkpO3JldHVybiBPYmplY3QuZnJlZXplKHttaW5XaWR0aFB0Om8sbWF4V2lkdGhQdDpzfSl9ZnVuY3Rpb24gbFAoZSx0LG4scil7bGV0IGk9TWF0aC5tYXgoMCxyLmNvbHVtblN0YXJ0KSxhPU1hdGgubWF4KDEsTWF0aC5taW4oci5jb2x1bW5TcGFuLGUubGVuZ3RoLWkpKTtpZihhPD0wKXJldHVybjtsZXQgbz1ZTihyLm1pbkNvbnRlbnRXaWR0aFB0KSxzPVFOKGUsaSxhKTtpZihvPD1zK3FOKXJldHVybjtsZXQgYz1hPT09MT9uW2ldPz9vOk1hdGgubWF4KG8sWU4oci5tYXhDb250ZW50V2lkdGhQdCkpO3NQKGUsaSxhLG9QKGUsdCxpLGEsTWF0aC5tYXgoMCxjLXMpKSk7bGV0IGw9UU4oZSxpLGEpO2w8by1xTiYmc1AoZSxpLGEsby1sKX1mdW5jdGlvbiB1UChlLHQsbixyKXtsZXQgaT1lLnJlZHVjZSgoZSx0KT0+ZSt0LDApO2lmKGk8PXIrcU58fGk8PXFOKXJldHVybiBlO2xldCBhPVsuLi5lXSxvPWEubWFwKChlLG4pPT5NYXRoLm1heCgwLGUtKHRbbl0/PzApKSkscz1vLnJlZHVjZSgoZSx0KT0+ZSt0LDApLGM9TWF0aC5taW4oaS1yLHMpO2M+cU4mJnM+cU4mJmEuZm9yRWFjaCgoZSx0KT0+e2FbdF0tPWMqKChvW3RdPz8wKS9zKX0pO2ZvcihsZXQgZSBvZiBuKXtpZihlLmNvbHVtblNwYW48PTEpY29udGludWU7bGV0IG49TWF0aC5tYXgoMCxlLmNvbHVtblN0YXJ0KSxyPU1hdGgubWF4KDEsTWF0aC5taW4oZS5jb2x1bW5TcGFuLGEubGVuZ3RoLW4pKSxpPVlOKGUubWluQ29udGVudFdpZHRoUHQpLVFOKGEsbixyKTtpZihpPD1xTiljb250aW51ZTtsZXQgbz1vUChhLHQsbixyLGkpO3NQKGEsbixyLG8pLG88aS1xTiYmc1AoYSxuLHIsaS1vKX1sZXQgbD1hLnJlZHVjZSgoZSx0KT0+ZSt0LDApO2lmKGw8PXIrcU58fGw8PXFOKXJldHVybiBYTihhKTtsZXQgdT1NYXRoLm1heCgwLHIpL2w7cmV0dXJuIFhOKGEubWFwKGU9PmUqdSkpfWZ1bmN0aW9uIGRQKGUpe2xldCB0PVpOKGUpO2lmKHQ9PT0wKXJldHVybiBPYmplY3QuZnJlZXplKFtdKTtsZXQgbj1yUChlLHQpO2lmKGUubGF5b3V0PT09YGZpeGVkYCl7aWYoZS5hdmFpbGFibGVXaWR0aFB0PT09bnVsbClyZXR1cm4gT2JqZWN0LmZyZWV6ZShuKTtsZXQgdD1uLnJlZHVjZSgoZSx0KT0+ZSt0LDApLHI9WU4oZS5hdmFpbGFibGVXaWR0aFB0KTtpZih0PD1yK3FOfHx0PD1xTilyZXR1cm4gT2JqZWN0LmZyZWV6ZShuKTtsZXQgaT1yL3Q7cmV0dXJuIE9iamVjdC5mcmVlemUoWE4obi5tYXAoZT0+ZSppKSkpfWxldCByPW4ucmVkdWNlKChlLHQpPT5lK3QsMCkse21pbmltdW1zOmksbWF4aW11bXM6YX09YVAoZS5yb3dzLHQsciksbz1lLnJvd3MuZmxhdE1hcChlPT5lLmNlbGxzKTtvLnNvcnQoKGUsdCk9PmUuY29sdW1uU3Bhbi10LmNvbHVtblNwYW4pO2ZvcihsZXQgZSBvZiBvKWxQKG4saSxhLGUpO3JldHVybiBPYmplY3QuZnJlZXplKHVQKG4saSxvLFlOKGUuYXZhaWxhYmxlV2lkdGhQdCkpKX1mdW5jdGlvbiBmUChlKXtsZXQgdD1kUChlKSxuPXQubWFwKCh0LG4pPT57bGV0IHI9dCE9PWUuZ3JpZFdpZHRoc1B0W25dO3JldHVybiFyJiZlLmdyaWRXaWR0aEtleXM/LltuXT09PW51bGw/bnVsbDohciYmZS5ncmlkV2lkdGhLZXlzPy5bbl0hPT12b2lkIDA/ZS5ncmlkV2lkdGhLZXlzW25dOlJOKHQpPz9gMC8xYH0pO3JldHVybiBPYmplY3QuZnJlZXplKHt3aWR0aHNQdDpPYmplY3QuZnJlZXplKFsuLi50XSksd2lkdGhLZXlzOk9iamVjdC5mcmVlemUobil9KX1mdW5jdGlvbiBwUChlKXtyZXR1cm4gZlAoZSkud2lkdGhzUHR9ZnVuY3Rpb24gbVAoZSx0KXtpZih0IT09ZS5sZW5ndGgtMXx8dD09PTApcmV0dXJuITE7bGV0IG49ZVt0XSxyPWVbdC0xXTtyZXR1cm4gbj8udHlwZT09PWBwYXJhZ3JhcGhgJiZyPy50eXBlPT09YHRhYmxlYCYmbi5ydW5zLmxlbmd0aD09PTB9ZnVuY3Rpb24gaFAoZSx0KXtsZXR7Y2VsbDpuLHRhYmxlOnIsY2VsbFRvdGFsV2lkdGhQdDppLG91dGVyU3RhdGU6YSxzb3VyY2VQYXRoOm99PWUscz10LnJlc29sdmVDb250ZW50V2lkdGhQdChuLHIsaSksYz10LmNyZWF0ZUNlbGxTdGF0ZShhLHMsbiksbD1bXTtmb3IobGV0IGU9MDtlPG4uY29udGVudC5sZW5ndGg7ZSs9MSl7bGV0IHI9bi5jb250ZW50W2VdO2lmKCFyKWNvbnRpbnVlO2xldCBpPVsuLi5vLGVdO2lmKHIudHlwZT09PWBwYXJhZ3JhcGhgKXtsZXQgYT1uLmNvbnRlbnRbZS0xXSxvPW4uY29udGVudFtlKzFdLHU9cixkPXQuYWNxdWlyZVBhcmFncmFwaChjLHUscyxpLGxDKGE/LnR5cGU9PT1gcGFyYWdyYXBoYD9hOm51bGwsdSxvPy50eXBlPT09YHBhcmFncmFwaGA/bzpudWxsKSk7bC5wdXNoKGQpLHQuYWR2YW5jZVN0YXRlKGMsZC5hZHZhbmNlUHQpO2NvbnRpbnVlfWxldCBhPXIsdT1yO2wucHVzaCh0LmFjcXVpcmVOZXN0ZWRUYWJsZShjLGEscyxpLHtmcm9tUHJldmlvdXM6dS5uZXN0ZWRTbGljZUNvbnRpbnVlc0Zyb21QcmV2aW91cz8/ITEsb25OZXh0OnUubmVzdGVkU2xpY2VDb250aW51ZXNPbk5leHQ/PyExfSwoZSxuLHIsaSxhKT0+aFAoe2NlbGw6ZSx0YWJsZTpuLGNlbGxUb3RhbFdpZHRoUHQ6cixvdXRlclN0YXRlOmksc291cmNlUGF0aDphfSx0KSkpfXJldHVybiBsfSQoe2lkOmB3b3JkLWV4YWN0LXJvdy1oZWlnaHQtYm90dG9tLXBhZGRpbmdgLGV2aWRlbmNlOntraW5kOmBtaWNyb3NvZnQtbm90ZWAscmVmZXJlbmNlOmBbTVMtT0kyOTUwMF0gwqcyLjEuMTgwKGQpYH0sZGVzY3JpcHRpb246YFdvcmQgYWRkcyB0aGUgbGFyZ2VzdCBib3R0b20gY2VsbCBtYXJnaW4gdG8gYW4gZXhhY3QgdHJIZWlnaHQgaW5zdGVhZCBvZiB0cmVhdGluZyB0aGF0IG1hcmdpbiBhcyBwYXJ0IG9mIHRoZSBhdXRob3JlZCBoZWlnaHQuYH0pLCQoe2lkOmB3b3JkLXRhYmxlLWJvcmRlci1sYXllci1jYXNjYWRlYCxldmlkZW5jZTp7a2luZDpgbWljcm9zb2Z0LW5vdGVgLHJlZmVyZW5jZTpgW01TLU9JMjk1MDBdIMKnMi4xLjE2OWB9LGRlc2NyaXB0aW9uOmBEdXJpbmcgcGVyLXNpZGUgYm9yZGVyIGFjcXVpc2l0aW9uLCBub25lIGZhbGxzIHRocm91Z2ggdG8gYSBsb3dlci1wcmVjZWRlbmNlIGxheWVyIHdoaWxlIG5pbCByZW1haW5zIGF1dGhvcmVkIGFuZCBibG9ja3MgZmFsbGJhY2sgb25seSBvbiB0aGF0IHNpZGUuYH0pLCQoe2lkOmB3b3JkLXNwYWNlZC1jZWxsLWluc2lkZS1ib3JkZXItY29uZmxpY3RgLGV2aWRlbmNlOntraW5kOmBtaWNyb3NvZnQtbm90ZWAscmVmZXJlbmNlOmBbTVMtT0kyOTUwMF0gwqfCpzIuMS4xMzYsIDIuMS4xMzhgfSxkZXNjcmlwdGlvbjpgV2l0aCBub24temVybyBjZWxsIHNwYWNpbmcsIFdvcmQgcmV0YWlucyB0aGUgbmFycm93IGNvbmRpdGlvbmFsIHRjQm9yZGVycyBpbnNpZGVIL2luc2lkZVYgY29uZmxpY3QgYWdhaW5zdCB0aGUgY29ycmVzcG9uZGluZyB0YWJsZSBpbnNpZGUgYm9yZGVyLmB9KSwkKHtpZDpgd29yZC10YWJsZS1pbmRlbnQtYWxsLWFsaWdubWVudHNgLGV2aWRlbmNlOntraW5kOmBtaWNyb3NvZnQtbm90ZWAscmVmZXJlbmNlOmBbTVMtT0kyOTUwMF0gwqcyLjEuMTU1YH0sZGVzY3JpcHRpb246YFdvcmQgYXBwbGllcyB0YmxJbmQgYXMgYSBzaWduZWQgbGVhZGluZy1lZGdlIHRyYW5zbGF0aW9uIGZvciBldmVyeSB0YWJsZSBhbGlnbm1lbnQsIHJldmVyc2luZyB0aGUgdHJhbnNsYXRpb24gZm9yIGJpZGkgdmlzdWFsIG9yZGVyLmB9KSwkKHtpZDpgd29yZC1leGFjdC1yb3ctdmVydGljYWwtY2xpcC1vbmx5YCxldmlkZW5jZTp7a2luZDpgcmVncmVzc2lvbi10ZXN0YCxyZWZlcmVuY2U6YHBhY2thZ2VzL2RvY3gvc3JjL2xheW91dC90YWJsZS50ZXN0LnRzI2NsaXBzIGFuIG92ZXJmbG93aW5nIG1lcmdlZCBvd25lciB3aGVuIGV2ZXJ5IHJvdyBpbiBpdHMgc3BhbiBpcyBleGFjdGB9LGRlc2NyaXB0aW9uOmBQcmVzZXJ2ZSB0aGUgZXN0YWJsaXNoZWQgZXhhY3Qtcm93IG92ZXJmbG93IGJlaGF2aW9yIHRoYXQgY2xpcHMgdGhlIG93bmVkIHZlcnRpY2FsIGludGVydmFsIHdpdGhvdXQgY2xpcHBpbmcgbmVzdGVkIHRhYmxlIGluayBob3Jpem9udGFsbHkgdG8gdGhlIGNlbGwgYm94LmB9KSwkKHtpZDpgd29yZC1vdmVyLXBhZ2UtY2FudC1zcGxpdC1jbGlwYCxldmlkZW5jZTp7a2luZDpgbWljcm9zb2Z0LW5vdGVgLHJlZmVyZW5jZTpgW01TLU9JMjk1MDBdIMKnMi4xLjEyMGB9LGRlc2NyaXB0aW9uOmBXb3JkIHN0YXJ0cyBhbiBvdmVyLXBhZ2UgY2FudFNwbGl0IHJvdyBvbiBhIGZyZXNoIHBhZ2UgYW5kIGNsaXBzIGl0cyBvdmVyZmxvdyBpbnN0ZWFkIG9mIHN5bnRoZXNpemluZyBhIHJvdyBjb250aW51YXRpb24uYH0pLCQoe2lkOmB3b3JkLXBvc2l0aW9uZWQtdGFibGUtYWRqYWNlbmN5LWV4Y2x1c2lvbmAsZXZpZGVuY2U6e2tpbmQ6YG1pY3Jvc29mdC1ub3RlYCxyZWZlcmVuY2U6YFtNUy1PSTI5NTAwXSDCpzIuMS4xNDkoYSlgfSxkZXNjcmlwdGlvbjpgV29yZCBleGNsdWRlcyBlZmZlY3RpdmVseSBwb3NpdGlvbmVkIHRhYmxlcyBmcm9tIHRoZSBsb2dpY2FsIGFkamFjZW50LXRhYmxlIHNlcXVlbmNlIGJlZm9yZSByZXRhaW5lZCBsYXlvdXQgY29uc3VtZXMgdGhlIHBhcnNlci1vd25lZCBzZXF1ZW5jZSBpZGVudGl0eS5gfSksJCh7aWQ6YHdvcmQtdGFibGUtYm9yZGVyLXdlaWdodC1wcmVjZWRlbmNlYCxldmlkZW5jZTp7a2luZDpgbWljcm9zb2Z0LW5vdGVgLHJlZmVyZW5jZTpgW01TLU9JMjk1MDBdIMKnMi4xLjE2OWB9LGRlc2NyaXB0aW9uOmBVc2UgdGhlIGRvY3VtZW50ZWQgV29yZCBib3JkZXIgbnVtYmVycyBmb3Igc2hhcmVkLWNlbGwgY29uZmxpY3Qgd2VpZ2h0IGFuZCBmb3JjZSBkb3R0ZWQgYW5kIGRhc2hlZCBib3JkZXJzIHRvIGEgY29tcGxldGUgd2VpZ2h0IG9mIG9uZS5gfSksJCh7aWQ6YHdvcmQtb21pdHRlZC1yb3ctaGVpZ2h0LXJ1bGUtYXQtbGVhc3RgLGV2aWRlbmNlOntraW5kOmBtaWNyb3NvZnQtbm90ZWAscmVmZXJlbmNlOmBbTVMtT0kyOTUwMF0gwqcyLjEuMTgwYH0sZGVzY3JpcHRpb246YFRyZWF0IGFuIG9taXR0ZWQgdHJIZWlnaHQgaFJ1bGUgYXMgYXRMZWFzdCB3aGlsZSByZXRhaW5pbmcgYW4gZXhwbGljaXRseSBhdXRob3JlZCBhdXRvIHJ1bGUgYXMgYXV0aG9yZWQgaW5wdXQuYH0pLCQoe2lkOmB3b3JkLWF1dGhvcmVkLWF1dG8tcm93LWhlaWdodC1mbG9vcmAsZXZpZGVuY2U6e2tpbmQ6YHJlZ3Jlc3Npb24tdGVzdGAscmVmZXJlbmNlOmBwYWNrYWdlcy9kb2N4L3NyYy90YWJsZS1yb3ctaGVpZ2h0LnRlc3QudHMjYXV0byB3aXRoIEB2YWwg4oCUIEB2YWwgaXMgaG9ub3JlZCBhcyBhIGxvd2VyIGJvdW5kYH0sZGVzY3JpcHRpb246YFByZXNlcnZlIHRoZSBlc3RhYmxpc2hlZCBsZWdhY3ktbW9kZWwgYmVoYXZpb3IgdGhhdCBhbiBhdXRvIHJvdyB3aXRoIGFuIGF1dGhvcmVkIGhlaWdodCB2YWx1ZSB1c2VzIHRoYXQgdmFsdWUgYXMgYSBsb3dlciBib3VuZC5gfSksJCh7aWQ6YHdvcmQtY29sbGFwc2VkLWJvcmRlci1yb3ctdHJhY2stZm9vdHByaW50YCxldmlkZW5jZTp7a2luZDpgb2ZmaWNlLW9ic2VydmF0aW9uYCxzeW50aGV0aWNGaXh0dXJlSWQ6YGNvbGxhcHNlZC1ib3JkZXItcm93LXRyYWNrLW1hdHJpeGAsYXBwbGljYXRpb246YE1pY3Jvc29mdCBXb3JkYCx2ZXJzaW9uOmAxNi4xMTEuMWAscGxhdGZvcm06YG1hY09TIDI2LjUuMmB9LGRlc2NyaXB0aW9uOmBGb3IgYXV0b21hdGljIGFuZCBhdC1sZWFzdCB0YWJsZSByb3dzIHdpdGggY29sbGFwc2VkIGNlbGwgYm91bmRhcmllcywgV29yZCBpbmNsdWRlcyBoYWxmIG9mIHRoZSB3aW5uaW5nIHRvcCBhbmQgYm90dG9tIHJ1bGUgd2lkdGhzIGluIGVhY2ggcm93IHRyYWNrLiBFeGFjdCByb3dzIHJldGFpbiB0aGVpciBhdXRob3JlZCBjb21wbGV0ZSBoZWlnaHQsIGFuZCBjZWxsIHNwYWNpbmcga2VlcHMgaW5kZXBlbmRlbnQgZWRnZXMgb3V0IG9mIHRoZSBjb2xsYXBzZWQgZm9vdHByaW50LmB9KSwkKHtpZDpgd29yZC1lZmZlY3RpdmUtZmxvYXRpbmctdGFibGUtcG9zaXRpb25pbmdgLGV2aWRlbmNlOntraW5kOmBtaWNyb3NvZnQtbm90ZWAscmVmZXJlbmNlOmBbTVMtT0kyOTUwMF0gwqcyLjEuMTYyYH0sZGVzY3JpcHRpb246YFVzZSBwYXJzZXItcmV0YWluZWQgZWZmZWN0aXZlIHBvc2l0aW9uaW5nIHN0YXR1cyByYXRoZXIgdGhhbiBsZXhpY2FsIHRibHBQciBwcmVzZW5jZSB0byBkZWNpZGUgd2hldGhlciBhIHRhYmxlIGxlYXZlcyBvcmRpbmFyeSBmbG93LmB9KSwkKHtpZDpgd29yZC10YWJsZS1jZWxsLXNwYWNpbmctc2NvcGUtc2hhZG93YCxldmlkZW5jZTp7a2luZDpgbWljcm9zb2Z0LW5vdGVgLHJlZmVyZW5jZTpgW01TLU9JMjk1MDBdIMKnwqcyLjEuMTUyLCAyLjEuMTUzLCAyLjEuMTU0YH0sZGVzY3JpcHRpb246YEF0IGVhY2ggdGFibGUtY2VsbC1zcGFjaW5nIHByZWNlZGVuY2Ugc2NvcGUsIHBjdCwgYXV0bywgYW5kIG5pbCByZXNvbHZlIHRvIHplcm8gYW5kIHNoYWRvdyBsb3dlciBzY29wZXMgaW5zdGVhZCBvZiBiZWluZyB0cmVhdGVkIGFzIGFic2VudC5gfSksJCh7aWQ6YHdvcmQtdGFibGUtbWFyZ2luLXNjb3BlLXNoYWRvd2AsZXZpZGVuY2U6e2tpbmQ6YG1pY3Jvc29mdC1ub3RlYCxyZWZlcmVuY2U6YFtNUy1PSTI5NTAwXSDCp8KnMi4xLjExNiwgMi4xLjEyNSwgMi4xLjE0NiwgMi4xLjE3N2B9LGRlc2NyaXB0aW9uOmBQcmVzZXJ2ZSB0aGUgZG9jdW1lbnRlZCBzY29wZS1zcGVjaWZpYyB0cmVhdG1lbnQgb2Ygbm9uLWR4YSB0YWJsZSBjZWxsIG1hcmdpbnM6IGxlYWRpbmcvdHJhaWxpbmcgZGVmYXVsdHMgbWF5IHJlc29sdmUgdG8gemVybyB3aGlsZSBjZWxsL2V4Y2VwdGlvbiBhbmQgbmlsIHRvcC9ib3R0b20gdmFsdWVzIHJlbWFpbiBpZ25vcmVkLmB9KSwkKHtpZDpgd29yZC1maXJzdC1yb3ctdGFibGUtZXhjZXB0aW9uLXNjb3BlYCxldmlkZW5jZTp7a2luZDpgbWljcm9zb2Z0LW5vdGVgLHJlZmVyZW5jZTpgW01TLU9JMjk1MDBdIMKnwqcyLjEuMTU2LCAyLjEuMTU4LCAyLjEuMTY3YH0sZGVzY3JpcHRpb246YEFwcGx5IHRoZSBzdXBwb3J0ZWQgZmlyc3Qtcm93IHRhYmxlLXByb3BlcnR5IGV4Y2VwdGlvbiBmYWN0cyBhdCB0YWJsZSBzY29wZSwgaW5jbHVkaW5nIGF1dGhvcmVkIHByZWZlcnJlZC13aWR0aCBzaGFkb3dpbmcuYH0pLCQoe2lkOmB3b3JkLXRyYWlsaW5nLXN0cnVjdHVyYWwtY2VsbC1tYXJrZXJgLGV2aWRlbmNlOntraW5kOmByZWdyZXNzaW9uLXRlc3RgLHJlZmVyZW5jZTpgcGFja2FnZXMvZG9jeC9zcmMvbGF5b3V0L2NvbXBhdGliaWxpdHkudGVzdC50cyNkcm9wcyBvbmx5IGFuIGVtcHR5IHRyYWlsaW5nIHBhcmFncmFwaCBhZnRlciBhIG5vbi1wYXJhZ3JhcGggY2VsbCBibG9ja2B9LGRlc2NyaXB0aW9uOmBFeGNsdWRlIHRoZSByZXF1aXJlZCBlbXB0eSB0cmFpbGluZyBjZWxsIHBhcmFncmFwaCBmcm9tIHJvdy1oZWlnaHQgYW5kIHZlcnRpY2FsLWFsaWdubWVudCBtZWFzdXJlbWVudHMgd2hlbiBpdCBmb2xsb3dzIGEgdmlzaWJsZSBub24tcGFyYWdyYXBoIGJsb2NrLmB9KSwkKHtpZDpgd29yZC1jZWxsLXZlcnRpY2FsLWFsaWdubWVudC1pbmstYmxvY2tgLGV2aWRlbmNlOntraW5kOmByZWdyZXNzaW9uLXRlc3RgLHJlZmVyZW5jZTpgcGFja2FnZXMvZG9jeC9zcmMvY2VsbC12YWxpZ24tbGVhZGluZy1zcGFjaW5nLnRlc3QudHMjaW5rZWQgYmxvY2sgaXMgdmVydGljYWxseSBjZW50cmVkIGluIHRoZSBjZWxsIChtaWRwb2ludCA9IGNlbGwgbWlkcG9pbnQpYH0sZGVzY3JpcHRpb246YENlbnRlciBvciBib3R0b20tYWxpZ24gdGhlIHZpc2libGUgY2VsbCBpbmsgYmxvY2sgd2l0aG91dCBjaGFyZ2luZyB0aGUgZmlyc3QgcGFyYWdyYXBoIHNwYWNlQmVmb3JlIG9yIGZpbmFsIHBhcmFncmFwaCBzcGFjZUFmdGVyIGF0IHRoZSBjZWxsIGVkZ2VzLmB9KSwkKHtpZDpgd29yZC12ZXJ0aWNhbC1tZXJnZS10ZXJtaW5hbC1ib3JkZXJgLGV2aWRlbmNlOntraW5kOmByZWdyZXNzaW9uLXRlc3RgLHJlZmVyZW5jZTpgcGFja2FnZXMvZG9jeC9zcmMvY2VsbC1ib3JkZXItY29uZmxpY3QtcmVuZGVyLnRlc3QudHMjdXNlcyB0aGUgZmluYWwgY29udGludWF0aW9uIGNlbGwgYm9yZGVyIGF0IHRoZSBib3R0b20gb2YgYSB2ZXJ0aWNhbCBtZXJnZWB9LGRlc2NyaXB0aW9uOmBSZXNvbHZlIHRoZSBib3R0b20gZWRnZSBvZiBhIHZlcnRpY2FsbHkgbWVyZ2VkIGNlbGwgZnJvbSBpdHMgdGVybWluYWwgY29udGludWF0aW9uIGNlbGwgYmVmb3JlIGFwcGx5aW5nIHNoYXJlZC1lZGdlIGNvbmZsaWN0IHJ1bGVzLmB9KSwkKHtpZDpgd29yZC12ZXJ0aWNhbC1zZWN0aW9uLXVwcmlnaHQtYmxvY2stdGFibGVgLGV2aWRlbmNlOntraW5kOmByZWdyZXNzaW9uLXRlc3RgLHJlZmVyZW5jZTpgcGFja2FnZXMvZG9jeC9zcmMvdmVydGljYWwtdGFibGUtdXByaWdodC50ZXN0LnRzI3RoZSB0YWJsZSBhZHZhbmNlcyB0aGUgZmxvdyBieSBpdHMgUEhZU0lDQUwgV0lEVEg7IGJvZHkgdGV4dCBzdGF5cyB2ZXJ0aWNhbGB9LGRlc2NyaXB0aW9uOmBQYWludCBhIGJsb2NrIHRhYmxlIGluIGFuIHVwcmlnaHQgcGh5c2ljYWwgZnJhbWUgd2l0aGluIGEgdmVydGljYWwgc2VjdGlvbiBhbmQgY2hhcmdlIGl0cyBwaHlzaWNhbCB3aWR0aCBhcyB0aGUgYm9keS1mbG93IGFkdmFuY2UuYH0pO2Z1bmN0aW9uIGdQKGUsdCl7cmV0dXJuIE1hdGgubWF4KDAsZT8/MCkrTWF0aC5tYXgoMCwuLi50KX1mdW5jdGlvbiBfUChlLHQpe3JldHVybihNYXRoLm1heCgwLGUpK01hdGgubWF4KDAsdCkpLzJ9ZnVuY3Rpb24gdlAoZSl7cmV0dXJuIGUhPW51bGwmJmUhPT1gbm9uZWB9ZnVuY3Rpb24geVAoZSx0LG4pe3JldHVybiBuP2UtdDplK3R9ZnVuY3Rpb24gYlAoZSl7cmV0dXJuIGUuc3BhY2luZ1B0PjAmJiF2UChlLmRpcmVjdFN0eWxlKSYmdlAoZS5jb25kaXRpb25hbEluc2lkZVN0eWxlKX1mdW5jdGlvbiB4UChlLHQpe2xldCBuPU1hdGgubWluKGUueFB0LHQueFB0KSxyPU1hdGgubWF4KGUueFB0K2Uud2lkdGhQdCx0LnhQdCt0LndpZHRoUHQpO3JldHVybiBPYmplY3QuZnJlZXplKHt4UHQ6bix5UHQ6ZS55UHQsd2lkdGhQdDpyLW4saGVpZ2h0UHQ6ZS5oZWlnaHRQdH0pfWZ1bmN0aW9uIFNQKGUpe3JldHVybiBlLmNvbXBhdGliaWxpdHk9PT1gd29yZGAmJmUuYXZhaWxhYmxlSGVpZ2h0UHQrZS5lcHNpbG9uUHQ+PWUuZnJlc2hQYWdlSGVpZ2h0UHR9Y29uc3QgQ1A9T2JqZWN0LmZyZWV6ZShbYHNpbmdsZWAsYHRoaWNrYCxgZG91YmxlYCxgZG90dGVkYCxgZGFzaGVkYCxgZG90RGFzaGAsYGRvdERvdERhc2hgLGB0cmlwbGVgLGB0aGluVGhpY2tTbWFsbEdhcGAsYHRoaWNrVGhpblNtYWxsR2FwYCxgdGhpblRoaWNrVGhpblNtYWxsR2FwYCxgdGhpblRoaWNrTWVkaXVtR2FwYCxgdGhpY2tUaGluTWVkaXVtR2FwYCxgdGhpblRoaWNrVGhpbk1lZGl1bUdhcGAsYHRoaW5UaGlja0xhcmdlR2FwYCxgdGhpY2tUaGluTGFyZ2VHYXBgLGB0aGluVGhpY2tUaGluTGFyZ2VHYXBgLGB3YXZlYCxgZG91YmxlV2F2ZWAsYGRhc2hTbWFsbEdhcGAsYGRhc2hEb3RTdHJva2VkYCxgdGhyZWVERW1ib3NzYCxgdGhyZWVERW5ncmF2ZWAsYG91dHNldGAsYGluc2V0YF0pLHdQPU9iamVjdC5mcmVlemUoe3NpbmdsZToxLHRoaWNrOjIsZG91YmxlOjMsZG90RGFzaDo4LGRvdERvdERhc2g6OSx0cmlwbGU6MTAsdGhpblRoaWNrU21hbGxHYXA6MTEsdGhpY2tUaGluU21hbGxHYXA6MTIsdGhpblRoaWNrVGhpblNtYWxsR2FwOjEzLHRoaW5UaGlja01lZGl1bUdhcDoxNCx0aGlja1RoaW5NZWRpdW1HYXA6MTUsdGhpblRoaWNrVGhpbk1lZGl1bUdhcDoxNix0aGluVGhpY2tMYXJnZUdhcDoxNyx0aGlja1RoaW5MYXJnZUdhcDoxOCx0aGluVGhpY2tUaGluTGFyZ2VHYXA6MTksd2F2ZToyMCxkb3VibGVXYXZlOjIxLGRhc2hTbWFsbEdhcDoyMixkYXNoRG90U3Ryb2tlZDoyMyx0aHJlZURFbWJvc3M6MjQsdGhyZWVERW5ncmF2ZToyNSxvdXRzZXQ6MjYsaW5zZXQ6Mjd9KTtmdW5jdGlvbiBUUChlLHQpe3JldHVybiBlPT09YGRvdHRlZGB8fGU9PT1gZGFzaGVkYD8xOk1hdGgubWF4KDAsdCkqOCood1BbZV0/PzApfWZ1bmN0aW9uIEVQKGUsdCl7cmV0dXJuIHQ/ZTpgYXRMZWFzdGB9ZnVuY3Rpb24gRFAoZSx0KXtyZXR1cm4gZT09PWBwY3RgfHxlPT09YGF1dG9gfHxlPT09YG5pbGA/MDp0fWZ1bmN0aW9uIE9QKGUpe3JldHVybiBlLmtpbmQ9PT1gZHhhYD9lLmR4YVZhbHVlUHQ6ZS5zY29wZT09PWBjZWxsYHx8ZS5zY29wZT09PWBleGNlcHRpb25gP251bGw6KGUuZWRnZT09PWBzdGFydGB8fGUuZWRnZT09PWBlbmRgKSYmKGUua2luZD09PWBwY3RgfHxlLmtpbmQ9PT1gYXV0b2B8fGUua2luZD09PWBuaWxgKT8wOm51bGx9ZnVuY3Rpb24ga1AoZSl7cmV0dXJuIFRQKGUuc3R5bGUsZS53aWR0aCl9ZnVuY3Rpb24gQVAoZSl7bGV0IHQ9Q1AuaW5kZXhPZihlKTtyZXR1cm4gdD09PS0xP0NQLmxlbmd0aDp0fWZ1bmN0aW9uIGpQKGUpe2lmKCFlKXJldHVybntyOjAsZzowLGI6MH07bGV0IHQ9ZS5yZXBsYWNlKC9eIy8sYGApO3JldHVybiB0Lmxlbmd0aCE9PTZ8fC9bXjAtOWEtZkEtRl0vLnRlc3QodCk/e3I6MCxnOjAsYjowfTp7cjpwYXJzZUludCh0LnNsaWNlKDAsMiksMTYpLGc6cGFyc2VJbnQodC5zbGljZSgyLDQpLDE2KSxiOnBhcnNlSW50KHQuc2xpY2UoNCw2KSwxNil9fWZ1bmN0aW9uIE1QKGUsdCl7bGV0IG49alAoZSkscj1qUCh0KSxpPWU9PmUucitlLmIrMiplLmcsYT1lPT5lLmIrMiplLmcsbz1lPT5lLmc7Zm9yKGxldCBlIG9mW2ksYSxvXSl7bGV0IHQ9ZShuKS1lKHIpO2lmKHQhPT0wKXJldHVybiB0fXJldHVybiAwfWZ1bmN0aW9uIE5QKGUsdCl7bGV0IG49ZT0+ZSYmZS5zcGVjLnN0eWxlIT09YG5pbGAmJmUuc3BlYy5zdHlsZSE9PWBub25lYD9lOm51bGwscj1uKGUpLGk9bih0KTtpZighciYmIWkpcmV0dXJuIG51bGw7aWYoIXIpcmV0dXJuIGk7aWYoIWl8fHIuc291cmNlPT09YGNlbGxgJiZpLnNvdXJjZT09PWB0YWJsZWApcmV0dXJuIHI7aWYoaS5zb3VyY2U9PT1gY2VsbGAmJnIuc291cmNlPT09YHRhYmxlYClyZXR1cm4gaTtsZXQgYT1rUChyLnNwZWMpLG89a1AoaS5zcGVjKTtpZihhIT09bylyZXR1cm4gYT5vP3I6aTtsZXQgcz1BUChyLnNwZWMuc3R5bGUpLGM9QVAoaS5zcGVjLnN0eWxlKTtpZihzIT09YylyZXR1cm4gczxjP3I6aTtsZXQgbD1NUChyLnNwZWMuY29sb3IsaS5zcGVjLmNvbG9yKTtyZXR1cm4gbD09PTB8fGw8MD9yOml9ZnVuY3Rpb24gUFAoLi4uZSl7Zm9yKGxldCB0IG9mIGUpaWYodCYmdlAodC5hdXRob3JlZFN0eWxlKSlyZXR1cm4gdDtyZXR1cm4gbnVsbH1mdW5jdGlvbiBGUChlKXtyZXR1cm4gTWF0aC5tYXgoMCxlLmFkdmFuY2VQdC1lLnNwYWNpbmcuYmVmb3JlUHQtZS5zcGFjaW5nLmFmdGVyUHQpfWZ1bmN0aW9uIElQKGUpe2xldCB0PVtdLG49MCxyPW51bGwsaT0wLGEsbz0wLHM9bnVsbCxjPW51bGw7Zm9yKGxldCBsIG9mIGUpe2xldCBlPWwubGF5b3V0O2lmKGUua2luZD09PWBwYXJhZ3JhcGhgKXtsZXQgdT1lLnNwYWNpbmcuYmVmb3JlUHQsZD1lLnNwYWNpbmcuYWZ0ZXJQdCxmPXI/Q2socixlLGksdSk6dSxwPWwuc3RydWN0dXJhbFRyYWlsaW5nPzA6RlAoZSksbT1uKyhsLnN0cnVjdHVyYWxUcmFpbGluZz8wOmYpO2lmKHQucHVzaCh7bGF5b3V0OmUsb2Zmc2V0UHQ6bSxhZHZhbmNlUHQ6cH0pLGwuc3RydWN0dXJhbFRyYWlsaW5nfHwobj1tK3AsYT8/PW0sbz1NYXRoLm1heChvLG4pLHI9ZSxpPWQpLGUuY2VsbENvbnRhaW5tZW50Qm91bmRzKXtsZXQgdD1tK2UuY2VsbENvbnRhaW5tZW50Qm91bmRzLnlQdC1lLmZsb3dCb3VuZHMueVB0LG49dCtlLmNlbGxDb250YWlubWVudEJvdW5kcy5oZWlnaHRQdDthPWE9PT12b2lkIDA/dDpNYXRoLm1pbihhLHQpLG89TWF0aC5tYXgobyxuKSxzPXM9PT1udWxsP3Q6TWF0aC5taW4ocyx0KSxjPWM9PT1udWxsP246TWF0aC5tYXgoYyxuKX1jb250aW51ZX1yJiYobis9aSk7bGV0IHU9ZS5hZHZhbmNlUHQ7dC5wdXNoKHtsYXlvdXQ6ZSxvZmZzZXRQdDpuLGFkdmFuY2VQdDp1fSksYT8/PW4sbis9dSxvPW4scj1udWxsLGk9MH1sZXQgbD1uKyhyP2k6MCksdT1hPz8wO3JldHVybntibG9ja3M6dCxmbG93SGVpZ2h0UHQ6bCxpbmtUb3BQdDp1LGlua0hlaWdodFB0Ok1hdGgubWF4KDAsby11KSxjZWxsQ29udGFpbm1lbnRUb3BQdDpzLGNlbGxDb250YWlubWVudEJvdHRvbVB0OmN9fWZ1bmN0aW9uIExQKGUpe2xldCB0PWUuY2VsbENvbnRhaW5tZW50VG9wUHQ/PzAsbj1lLmNlbGxDb250YWlubWVudEJvdHRvbVB0Pz8wO3JldHVybiBNYXRoLm1heChlLmZsb3dIZWlnaHRQdCxuKS1NYXRoLm1pbigwLHQpfWZ1bmN0aW9uIFJQKGUpe3JldHVybiBMUChJUChlKSl9ZnVuY3Rpb24gelAoZSl7cmV0dXJuIE51bWJlci5pc0Zpbml0ZShlPy5jZWxsU3BhY2luZ1B0KT9NYXRoLm1heCgwLGU/LmNlbGxTcGFjaW5nUHQ/PzApOjB9ZnVuY3Rpb24gQlAoZSx0KXtsZXQgbj16UChlW3RdKSxyPXpQKGVbdC0xXSksaT16UChlW3QrMV0pO3JldHVybnt0b3BQdDp0PT09MD9uOk1hdGgubWF4KHIsbikvMixib3R0b21QdDp0PT09ZS5sZW5ndGgtMT9uOk1hdGgubWF4KG4saSkvMn19ZnVuY3Rpb24gVlAoZSx0LG4pe3JldHVybiBuLnRvcFB0K2UubWFyZ2lucy50b3BQdCtMUCh0KStlLm1hcmdpbnMuYm90dG9tUHQrbi5ib3R0b21QdH1mdW5jdGlvbiBIUChlLHQsbixyKXtsZXQgaT10O2ZvcihsZXQgYT10KzE7YTxlLmxlbmd0aCYmZVthXT8uY2VsbHMuZmluZChlPT5lLmNvbHVtblN0YXJ0PT09biYmZS5jb2x1bW5TcGFuPT09ciYmZS52ZXJ0aWNhbE1lcmdlPT09YGNvbnRpbnVlYCk7YSs9MSlpPWE7cmV0dXJuIGl9ZnVuY3Rpb24gVVAoZSl7cmV0dXJuIGUuaGVpZ2h0UnVsZT09PWBleGFjdGA/Z1AoZS5oZWlnaHRQdCxlLmNlbGxzLm1hcChlPT5lLm1hcmdpbnMuYm90dG9tUHQpKTplLmhlaWdodFJ1bGU9PT1gYXRMZWFzdGA/TWF0aC5tYXgoMCxlLmhlaWdodFB0Pz8wKTowfWZ1bmN0aW9uIFdQKGUsdCxuKXtsZXQgcj1lLm1hcChlPT5VUChlKSksaT1lLm1hcCgobixyKT0+TWF0aC5tYXgoMCwuLi5uLmNlbGxzLmZpbHRlcihlPT5lLnZlcnRpY2FsTWVyZ2UhPT1gY29udGludWVgKS5tYXAobj0+e2xldCBpPW4udmVydGljYWxNZXJnZT09PWByZXN0YXJ0YD9IUChlLHIsbi5jb2x1bW5TdGFydCxuLmNvbHVtblNwYW4pOnIsYT1CUChlLHIpLG89QlAoZSxpKTtyZXR1cm4gVlAobix0LmdldChuLmlkKT8/SVAoW10pLHt0b3BQdDphLnRvcFB0LGJvdHRvbVB0Om8uYm90dG9tUHR9KX0pKSk7ZS5mb3JFYWNoKChuLGkpPT57bGV0IGE9QlAoZSxpKTtmb3IobGV0IGUgb2Ygbi5jZWxscyl7aWYoZS52ZXJ0aWNhbE1lcmdlIT09YG5vbmVgKWNvbnRpbnVlO2xldCBvPVZQKGUsdC5nZXQoZS5pZCk/P0lQKFtdKSxhKTtuLmhlaWdodFJ1bGUhPT1gZXhhY3RgJiYocltpXT1NYXRoLm1heChyW2ldPz8wLG8pKX19KTtsZXQgYT1bXTtlLmZvckVhY2goKG4scik9Pntmb3IobGV0IGkgb2Ygbi5jZWxscylpLnZlcnRpY2FsTWVyZ2U9PT1gcmVzdGFydGAmJmEucHVzaCh7c3RhcnQ6cixlbmQ6SFAoZSxyLGkuY29sdW1uU3RhcnQsaS5jb2x1bW5TcGFuKSxyZXF1aXJlZFB0OlZQKGksdC5nZXQoaS5pZCk/P0lQKFtdKSx7dG9wUHQ6QlAoZSxyKS50b3BQdCxib3R0b21QdDpCUChlLEhQKGUscixpLmNvbHVtblN0YXJ0LGkuY29sdW1uU3BhbikpLmJvdHRvbVB0fSl9KX0pLGEuc29ydCgoZSx0KT0+ZS5lbmQtdC5lbmR8fGUuc3RhcnQtdC5zdGFydCk7Zm9yKGxldCB0IG9mIGEpe2xldCBuPTA7Zm9yKGxldCBlPXQuc3RhcnQ7ZTw9dC5lbmQ7ZSs9MSluKz1yW2VdPz8wO2xldCBpPXQucmVxdWlyZWRQdC1uO2lmKCEoaTw9MCkpe2ZvcihsZXQgbj10LmVuZDtuPj10LnN0YXJ0Oy0tbilpZihlW25dPy5oZWlnaHRSdWxlIT09YGV4YWN0YCl7cltuXT0ocltuXT8/MCkraTticmVha319fXJldHVybiBlLmZvckVhY2goKGUsdCk9PntlLmhlaWdodFJ1bGUhPT1gZXhhY3RgJiYoclt0XT0oclt0XT8/MCkrKG5bdF0/PzApKX0pLHtoZWlnaHRzOnIsY29udGVudEhlaWdodHM6aX19ZnVuY3Rpb24gR1AoZSx0KXtyZXR1cm4gZT97c291cmNlOnQsc3BlYzp7d2lkdGg6ZS53aWR0aFB0LGNvbG9yOmUuY29sb3Isc3R5bGU6ZS5hdXRob3JlZFN0eWxlfX06bnVsbH1mdW5jdGlvbiBLUChlLHQsbixyLGksYSxvLHMpe2xldCBjPShlLHQsbixyLGksYSxvKT0+e2xldCBzPVBQKGUsbz90Om51bGwpO3JldHVybiBzP0dQKHMsYGNlbGxgKTpHUChvP1BQKHIsYSk6UFAobixpKSxgdGFibGVgKX0sbD1jKGUuYm9yZGVycy50b3AsZS5ib3JkZXJzLmluc2lkZUgsbj8udG9wPz9udWxsLG4/Lmluc2lkZUg/P251bGwsdC50b3AsdC5pbnNpZGVILHIhPT0wKSx1PWMoZS5ib3JkZXJzLmJvdHRvbSxlLmJvcmRlcnMuaW5zaWRlSCxuPy5ib3R0b20/P251bGwsbj8uaW5zaWRlSD8/bnVsbCx0LmJvdHRvbSx0Lmluc2lkZUgsaSE9PWEtMSksZD1jKGUuYm9yZGVycy5sZWZ0LGUuYm9yZGVycy5pbnNpZGVWLG4/LmxlZnQ/P251bGwsbj8uaW5zaWRlVj8/bnVsbCx0LmxlZnQsdC5pbnNpZGVWLGUuY29sdW1uU3RhcnQhPT0wKSxmPWMoZS5ib3JkZXJzLnJpZ2h0LGUuYm9yZGVycy5pbnNpZGVWLG4/LnJpZ2h0Pz9udWxsLG4/Lmluc2lkZVY/P251bGwsdC5yaWdodCx0Lmluc2lkZVYsZS5jb2x1bW5TdGFydCtlLmNvbHVtblNwYW4hPT1vKTtyZXR1cm4gcz97dG9wOmwscmlnaHQ6ZCxib3R0b206dSxsZWZ0OmZ9Ont0b3A6bCxyaWdodDpmLGJvdHRvbTp1LGxlZnQ6ZH19ZnVuY3Rpb24gcVAoZSl7cmV0dXJuIGU/e3dpZHRoUHQ6ZS5zcGVjLndpZHRoLGNvbG9yOmUuc3BlYy5jb2xvcj8/YCMwMDAwMDBgLGF1dGhvcmVkU3R5bGU6ZS5zcGVjLnN0eWxlfTpudWxsfWZ1bmN0aW9uIEpQKGUsdCxuKXtsZXQgcj1xUChOUChlLHQpKTtyZXR1cm4gcj97Ym9yZGVyOnIsZWRnZTpufTpudWxsfWZ1bmN0aW9uIFlQKGUpe2xldCB0PWUuY29sdW1uV2lkdGhzUHQubGVuZ3RoLG49W10scj1lLnJvd3MubWFwKCgpPT5BcnJheSh0KS5maWxsKC0xKSk7cmV0dXJuIGUucm93cy5mb3JFYWNoKChpLGEpPT57Zm9yKGxldCBvIG9mIGkuY2VsbHMpe2lmKG8udmVydGljYWxNZXJnZT09PWBjb250aW51ZWApY29udGludWU7bGV0IGk9by52ZXJ0aWNhbE1lcmdlPT09YHJlc3RhcnRgP0hQKGUucm93cyxhLG8uY29sdW1uU3RhcnQsby5jb2x1bW5TcGFuKTphLHM9bi5sZW5ndGg7bi5wdXNoKHtpbnB1dDpvLHJvd0luZGV4OmEsbGFzdFJvd0luZGV4Oml9KTtsZXQgYz1NYXRoLm1pbih0LG8uY29sdW1uU3RhcnQrby5jb2x1bW5TcGFuKTtmb3IobGV0IGU9YTtlPD1pO2UrPTEpZm9yKGxldCB0PU1hdGgubWF4KDAsby5jb2x1bW5TdGFydCk7dDxjO3QrPTEpcltlXVt0XT1zfX0pLHtvd25lcnM6bixvY2N1cGFuY3k6cn19ZnVuY3Rpb24gWFAoZSx0KXtyZXR1cm4gdC5sYXN0Um93SW5kZXg9PT10LnJvd0luZGV4P3QuaW5wdXQ6ZS5yb3dzW3QubGFzdFJvd0luZGV4XT8uY2VsbHMuZmluZChlPT5lLmNvbHVtblN0YXJ0PT09dC5pbnB1dC5jb2x1bW5TdGFydCYmZS5jb2x1bW5TcGFuPT09dC5pbnB1dC5jb2x1bW5TcGFuJiZlLnZlcnRpY2FsTWVyZ2U9PT1gY29udGludWVgKT8/dC5pbnB1dH1mdW5jdGlvbiBaUChlKXtsZXQgdD1lLnJvd3MubGVuZ3RoLG49ZS5jb2x1bW5XaWR0aHNQdC5sZW5ndGgse293bmVyczpyLG9jY3VwYW5jeTppfT1ZUChlKSxhPShpLGE9ITEpPT57bGV0IG89cltpXTtpZighbylyZXR1cm4gbnVsbDtsZXQgcz1hP1hQKGUsbyk6by5pbnB1dCxjPWEmJnMhPT1vLmlucHV0P28ubGFzdFJvd0luZGV4Om8ucm93SW5kZXg7cmV0dXJuIEtQKHMsZS5ib3JkZXJzLGUucm93c1tjXT8uZXhjZXB0aW9uQm9yZGVycz8/bnVsbCxvLnJvd0luZGV4LG8ubGFzdFJvd0luZGV4LHQsbixlLmJpZGlWaXN1YWwpfTtyZXR1cm57aG9yaXpvbnRhbDpBcnJheS5mcm9tKHtsZW5ndGg6dCsxfSwoZSxvKT0+QXJyYXkuZnJvbSh7bGVuZ3RoOm59LChlLG4pPT57bGV0IHM9bz4wP2lbby0xXT8uW25dPz8tMTotMSxjPW88dD9pW29dPy5bbl0/Py0xOi0xO2lmKHM+PTAmJnM9PT1jKXJldHVybiBudWxsO2xldCBsPWEoYyksdT1vPT09MD9gdG9wYDpvPT09dD9gYm90dG9tYDpgYmV0d2VlbmA7cmV0dXJue2Fib3ZlOntvd25lcjpyW3NdPz9udWxsLGJvcmRlcjphKHMsITApPy5ib3R0b20/P251bGx9LGJlbG93Ontvd25lcjpyW2NdPz9udWxsLGJvcmRlcjpsPy50b3A/P251bGx9LGVkZ2U6dX19KSksdmVydGljYWw6QXJyYXkuZnJvbSh7bGVuZ3RoOm4rMX0sKHIsbyk9PkFycmF5LmZyb20oe2xlbmd0aDp0fSwodCxyKT0+e2xldCBzPW8+MD9pW3JdPy5bby0xXT8/LTE6LTEsYz1vPG4/aVtyXT8uW29dPz8tMTotMSxsPWUuYmlkaVZpc3VhbD9jOnMsdT1lLmJpZGlWaXN1YWw/czpjO3JldHVybiBsPj0wJiZsPT09dT9udWxsOkpQKGEobCk/LnJpZ2h0Pz9udWxsLGEodSk/LmxlZnQ/P251bGwsbz09PTA/ZS5iaWRpVmlzdWFsP2ByaWdodGA6YGxlZnRgOm89PT1uP2UuYmlkaVZpc3VhbD9gbGVmdGA6YHJpZ2h0YDpgYmV0d2VlbmApfSkpLG9jY3VwYW5jeTppfX1mdW5jdGlvbiBRUChlLHQpe3JldHVybiB0Lmhvcml6b250YWwubWFwKCh0LG4pPT56UChlLnJvd3Nbbi0xXSk+MHx8elAoZS5yb3dzW25dKT4wPzA6dC5yZWR1Y2UoKGUsdCk9PntpZighdClyZXR1cm4gZTtsZXQgbj1KUCh0LmFib3ZlLmJvcmRlcix0LmJlbG93LmJvcmRlcix0LmVkZ2UpO3JldHVybiBNYXRoLm1heChlLG4/LmJvcmRlci53aWR0aFB0Pz8wKX0sMCkpfWZ1bmN0aW9uICRQKGUsdCl7bGV0IG49UVAoZSx0KTtyZXR1cm4gZS5yb3dzLm1hcCgoZSx0KT0+ZS5oZWlnaHRSdWxlPT09YGV4YWN0YD8wOl9QKG5bdF0/PzAsblt0KzFdPz8wKSl9ZnVuY3Rpb24gZUYoZSl7cmV0dXJuICRQKGUsWlAoZSkpfWZ1bmN0aW9uIHRGKGUsdCxuKXtyZXR1cm57ZWRnZTplLmVkZ2UsZnJvbTp0LHRvOm4sY29sb3I6ZS5ib3JkZXIuY29sb3Isd2lkdGhQdDplLmJvcmRlci53aWR0aFB0LC4uLkN2KGUuYm9yZGVyLmF1dGhvcmVkU3R5bGUsZS5ib3JkZXIud2lkdGhQdCl9fWNvbnN0IG5GPU9iamVjdC5mcmVlemUoe3RvcDpudWxsLHJpZ2h0Om51bGwsYm90dG9tOm51bGwsbGVmdDpudWxsLGluc2lkZUg6bnVsbCxpbnNpZGVWOm51bGx9KTtmdW5jdGlvbiByRihlKXtsZXQgdD1xUChlKTtyZXR1cm4gdCYmdC5hdXRob3JlZFN0eWxlIT09YG5pbGAmJnQuYXV0aG9yZWRTdHlsZSE9PWBub25lYD90Om51bGx9ZnVuY3Rpb24gaUYoZSx0LG4scixpKXtsZXQgYT1bMF07Zm9yKGxldCB0IG9mIGUuY29sdW1uV2lkdGhzUHQpYS5wdXNoKChhLmF0KC0xKT8/MCkrdCk7bGV0IG89WzBdO2ZvcihsZXQgZSBvZiByKW8ucHVzaCgoby5hdCgtMSk/PzApK2UpO2xldCBzPWEuYXQoLTEpPz8wLGM9KG4scik9Pih0W25dPz8wKSsoZS5iaWRpVmlzdWFsP3MtKGFbcl0/PzApOmFbcl0/PzApLGw9ZT0+bisob1tlXT8/MCksdT1bXSxkPShlLHQsbixyKT0+eyFlfHxlLmF1dGhvcmVkU3R5bGU9PT1gbmlsYHx8ZS5hdXRob3JlZFN0eWxlPT09YG5vbmVgfHx1LnB1c2godEYoe2JvcmRlcjplLGVkZ2U6dH0sbixyKSl9LGY9bmV3IFNldCxwPSh0LG4scixpKT0+e2xldCBhPXQub3duZXI7aWYoIWEpcmV0dXJuO2xldCBvPWAke259OiR7cn06JHthLmlucHV0LmlkfWA7aWYoZi5oYXMobykpcmV0dXJuO2YuYWRkKG8pO2xldCBzPWUucm93c1thLnJvd0luZGV4XTtpZighcylyZXR1cm47bGV0IHU9elAocykscD1jKGEucm93SW5kZXgsYS5pbnB1dC5jb2x1bW5TdGFydCksbT1jKGEucm93SW5kZXgsTWF0aC5taW4oZS5jb2x1bW5XaWR0aHNQdC5sZW5ndGgsYS5pbnB1dC5jb2x1bW5TdGFydCthLmlucHV0LmNvbHVtblNwYW4pKSx7c3RhcnRQdDpoLGVuZFB0Omd9PUpOKHUsYS5pbnB1dC5jb2x1bW5TdGFydCxhLmlucHV0LmNvbHVtblNwYW4sZS5jb2x1bW5XaWR0aHNQdC5sZW5ndGgpLF89TWF0aC5taW4ocCxtKSsoZS5iaWRpVmlzdWFsP2c6aCksdj1NYXRoLm1heChwLG0pLShlLmJpZGlWaXN1YWw/aDpnKSx5PWwoYS5yb3dJbmRleCkrQlAoZS5yb3dzLGEucm93SW5kZXgpLnRvcFB0LGI9bChhLmxhc3RSb3dJbmRleCsxKS1CUChlLnJvd3MsYS5sYXN0Um93SW5kZXgpLmJvdHRvbVB0LHg9S1AoYS5pbnB1dCxuRixudWxsLGEucm93SW5kZXgsYS5sYXN0Um93SW5kZXgsZS5yb3dzLmxlbmd0aCxlLmNvbHVtbldpZHRoc1B0Lmxlbmd0aCxlLmJpZGlWaXN1YWwpLFM9cj09PWB0b3BgP3gudG9wOnguYm90dG9tLEM9cj09PWB0b3BgP3k6YjtkKHJGKFMpLGkse3hQdDpfLHlQdDpDfSx7eFB0OnYseVB0OkN9KX07cmV0dXJuIGkuaG9yaXpvbnRhbC5mb3JFYWNoKChuLHIpPT57bGV0IGE9cj4wJiZ6UChlLnJvd3Nbci0xXSk+MCxvPXI8ZS5yb3dzLmxlbmd0aCYmelAoZS5yb3dzW3JdKT4wO2lmKGF8fG8pe2xldCBhPU1hdGgubWF4KHpQKGUucm93c1tyLTFdKSx6UChlLnJvd3Nbcl0pKSx1PW8/cjpyLTEsZj10W3VdPz8wLG09cj09PTA/YHRvcGA6cj09PWUucm93cy5sZW5ndGg/YGJvdHRvbWA6YGJldHdlZW5gO3I9PT0wfHxyPT09ZS5yb3dzLmxlbmd0aD9kKFBQKHI9PT0wP2Uucm93c1swXT8uZXhjZXB0aW9uQm9yZGVycz8udG9wPz9udWxsOmUucm93cy5hdCgtMSk/LmV4Y2VwdGlvbkJvcmRlcnM/LmJvdHRvbT8/bnVsbCxyPT09MD9lLmJvcmRlcnMudG9wOmUuYm9yZGVycy5ib3R0b20pLG0se3hQdDpmLHlQdDpsKHIpfSx7eFB0OmYrcyx5UHQ6bChyKX0pOm4uZm9yRWFjaCgodCxuKT0+e2xldCBvPWkub2NjdXBhbmN5W3ItMV0/LltuXT8/LTEscz1pLm9jY3VwYW5jeVtyXT8uW25dPz8tMTtpZighdHx8IShvIT09cyYmKG8+PTB8fHM+PTApKXx8W3tzaWRlOnQuYWJvdmUsZGlyZWN0RWRnZTpgYm90dG9tYH0se3NpZGU6dC5iZWxvdyxkaXJlY3RFZGdlOmB0b3BgfV0uc29tZSgoe3NpZGU6ZSxkaXJlY3RFZGdlOnR9KT0+e2xldCBuPWUub3duZXI7cmV0dXJuIG4/YlAoe3NwYWNpbmdQdDphLGRpcmVjdFN0eWxlOm4uaW5wdXQuYm9yZGVyc1t0XT8uYXV0aG9yZWRTdHlsZSxjb25kaXRpb25hbEluc2lkZVN0eWxlOm4uaW5wdXQuYm9yZGVycy5pbnNpZGVIPy5hdXRob3JlZFN0eWxlfSk6ITF9KSlyZXR1cm47bGV0IGY9Yyh1LG4pLHA9Yyh1LG4rMSksaD1QUChlLnJvd3Nbci0xXT8uZXhjZXB0aW9uQm9yZGVycz8uaW5zaWRlSD8/bnVsbCxlLmJvcmRlcnMuaW5zaWRlSCksZz1QUChlLnJvd3Nbcl0/LmV4Y2VwdGlvbkJvcmRlcnM/Lmluc2lkZUg/P251bGwsZS5ib3JkZXJzLmluc2lkZUgpO2QoSlAoR1AoaCxgdGFibGVgKSxHUChnLGB0YWJsZWApLG0pPy5ib3JkZXI/P251bGwsbSx7eFB0Ok1hdGgubWluKGYscCkseVB0Omwocil9LHt4UHQ6TWF0aC5tYXgoZixwKSx5UHQ6bChyKX0pfSksbi5mb3JFYWNoKGU9PntlJiYocChlLmFib3ZlLHIsYGJvdHRvbWAsZS5lZGdlKSxwKGUuYmVsb3cscixgdG9wYCxlLmVkZ2UpKX0pO3JldHVybn1sZXQgZj1bXSxtPW5ldyBNYXA7bi5mb3JFYWNoKHQ9PntpZighdClyZXR1cm47bGV0IG49KHQsbik9PntpZighbi5vd25lcnx8IW4uYm9yZGVyKXJldHVybjtsZXQgcj1gJHt0fToke24ub3duZXIuaW5wdXQuaWR9YDtpZihtLmhhcyhyKSlyZXR1cm47bGV0IGk9YyhuLm93bmVyLnJvd0luZGV4LG4ub3duZXIuaW5wdXQuY29sdW1uU3RhcnQpLGE9YyhuLm93bmVyLnJvd0luZGV4LE1hdGgubWluKGUuY29sdW1uV2lkdGhzUHQubGVuZ3RoLG4ub3duZXIuaW5wdXQuY29sdW1uU3RhcnQrbi5vd25lci5pbnB1dC5jb2x1bW5TcGFuKSk7bS5zZXQocix7c2lkZTp0LGJvcmRlcjpuLmJvcmRlcixsZWZ0UHQ6TWF0aC5taW4oaSxhKSxyaWdodFB0Ok1hdGgubWF4KGksYSl9KX07bihgYWJvdmVgLHQuYWJvdmUpLG4oYGJlbG93YCx0LmJlbG93KX0pO2xldCBoPVsuLi5tLnZhbHVlcygpXSxnPVsuLi5uZXcgU2V0KGguZmxhdE1hcChlPT5bZS5sZWZ0UHQsZS5yaWdodFB0XSkpXS5zb3J0KChlLHQpPT5lLXQpLF89cj09PTA/YHRvcGA6cj09PWUucm93cy5sZW5ndGg/YGJvdHRvbWA6YGJldHdlZW5gO2ZvcihsZXQgZT0xO2U8Zy5sZW5ndGg7ZSs9MSl7bGV0IHQ9Z1tlLTFdPz8wLG49Z1tlXT8/dDtpZihuPD10KWNvbnRpbnVlO2xldCByPSh0K24pLzIsaT1oLmZpbHRlcihlPT5yPmUubGVmdFB0JiZyPGUucmlnaHRQdCksYT1KUChpLmZpbmQoZT0+ZS5zaWRlPT09YGFib3ZlYCk/LmJvcmRlcj8/bnVsbCxpLmZpbmQoZT0+ZS5zaWRlPT09YGJlbG93YCk/LmJvcmRlcj8/bnVsbCxfKTthJiZmLnB1c2goe3Jlc29sdmVkOmEsbGVmdFB0OnQscmlnaHRQdDpufSl9Zi5zb3J0KChlLHQpPT5lLmxlZnRQdC10LmxlZnRQdCk7bGV0IHY9W107Zm9yKGxldCBlIG9mIGYpe2xldCB0PXYuYXQoLTEpO3QmJnQucmlnaHRQdD09PWUubGVmdFB0JiZ0LnJlc29sdmVkLmVkZ2U9PT1lLnJlc29sdmVkLmVkZ2UmJnQucmVzb2x2ZWQuYm9yZGVyLndpZHRoUHQ9PT1lLnJlc29sdmVkLmJvcmRlci53aWR0aFB0JiZ0LnJlc29sdmVkLmJvcmRlci5jb2xvcj09PWUucmVzb2x2ZWQuYm9yZGVyLmNvbG9yJiZ0LnJlc29sdmVkLmJvcmRlci5hdXRob3JlZFN0eWxlPT09ZS5yZXNvbHZlZC5ib3JkZXIuYXV0aG9yZWRTdHlsZT90LnJpZ2h0UHQ9ZS5yaWdodFB0OnYucHVzaCh7Li4uZX0pfWZvcihsZXQgZSBvZiB2KXUucHVzaCh0RihlLnJlc29sdmVkLHt4UHQ6ZS5sZWZ0UHQseVB0Omwocil9LHt4UHQ6ZS5yaWdodFB0LHlQdDpsKHIpfSkpfSksaS52ZXJ0aWNhbC5mb3JFYWNoKCh0LG4pPT57dC5mb3JFYWNoKCh0LHIpPT57elAoZS5yb3dzW3JdKT4wfHx0JiZ1LnB1c2godEYodCx7eFB0OmMocixuKSx5UHQ6bChyKX0se3hQdDpjKHIsbikseVB0OmwocisxKX0pKX0pfSksZS5yb3dzLmZvckVhY2goKG4scik9PntsZXQgYT16UChuKTtpZihhPD0wKXJldHVybjtsZXQgbz1sKHIpLHU9bChyKzEpLGY9dFtyXT8/MDtkKFBQKG4uZXhjZXB0aW9uQm9yZGVycz8ubGVmdD8/bnVsbCxlLmJvcmRlcnMubGVmdCksYGxlZnRgLHt4UHQ6Zix5UHQ6b30se3hQdDpmLHlQdDp1fSksZChQUChuLmV4Y2VwdGlvbkJvcmRlcnM/LnJpZ2h0Pz9udWxsLGUuYm9yZGVycy5yaWdodCksYHJpZ2h0YCx7eFB0OmYrcyx5UHQ6b30se3hQdDpmK3MseVB0OnV9KTtsZXQgcD1uZXcgU2V0O2ZvcihsZXQgZSBvZiBuLmNlbGxzKWJQKHtzcGFjaW5nUHQ6YSxkaXJlY3RTdHlsZTplLmJvcmRlcnMubGVmdD8uYXV0aG9yZWRTdHlsZSxjb25kaXRpb25hbEluc2lkZVN0eWxlOmUuYm9yZGVycy5pbnNpZGVWPy5hdXRob3JlZFN0eWxlfSkmJnAuYWRkKGUuY29sdW1uU3RhcnQpLGJQKHtzcGFjaW5nUHQ6YSxkaXJlY3RTdHlsZTplLmJvcmRlcnMucmlnaHQ/LmF1dGhvcmVkU3R5bGUsY29uZGl0aW9uYWxJbnNpZGVTdHlsZTplLmJvcmRlcnMuaW5zaWRlVj8uYXV0aG9yZWRTdHlsZX0pJiZwLmFkZChlLmNvbHVtblN0YXJ0K2UuY29sdW1uU3Bhbik7Zm9yKGxldCB0PTE7dDxlLmNvbHVtbldpZHRoc1B0Lmxlbmd0aDt0Kz0xKXtsZXQgYT1pLm9jY3VwYW5jeVtyXT8uW3QtMV0/Py0xLHM9aS5vY2N1cGFuY3lbcl0/Llt0XT8/LTE7aWYoIShhIT09cyYmKGE+PTB8fHM+PTApKSljb250aW51ZTtsZXQgbD1jKHIsdCk7cC5oYXModCl8fGQoUFAobi5leGNlcHRpb25Cb3JkZXJzPy5pbnNpZGVWPz9udWxsLGUuYm9yZGVycy5pbnNpZGVWKSxgYmV0d2VlbmAse3hQdDpsLHlQdDpvfSx7eFB0OmwseVB0OnV9KX1mb3IobGV0IHQgb2Ygbi5jZWxscyl7aWYodC52ZXJ0aWNhbE1lcmdlPT09YGNvbnRpbnVlYCljb250aW51ZTtsZXQgbj10LnZlcnRpY2FsTWVyZ2U9PT1gcmVzdGFydGA/SFAoZS5yb3dzLHIsdC5jb2x1bW5TdGFydCx0LmNvbHVtblNwYW4pOnIsaT1jKHIsdC5jb2x1bW5TdGFydCksbz1jKHIsTWF0aC5taW4oZS5jb2x1bW5XaWR0aHNQdC5sZW5ndGgsdC5jb2x1bW5TdGFydCt0LmNvbHVtblNwYW4pKSx7c3RhcnRQdDpzLGVuZFB0OnV9PUpOKGEsdC5jb2x1bW5TdGFydCx0LmNvbHVtblNwYW4sZS5jb2x1bW5XaWR0aHNQdC5sZW5ndGgpLGY9TWF0aC5taW4oaSxvKSsoZS5iaWRpVmlzdWFsP3U6cykscD1NYXRoLm1heChpLG8pLShlLmJpZGlWaXN1YWw/czp1KSxtPWwocikrQlAoZS5yb3dzLHIpLnRvcFB0LGg9bChuKzEpLUJQKGUucm93cyxuKS5ib3R0b21QdCxnPUtQKHQsbkYsbnVsbCxyLG4sZS5yb3dzLmxlbmd0aCxlLmNvbHVtbldpZHRoc1B0Lmxlbmd0aCxlLmJpZGlWaXN1YWwpO2QockYoZy5yaWdodCksYHJpZ2h0YCx7eFB0OnAseVB0Om19LHt4UHQ6cCx5UHQ6aH0pLGQockYoZy5sZWZ0KSxgbGVmdGAse3hQdDpmLHlQdDptfSx7eFB0OmYseVB0Omh9KX19KSx1fWZ1bmN0aW9uIGFGKGUsdCxuLHIsaSl7bGV0IGE9ci5hdmFpbGFibGVCb3VuZHMsbz1lPT09YGNlbnRlcmA/YS54UHQrKGEud2lkdGhQdC1pKS8yOmU9PT1gcmlnaHRgP2EueFB0K2Eud2lkdGhQdC1pOmEueFB0O3JldHVybiB0PT09MD9vOnlQKG8sdCxuKX1mdW5jdGlvbiBvRihlLHQpe2lmKHQubGVuZ3RoPT09MClyZXR1cm4gZTtsZXQgbj1NYXRoLm1pbihlLnhQdCwuLi50Lm1hcChlPT5NYXRoLm1pbihlLmZyb20ueFB0LGUudG8ueFB0KS1lLndpZHRoUHQvMikpLHI9TWF0aC5taW4oZS55UHQsLi4udC5tYXAoZT0+TWF0aC5taW4oZS5mcm9tLnlQdCxlLnRvLnlQdCktZS53aWR0aFB0LzIpKSxpPU1hdGgubWF4KGUueFB0K2Uud2lkdGhQdCwuLi50Lm1hcChlPT5NYXRoLm1heChlLmZyb20ueFB0LGUudG8ueFB0KStlLndpZHRoUHQvMikpLGE9TWF0aC5tYXgoZS55UHQrZS5oZWlnaHRQdCwuLi50Lm1hcChlPT5NYXRoLm1heChlLmZyb20ueVB0LGUudG8ueVB0KStlLndpZHRoUHQvMikpO3JldHVybnt4UHQ6bix5UHQ6cix3aWR0aFB0OmktbixoZWlnaHRQdDphLXJ9fWZ1bmN0aW9uIHNGKGUpe2xldCB0PW5ldyBNYXA7ZS5mb3JFYWNoKChlLG4pPT57aWYoZS5zdHlsZSE9PWBjb21wb3VuZGB8fCFlLmVkZ2V8fGUuZWRnZT09PWBiZXR3ZWVuYClyZXR1cm47bGV0IHI9YCR7ZS5hdXRob3JlZFN0eWxlfVx1MDAwMCR7ZS5jb2xvcn1cdTAwMDAke2Uud2lkdGhQdH1gLGk9dC5nZXQocik/P1tdO2kucHVzaCh7Ym9yZGVyOmUsaW5kZXg6bn0pLHQuc2V0KHIsaSl9KTtsZXQgbj1bXTtmb3IobGV0IGUgb2YgdC52YWx1ZXMoKSl7bGV0IHQ9dD0+ZS5maWx0ZXIoZT0+ZS5ib3JkZXIuZWRnZT09PXQpLHI9dChgdG9wYCksaT10KGByaWdodGApLGE9dChgYm90dG9tYCksbz10KGBsZWZ0YCk7aWYoIXIubGVuZ3RofHwhaS5sZW5ndGh8fCFhLmxlbmd0aHx8IW8ubGVuZ3RoKWNvbnRpbnVlO2xldCBzPU1hdGgubWluKC4uLnIuZmxhdE1hcCgoe2JvcmRlcjplfSk9PltlLmZyb20ueFB0LGUudG8ueFB0XSkpLGM9TWF0aC5tYXgoLi4uci5mbGF0TWFwKCh7Ym9yZGVyOmV9KT0+W2UuZnJvbS54UHQsZS50by54UHRdKSksbD1yWzBdLmJvcmRlci5mcm9tLnlQdCx1PWFbMF0uYm9yZGVyLmZyb20ueVB0LGQ9KGUsdCxuLHIpPT57bGV0IGk9ZS5tYXAoKHtib3JkZXI6ZX0pPT5yKGUpKS5tYXAoKFtlLHRdKT0+W01hdGgubWluKGUsdCksTWF0aC5tYXgoZSx0KV0pLnNvcnQoKGUsdCk9PmVbMF0tdFswXSk7aWYoaVswXT8uWzBdIT09dClyZXR1cm4hMTtsZXQgYT10O2ZvcihsZXQgZSBvZiBpKXtpZihlWzBdPmEpcmV0dXJuITE7YT1NYXRoLm1heChhLGVbMV0pfXJldHVybiBhPT09bn07aWYoIShyLmV2ZXJ5KCh7Ym9yZGVyOmV9KT0+ZS5mcm9tLnlQdD09PWwmJmUudG8ueVB0PT09bCkmJmEuZXZlcnkoKHtib3JkZXI6ZX0pPT5lLmZyb20ueVB0PT09dSYmZS50by55UHQ9PT11KSYmby5ldmVyeSgoe2JvcmRlcjplfSk9PmUuZnJvbS54UHQ9PT1zJiZlLnRvLnhQdD09PXMpJiZpLmV2ZXJ5KCh7Ym9yZGVyOmV9KT0+ZS5mcm9tLnhQdD09PWMmJmUudG8ueFB0PT09YykmJmQocixzLGMsZT0+W2UuZnJvbS54UHQsZS50by54UHRdKSYmZChhLHMsYyxlPT5bZS5mcm9tLnhQdCxlLnRvLnhQdF0pJiZkKG8sbCx1LGU9PltlLmZyb20ueVB0LGUudG8ueVB0XSkmJmQoaSxsLHUsZT0+W2UuZnJvbS55UHQsZS50by55UHRdKSkpY29udGludWU7bGV0IGY9ZVswXS5ib3JkZXI7bi5wdXNoKHtib3VuZHM6e3hQdDpzLHlQdDpsLHdpZHRoUHQ6Yy1zLGhlaWdodFB0OnUtbH0sYm9yZGVyOnthdXRob3JlZFN0eWxlOmYuYXV0aG9yZWRTdHlsZSxjb2xvcjpmLmNvbG9yLHdpZHRoUHQ6Zi53aWR0aFB0LHN0eWxlOmYuc3R5bGV9LHNlZ21lbnRJbmRleGVzOmUubWFwKCh7aW5kZXg6ZX0pPT5lKX0pfXJldHVybiBufWZ1bmN0aW9uIGNGKGUsdCl7bGV0IG49TWF0aC5tYXgoZS54UHQsdC54UHQpLHI9TWF0aC5tYXgoZS55UHQsdC55UHQpLGk9TWF0aC5taW4oZS54UHQrZS53aWR0aFB0LHQueFB0K3Qud2lkdGhQdCksYT1NYXRoLm1pbihlLnlQdCtlLmhlaWdodFB0LHQueVB0K3QuaGVpZ2h0UHQpO3JldHVybiBpPm4mJmE+cj97eFB0Om4seVB0OnIsd2lkdGhQdDppLW4saGVpZ2h0UHQ6YS1yfTpudWxsfWZ1bmN0aW9uIGxGKGUsdCxuKXtsZXQgcj1lLmxheW91dCxpPXQrKHIua2luZD09PWB0YWJsZWA/ci5mbG93Qm91bmRzLnhQdDowKSxhPW4rZS5vZmZzZXRQdCsoci5raW5kPT09YHRhYmxlYD9yLmZsb3dCb3VuZHMueVB0OjApLG89aS1yLmZsb3dCb3VuZHMueFB0LHM9YS1yLmZsb3dCb3VuZHMueVB0O3JldHVybnt4UHQ6ci5pbmtCb3VuZHMueFB0K28seVB0OnIuaW5rQm91bmRzLnlQdCtzLHdpZHRoUHQ6ci5pbmtCb3VuZHMud2lkdGhQdCxoZWlnaHRQdDpyLmlua0JvdW5kcy5oZWlnaHRQdH19ZnVuY3Rpb24gdUYoZSx0LG4pe2xldCByPUlnKGUsYFRhYmxlTGF5b3V0SW5wdXRgKTtpZihyLmNvbHVtbldpZHRoc1B0LnNvbWUoZT0+IU51bWJlci5pc0Zpbml0ZShlKXx8ZTwwKSl0aHJvdyBUeXBlRXJyb3IoYFRhYmxlTGF5b3V0SW5wdXQuY29sdW1uV2lkdGhzUHQgbXVzdCBjb250YWluIGZpbml0ZSBub24tbmVnYXRpdmUgd2lkdGhzYCk7bGV0IGk9bmV3IE1hcDtyLnJvd3MuZm9yRWFjaChlPT5lLmNlbGxzLmZvckVhY2goZT0+e2kuc2V0KGUuaWQsSVAoZS52ZXJ0aWNhbE1lcmdlPT09YGNvbnRpbnVlYD9bXTplLmJsb2NrcykpfSkpO2xldCBhPVpQKHIpLG89V1Aoci5yb3dzLGksJFAocixhKSkscz1vLmhlaWdodHMsYz1yLmNvbHVtbldpZHRoc1B0LnJlZHVjZSgoZSx0KT0+ZSt0LDApLGw9cy5yZWR1Y2UoKGUsdCk9PmUrdCwwKSx1PXQuY3Vyc29yLnlQdCxkPXIucm93cy5tYXAoZT0+YUYoZS5hbGlnbm1lbnQ/P3IuYWxpZ25tZW50LE51bWJlci5pc0Zpbml0ZShlLmluZGVudFB0KT9lLmluZGVudFB0OnIuaW5kZW50UHQsci5iaWRpVmlzdWFsLHQsYykpLGY9ZFswXT8/YUYoci5hbGlnbm1lbnQsci5pbmRlbnRQdCxyLmJpZGlWaXN1YWwsdCxjKSxwPWlGKHIsZCx1LHMsYSksbT1zRihwKSxoPVswXTtmb3IobGV0IGUgb2Ygci5jb2x1bW5XaWR0aHNQdCloLnB1c2goKGguYXQoLTEpPz8wKStlKTtsZXQgZz1bMF07Zm9yKGxldCBlIG9mIHMpZy5wdXNoKChnLmF0KC0xKT8/MCkrZSk7bGV0IF89KGUsdCk9PihkW2VdPz9mKSsoci5iaWRpVmlzdWFsP2MtKGhbdF0/PzApOmhbdF0/PzApLHY9ci5yb3dzLm1hcCgoZSxuKT0+e2xldCBhPXUrKGdbbl0/PzApLGw9c1tuXT8/MCxwPWRbbl0/P2YsbT1CUChyLnJvd3MsbiksaD16UChlKSx2PWUuY2VsbHMubWFwKGU9PntsZXQgbz1lLnZlcnRpY2FsTWVyZ2U9PT1gcmVzdGFydGA/SFAoci5yb3dzLG4sZS5jb2x1bW5TdGFydCxlLmNvbHVtblNwYW4pOm4scz1CUChyLnJvd3MsbyksYz11KyhnW28rMV0/P2dbbisxXT8/MCktcy5ib3R0b21QdCxkPV8obixlLmNvbHVtblN0YXJ0KSxmPV8obixNYXRoLm1pbihyLmNvbHVtbldpZHRoc1B0Lmxlbmd0aCxlLmNvbHVtblN0YXJ0K2UuY29sdW1uU3BhbikpLHA9TWF0aC5taW4oZCxmKSx2PU1hdGgubWF4KGQsZikse3N0YXJ0UHQ6eSxlbmRQdDpifT1KTihoLGUuY29sdW1uU3RhcnQsZS5jb2x1bW5TcGFuLHIuY29sdW1uV2lkdGhzUHQubGVuZ3RoKSx4PXArKHIuYmlkaVZpc3VhbD9iOnkpLFM9di0oci5iaWRpVmlzdWFsP3k6YiksQz1NYXRoLm1heCgwLFMteCksdz1hK20udG9wUHQsVD1lLnZlcnRpY2FsTWVyZ2U9PT1gcmVzdGFydGA/TWF0aC5tYXgoMCxjLXcpOk1hdGgubWF4KDAsbC1tLnRvcFB0LW0uYm90dG9tUHQpLEU9aS5nZXQoZS5pZCk/P0lQKFtdKSxEPU1hdGgubWF4KDAsVC1lLm1hcmdpbnMudG9wUHQtZS5tYXJnaW5zLmJvdHRvbVB0KSxPPWUubWFyZ2lucy50b3BQdC1NYXRoLm1pbigwLEUuaW5rVG9wUHQpLGs9RS5pbmtIZWlnaHRQdD49RD9POmUudkFsaWduPT09YGNlbnRlcmA/ZS5tYXJnaW5zLnRvcFB0KyhELUUuaW5rSGVpZ2h0UHQpLzItRS5pbmtUb3BQdDplLnZBbGlnbj09PWBib3R0b21gP1QtZS5tYXJnaW5zLmJvdHRvbVB0LUUuaW5rSGVpZ2h0UHQtRS5pbmtUb3BQdDpPLEE9e3hQdDp4K2UubWFyZ2lucy5sZWZ0UHQseVB0Oncrayx3aWR0aFB0Ok1hdGgubWF4KDAsQy1lLm1hcmdpbnMubGVmdFB0LWUubWFyZ2lucy5yaWdodFB0KSxoZWlnaHRQdDpEfSxqPXt4UHQ6eCx5UHQ6dyx3aWR0aFB0OkMsaGVpZ2h0UHQ6VH0sTT1lLnZlcnRpY2FsTWVyZ2UhPT1gY29udGludWVgJiZyLnJvd3Muc2xpY2UobixvKzEpLmV2ZXJ5KGU9PmUuaGVpZ2h0UnVsZT09PWBleGFjdGApP3hQKGosdC5hdmFpbGFibGVCb3VuZHMpOnZvaWQgMCxOPWUudmVydGljYWxNZXJnZT09PWBjb250aW51ZWA/W106RS5ibG9ja3MubWFwKGU9Pih7Li4uZSxvZmZzZXRQdDprK2Uub2Zmc2V0UHR9KSksUD1DdyhbaiwuLi5OLm1hcChlPT5sRihlLEEueFB0LGoueVB0KSkubWFwKGU9Pk0/Y0YoZSxNKTplKS5maWx0ZXIoZT0+ZSE9PW51bGwpXSk/P2o7cmV0dXJue2tpbmQ6YHRhYmxlLWNlbGxgLGlkOmUuaWQsc291cmNlOmUuc291cmNlLGZsb3dEb21haW5JZDpyLmZsb3dEb21haW5JZCxvcmRpbmFyeUZsb3c6ci5vcmRpbmFyeUZsb3csZmxvd0JvdW5kczpqLGlua0JvdW5kczpQLC4uLk0/e2NsaXBCb3VuZHM6TX06e30sY29udGVudEJvdW5kczpBLGFkdmFuY2VQdDpULHZlcnRpY2FsTWVyZ2U6ZS52ZXJ0aWNhbE1lcmdlLHZBbGlnbjplLnZBbGlnbiwuLi5lLmJhY2tncm91bmQ/e2JhY2tncm91bmQ6ZS5iYWNrZ3JvdW5kfTp7fSxibG9ja3M6Tn19KSx5PXt4UHQ6cCx5UHQ6YSx3aWR0aFB0OmMsaGVpZ2h0UHQ6bH0sYj1DdyhbeSwuLi52Lm1hcChlPT5lLmlua0JvdW5kcyldKT8/eTtyZXR1cm57a2luZDpgdGFibGUtcm93YCxpZDplLmlkLHNvdXJjZTplLnNvdXJjZSxmbG93RG9tYWluSWQ6ci5mbG93RG9tYWluSWQsb3JkaW5hcnlGbG93OnIub3JkaW5hcnlGbG93LGZsb3dCb3VuZHM6eSxpbmtCb3VuZHM6YixhZHZhbmNlUHQ6bCxoZWlnaHRQdDpsLGNvbnRlbnRIZWlnaHRQdDpvLmNvbnRlbnRIZWlnaHRzW25dPz8wLC4uLmUucmVwZWF0ZWRIZWFkZXI/e3JlcGVhdGVkSGVhZGVyOiEwfTp7fSxjZWxsczp2fX0pLHk9ZC5sZW5ndGg+MD9NYXRoLm1pbiguLi5kKTpmLGI9ZC5sZW5ndGg+MD9NYXRoLm1heCguLi5kLm1hcChlPT5lK2MpKTpmK2MseD17eFB0OnkseVB0OnUsd2lkdGhQdDpNYXRoLm1heCgwLGIteSksaGVpZ2h0UHQ6bH0sUz1DdyhbeCwuLi52Lm1hcChlPT5lLmlua0JvdW5kcyldKT8/eDtyZXR1cm4gSWcoe2xheW91dDp7a2luZDpgdGFibGVgLGlkOnIuaWQsc291cmNlOnIuc291cmNlLGZsb3dEb21haW5JZDpyLmZsb3dEb21haW5JZCxvcmRpbmFyeUZsb3c6ci5vcmRpbmFyeUZsb3csZmxvd0JvdW5kczp4LGlua0JvdW5kczpvRihTLHApLGFkdmFuY2VQdDpsLGNvbHVtbldpZHRoc1B0OnIuY29sdW1uV2lkdGhzUHQscm93czp2LGJvcmRlcnM6cCwuLi5tLmxlbmd0aD97Y29tcG91bmRCb3JkZXJGcmFtZXM6bX06e319LG5leHRDdXJzb3I6e3hQdDp0LmN1cnNvci54UHQseVB0OnQuY3Vyc29yLnlQdCtsfX0sYFRhYmxlTGF5b3V0UmVzdWx0YCl9ZnVuY3Rpb24gZEYoZSx0KXtsZXQgbj1lLmZpbmRJbmRleCgoZSxuKT0+bj50JiZlLnR5cGU9PT1gcGFyYWdyYXBoYCYmZS5mcmFtZVByPT1udWxsKTtpZihuPDApdGhyb3cgRXJyb3IoYEEgbmVzdGVkIGZsb2F0aW5nIHRhYmxlIHJlcXVpcmVzIGEgZm9sbG93aW5nIHJlZ3VsYXIgcGFyYWdyYXBoIGFuY2hvcmApO3JldHVybiBufWZ1bmN0aW9uIGZGKGUpe2lmKCFlKXJldHVybiBudWxsO2xldCB0PWUuY29sb3I/P2AwMDAwMDBgO3JldHVybiBPYmplY3QuZnJlZXplKHt3aWR0aFB0OmUud2lkdGgsY29sb3I6dC5zdGFydHNXaXRoKGAjYCk/dDpgIyR7dH1gLGF1dGhvcmVkU3R5bGU6ZS5zdHlsZX0pfWZ1bmN0aW9uIHBGKGUpe3JldHVybiBPYmplY3QuZnJlZXplKHt0b3A6ZkYoZS50b3ApLHJpZ2h0OmZGKGUucmlnaHQpLGJvdHRvbTpmRihlLmJvdHRvbSksbGVmdDpmRihlLmxlZnQpLGluc2lkZUg6ZkYoZS5pbnNpZGVIKSxpbnNpZGVWOmZGKGUuaW5zaWRlVil9KX1mdW5jdGlvbiBtRihlLHQpe2lmKGU9PT1gY2VudGVyYClyZXR1cm5gY2VudGVyYDtsZXQgbj1lPT09YHJpZ2h0YHx8ZT09PWBlbmRgO3JldHVybih0PyFuOm4pP2ByaWdodGA6YGxlZnRgfWZ1bmN0aW9uIGhGKGUpe3JldHVybiBlLmxpbmVzLnNvbWUoZT0+ZS5wbGFjZW1lbnRzLnNvbWUoZT0+ZS5raW5kPT09YHRleHRgJiZlLmRlcGVuZGVuY3k9PT1gcGFnZWApKX1mdW5jdGlvbiBnRihlLHQsbixyLGksYSl7bGV0IG89QXJyYXkuaXNBcnJheShpKT97c3Rvcnk6YGJvZHlgLHN0b3J5SW5zdGFuY2U6YGJvZHlgLHBhdGg6aX06aSxzPW8ucGF0aCxjPWU9Pih7c3Rvcnk6by5zdG9yeSxzdG9yeUluc3RhbmNlOm8uc3RvcnlJbnN0YW5jZSxwYXRoOmV9KSxsPWEubGF5b3V0U2VydmljZXMocik7aWYoIWwpdGhyb3cgRXJyb3IoYFJldGFpbmVkIHRhYmxlIGFjcXVpc2l0aW9uIHJlcXVpcmVzIGxheW91dCBzZXJ2aWNlc2ApO2xldCB1PW8uc3Rvcnk9PT1gYm9keWAmJm8uc3RvcnlJbnN0YW5jZT09PWBib2R5YD9gdGFibGU6JHtzLmpvaW4oYC5gKX1gOmAke28uc3Rvcnl9OiR7by5zdG9yeUluc3RhbmNlfTp0YWJsZToke3Muam9pbihgLmApfWAsZD1hLnRhYmxlRm9ybWF0KGUpLGY9ZS5iaWRpVmlzdWFsPT09ITAscD1kLmZpcnN0Um93RXhjZXB0aW9uLG09cD8uaW5kZW50QXV0aG9yZWQ/cC5pbmRlbnRQdD8/MDplLnRibEluZD8/MCxoPXt9LGc9W10sXz1lLnJvd3MubWFwKChuLGkpPT57bGV0IG89ZC5yb3dzW2ldLGw9TWF0aC5tYXgoMCxNYXRoLm1pbih0Lmxlbmd0aCxuLmdyaWRCZWZvcmU/PzApKSxwPW4uY2VsbHMubWFwKChuLGQpPT57bGV0IGY9bz8uY2VsbHNbZF0/Lm1hcmdpbnNQdD8/e3RvcDpuLm1hcmdpblRvcD8/ZS5jZWxsTWFyZ2luVG9wLHJpZ2h0Om4ubWFyZ2luUmlnaHQ/P2UuY2VsbE1hcmdpblJpZ2h0LGJvdHRvbTpuLm1hcmdpbkJvdHRvbT8/ZS5jZWxsTWFyZ2luQm90dG9tLGxlZnQ6bi5tYXJnaW5MZWZ0Pz9lLmNlbGxNYXJnaW5MZWZ0fSxwPWwsbT1NYXRoLm1pbihNYXRoLm1heCgxLG4uY29sU3BhbiksTWF0aC5tYXgoMCx0Lmxlbmd0aC1wKSk7bCs9bTtsZXQgXz10LnNsaWNlKHAscCttKS5yZWR1Y2UoKGUsdCk9PmUrdCwwKSx2PUpOKG8/LmNlbGxTcGFjaW5nUHQ/PzAscCxtLHQubGVuZ3RoKSx5PVsuLi5zLGksZF0sYj1gJHt1fTpjZWxsOiR7aX0uJHtkfWAseD1uLnZNZXJnZT09PSExP1tdOmhQKHtjZWxsOm4sdGFibGU6ZSxjZWxsVG90YWxXaWR0aFB0Ol8sb3V0ZXJTdGF0ZTpyLHNvdXJjZVBhdGg6eX0se3Jlc29sdmVDb250ZW50V2lkdGhQdDooZSx0LG4pPT5NYXRoLm1heCgwLG4tdi5zdGFydFB0LXYuZW5kUHQtZi5sZWZ0LWYucmlnaHQpLGNyZWF0ZUNlbGxTdGF0ZTphLmNyZWF0ZUNlbGxTdGF0ZSxhY3F1aXJlUGFyYWdyYXBoOihlLHQsbixyLG8pPT5hLmFjcXVpcmVQYXJhZ3JhcGgoZSx0LG4scixgJHt1fTpjZWxsOiR7aX0uJHtkfWAsbyx2b2lkIDAsYyhyKSksYWNxdWlyZU5lc3RlZFRhYmxlOihlLHQscixpKT0+e2xldCBvPWdGKHQsYS5yZXNvbHZlQ29sdW1ucyh0LHIsZSkscixlLGMoaSksYSk7aFtvLmxheW91dC5pZF09bztsZXQgcz1hLnRhYmxlRm9ybWF0KHQpLnBvc2l0aW9uaW5nO2lmKHMpe2xldCByPWlbaS5sZW5ndGgtMV0sYz1zLGw9dC5vdmVybGFwPT09YG5ldmVyYD9gbmV2ZXJgOmBvdmVybGFwYCx1PWEucmVnaXN0ZXJGbG9hdGluZ1RhYmxlKGUse2NoaWxkOm8ubGF5b3V0LHBvc2l0aW9uaW5nOmMsb3ZlcmxhcDpsfSksZD17aG9zdENlbGxJZDpiLHNvdXJjZUJsb2NrSW5kZXg6cixhbmNob3JCbG9ja0luZGV4OmRGKG4uY29udGVudCxyKSx0YWJsZUlkOm8ubGF5b3V0LmlkLG92ZXJsYXA6bCxwb3NpdGlvbmluZzpjLC4uLnU9PW51bGw/e306e2FjcXVpcmVkVGV4dE9mZnNldFB0Ok9iamVjdC5mcmVlemUoey4uLnV9KX19O2cucHVzaChkKX1yZXR1cm4gby5sYXlvdXR9LGFkdmFuY2VTdGF0ZTphLmFkdmFuY2VTdGF0ZX0pO3JldHVybntpZDpiLHNvdXJjZTpjKHkpLGNvbHVtblN0YXJ0OnAsY29sdW1uU3BhbjptLHZlcnRpY2FsTWVyZ2U6bi52TWVyZ2U9PT0hMD9gcmVzdGFydGA6bi52TWVyZ2U9PT0hMT9gY29udGludWVgOmBub25lYCxtYXJnaW5zOnt0b3BQdDpmLnRvcCxyaWdodFB0OmYucmlnaHQsYm90dG9tUHQ6Zi5ib3R0b20sbGVmdFB0OmYubGVmdH0sdkFsaWduOm4udkFsaWduLC4uLm4uYmFja2dyb3VuZD97YmFja2dyb3VuZDp7Y29sb3I6bi5iYWNrZ3JvdW5kLnN0YXJ0c1dpdGgoYCNgKT9uLmJhY2tncm91bmQ6YCMke24uYmFja2dyb3VuZH1gfX06e30sYm9yZGVyczpwRihuLmJvcmRlcnMpLGJsb2Nrczp4LmZsYXRNYXAoKGUsdCk9PntsZXQgcj1uLmNvbnRlbnRbdF07cmV0dXJuIHI/LnR5cGU9PT1gdGFibGVgJiZhLnRhYmxlRm9ybWF0KHIpLm9yZGluYXJ5Rmxvdz09PSExP1tdOlt7bGF5b3V0OmUsc291cmNlQmxvY2tJbmRleDp0LC4uLmUua2luZD09PWBwYXJhZ3JhcGhgJiZoRihlKT97cGFnZURlcGVuZGVudDohMH06e30sLi4ubVAobi5jb250ZW50LHQpP3tzdHJ1Y3R1cmFsVHJhaWxpbmc6ITB9Ont9fV19KX19KSxfPW8/LmhlaWdodD8ucnVsZT8/YGF1dG9gO3JldHVybntpZDpgJHt1fTpyb3c6JHtpfWAsc291cmNlOmMoWy4uLnMsaV0pLGxvZ2ljYWxSb3dJbmRleDppLGNhbnRTcGxpdDpvPy5jYW50U3BsaXQ/P24uY2FudFNwbGl0PT09ITAsaGVpZ2h0UHQ6bz8uaGVpZ2h0Py52YWx1ZVB0Pz9udWxsLGhlaWdodFJ1bGU6XyxjZWxsU3BhY2luZ1B0Om8/LmNlbGxTcGFjaW5nUHQ/PzAsZXhjZXB0aW9uQm9yZGVyczpvPy5leGNlcHRpb24/LmJvcmRlcnM/cEYoby5leGNlcHRpb24uYm9yZGVycyk6bnVsbCxhbGlnbm1lbnQ6bUYobz8uanVzdGlmaWNhdGlvbj8/ZS5qYyxmKSxpbmRlbnRQdDptLGNlbGxzOnAscmVwZWF0ZWRIZWFkZXI6bz8ucmVwZWF0ZWRIZWFkZXI/P24uaXNIZWFkZXI9PT0hMH19KSx2PUlnKHtraW5kOmB0YWJsZWAsaWQ6dSxzb3VyY2U6YyhbLi4uc10pLGZsb3dEb21haW5JZDp1LG9yZGluYXJ5RmxvdzpkLm9yZGluYXJ5RmxvdyxhbGlnbm1lbnQ6bUYoZS5qYyxmKSxpbmRlbnRQdDptLGJpZGlWaXN1YWw6Zixjb2x1bW5XaWR0aHNQdDp0LGJvcmRlcnM6cEYoZS5ib3JkZXJzKSxyb3dzOl99LGBSZXRhaW5lZFRhYmxlQWNxdWlzaXRpb24uaW5wdXRgKSx5PXt4UHQ6MCx5UHQ6MCx3aWR0aFB0Om4saGVpZ2h0UHQ6MX0sYj11Rih2LHtjb250YWluZXI6e2lkOnUsa2luZDpgdGFibGVDZWxsYCxib3VuZHM6eX0sY3Vyc29yOnt4UHQ6MCx5UHQ6MH0sYXZhaWxhYmxlQm91bmRzOnl9LGwpLmxheW91dDtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7aW5wdXQ6dixsYXlvdXQ6YixuZXN0ZWRCeUlkOk9iamVjdC5mcmVlemUoaCksZmxvYXRpbmdUYWJsZXM6SWcoZyxgUmV0YWluZWRUYWJsZUFjcXVpc2l0aW9uLmZsb2F0aW5nVGFibGVzYCl9KX1mdW5jdGlvbiBfRihlLHQsbil7cmV0dXJuIHQ9PT1uP2U6T2JqZWN0LmZyZWV6ZSh7Li4uZSxsZWZ0OmUucmlnaHQscmlnaHQ6ZS5sZWZ0fSl9ZnVuY3Rpb24gdkYoZSx0LG4pe2xldCByPV9GKGUuYm9yZGVycyxlLmJpZGlWaXN1YWwsbiksaT10LmV4Y2VwdGlvbkJvcmRlcnM9PW51bGw/bnVsbDpfRih0LmV4Y2VwdGlvbkJvcmRlcnMsZS5iaWRpVmlzdWFsLG4pO3JldHVybiBpP09iamVjdC5mcmVlemUoe3RvcDpQUChpLnRvcCxyLnRvcCkscmlnaHQ6UFAoaS5yaWdodCxyLnJpZ2h0KSxib3R0b206UFAoaS5ib3R0b20sci5ib3R0b20pLGxlZnQ6UFAoaS5sZWZ0LHIubGVmdCksaW5zaWRlSDpQUChpLmluc2lkZUgsci5pbnNpZGVIKSxpbnNpZGVWOlBQKGkuaW5zaWRlVixyLmluc2lkZVYpfSk6cn12YXIgeUY9Y2xhc3N7bm9kZXM9W09iamVjdC5mcmVlemUoe2tpbmQ6YHplcm9gfSldO2ludGVybmVkPW5ldyBNYXAoW1tgWmAsMF1dKTtpbnRlcm4oZSx0KXtsZXQgbj10aGlzLmludGVybmVkLmdldChlKTtpZihuIT09dm9pZCAwKXJldHVybiBuO2xldCByPXRoaXMubm9kZXMubGVuZ3RoO3JldHVybiB0aGlzLm5vZGVzLnB1c2goT2JqZWN0LmZyZWV6ZSh0KSksdGhpcy5pbnRlcm5lZC5zZXQoZSxyKSxyfXRva2VuKGUsdCl7cmV0dXJuIHRoaXMuaW50ZXJuKGBUOiR7ZX06JHt0fWAse2tpbmQ6YHRva2VuYH0pfWFkZChlLHQpe2lmKGU9PT0wKXJldHVybiB0O2lmKHQ9PT0wKXJldHVybiBlO2xldCBuPXRoaXMubm9kZXNbZV0scj10aGlzLm5vZGVzW3RdO3JldHVybiBuLmtpbmQ9PT1gc3ViYCYmbi5yaWdodD09PXQ/bi5sZWZ0OnIua2luZD09PWBzdWJgJiZyLnJpZ2h0PT09ZT9yLmxlZnQ6dGhpcy5pbnRlcm4oYEE6JHtlfToke3R9YCx7a2luZDpgYWRkYCxsZWZ0OmUscmlnaHQ6dH0pfXN1YnRyYWN0KGUsdCl7aWYoZT09PXQpcmV0dXJuIDA7aWYodD09PTApcmV0dXJuIGU7bGV0IG49dGhpcy5ub2Rlc1t0XTtyZXR1cm4gbi5raW5kPT09YHN1YmAmJm4ubGVmdD09PWU/bi5yaWdodDp0aGlzLmludGVybihgUzoke2V9OiR7dH1gLHtraW5kOmBzdWJgLGxlZnQ6ZSxyaWdodDp0fSl9ZGl2aWRlKGUsdCl7cmV0dXJuIGU9PT0wPzA6dGhpcy5pbnRlcm4oYEQ6JHtlfToke3R9YCx7a2luZDpgZGl2YCx2YWx1ZTplLGRpdmlzb3I6dH0pfX07ZnVuY3Rpb24gYkYoZSx0PTApe3JldHVybiBPYmplY3QuZnJlZXplKHtwb3NpdGlvbjplLHN5bTp0LGlkZW50aXR5OmAke2V9fCR7dH1gfSl9ZnVuY3Rpb24geEYoZSx0LG4pe3JldHVybiBiRihITih0LnBvc2l0aW9uLG4ucG9zaXRpb24pLGUuYWRkKHQuc3ltLG4uc3ltKSl9ZnVuY3Rpb24gU0YoZSx0LG4pe3JldHVybiBiRihXTih0LnBvc2l0aW9uLG4ucG9zaXRpb24pLGUuc3VidHJhY3QodC5zeW0sbi5zeW0pKX1mdW5jdGlvbiBDRihlLHQsbil7cmV0dXJuIGJGKEdOKHQucG9zaXRpb24sbiksZS5kaXZpZGUodC5zeW0sbikpfWZ1bmN0aW9uIHdGKGUsdCxuKXtsZXQgcj1bYkYoYDAvMWApXTtyZXR1cm4gdC5jb2x1bW5XaWR0aHNQdC5mb3JFYWNoKChpLGEpPT57bGV0IG89dC5jb2x1bW5XaWR0aEtleXM/LlthXSxzPVJOKGkpPz9gMC8xYCxjPW89PT1udWxsP2JGKHMsZS50b2tlbihuLGEpKTpiRihvPz9zKTtyLnB1c2goeEYoZSxyLmF0KC0xKSxjKSl9KSxPYmplY3QuZnJlZXplKHIpfWZ1bmN0aW9uIFRGKGUsdCxuLHIpe2xldCBpPVNGKGUscixuKTtyZXR1cm4gdC5hbGlnbm1lbnQ9PT1gcmlnaHRgP2k6dC5hbGlnbm1lbnQ9PT1gY2VudGVyYD9DRihlLGksMm4pOmJGKGAwLzFgKX1mdW5jdGlvbiBFRihlLHQsbixyLGkpe3JldHVybiB4RihlLGkscj9TRihlLG4sdCk6dCl9ZnVuY3Rpb24gREYoZSx0KXtpZihlLmxlbmd0aD09PTApdGhyb3cgUmFuZ2VFcnJvcihgQWRqYWNlbnQgdGFibGUgZ3JvdXAgaWQgbXVzdCBub3QgYmUgZW1wdHlgKTtpZih0Lmxlbmd0aD09PTApdGhyb3cgUmFuZ2VFcnJvcihgQWRqYWNlbnQgdGFibGUgZ3JvdXAgcmVxdWlyZXMgYXQgbGVhc3Qgb25lIHRhYmxlYCk7aWYodC5zb21lKGU9PiFlLm9yZGluYXJ5RmxvdykpdGhyb3cgRXJyb3IoYEFuIGFic29sdXRlbHkgcG9zaXRpb25lZCB0YWJsZSBjYW5ub3Qgam9pbiBhbiBhZGphY2VudCB0YWJsZSBncm91cGApO2xldCBuPXRbMF0scj1uLmJpZGlWaXN1YWwsaT1uZXcgeUYsYT1iRihgMC8xYCksbz10Lm1hcCgoZSx0KT0+d0YoaSxlLHQpKSxzPW8ubWFwKGU9PmUuYXQoLTEpPz9hKSxjPXMucmVkdWNlKChlLHQpPT5LTih0LnBvc2l0aW9uLGUucG9zaXRpb24pPjA/dDplLGEpLGw9KGUsdCxuLGEpPT57bGV0IG89RUYoaSxlLHQsbixhKTtyZXR1cm4gcj9TRihpLGMsbyk6b30sdT1bXTt0LmZvckVhY2goKGUsdCk9PntsZXQgbj1vW3RdLGE9c1t0XSxkPWUuYmlkaVZpc3VhbCE9PXI7ZS5yb3dzLmZvckVhY2godD0+e2xldCByPVRGKGksdCxhLGMpLG89bi5tYXAodD0+bCh0LGEsZS5iaWRpVmlzdWFsLHIpKTt1LnB1c2goe2lucHV0OmUscm93OnQsZ3JvdXBCb3VuZGFyaWVzOm8sZGVzY2VuZGluZzpkfSl9KX0pO2xldCBkPW5ldyBNYXA7Zm9yKGxldCBlIG9mW2EsY10pZC5zZXQoZS5pZGVudGl0eSx7Ym91bmRhcnk6ZSxjb3VudDoxfSk7Zm9yKGxldCBlIG9mIHUpe2xldCB0PW5ldyBNYXA7Zm9yKGxldCBuIG9mIGUuZ3JvdXBCb3VuZGFyaWVzKXtsZXQgZT10LmdldChuLmlkZW50aXR5KTt0LnNldChuLmlkZW50aXR5LHtib3VuZGFyeTpuLGNvdW50OihlPy5jb3VudD8/MCkrMX0pfWZvcihsZXRbZSxuXW9mIHQpe2xldCB0PWQuZ2V0KGUpO24uY291bnQ+KHQ/LmNvdW50Pz8wKSYmZC5zZXQoZSxuKX19bGV0IGY9bmV3IE1hcCxwPWU9PntsZXQgdD1mLmdldChlKTtyZXR1cm4gdHx8KHQ9e3Bvc2l0aW9uOmUsaWRlbnRpdGllczpuZXcgTWFwLGVkZ2VzOm5ldyBNYXAsZmlyc3RTZWVuOm5ldyBNYXB9LGYuc2V0KGUsdCkpLHR9O2ZvcihsZXRbZSx0XW9mIGQpcCh0LmJvdW5kYXJ5LnBvc2l0aW9uKS5pZGVudGl0aWVzLnNldChlLHQpO2xldCBtPTA7Zm9yKGxldCBlIG9mIHUpe2xldCB0PWUuZGVzY2VuZGluZz9bLi4uZS5ncm91cEJvdW5kYXJpZXNdLnJldmVyc2UoKTplLmdyb3VwQm91bmRhcmllcyxuPW51bGwscj1udWxsO2ZvcihsZXQgZSBvZiB0KXtsZXQgdD1wKGUucG9zaXRpb24pO2lmKHQuZmlyc3RTZWVuLmhhcyhlLmlkZW50aXR5KXx8dC5maXJzdFNlZW4uc2V0KGUuaWRlbnRpdHksbSsrKSxuIT09ZS5wb3NpdGlvbiYmKG49ZS5wb3NpdGlvbixyPW51bGwpLHIhPT1udWxsJiZyIT09ZS5pZGVudGl0eSl7bGV0IG49dC5lZGdlcy5nZXQocik7bnx8KG49bmV3IFNldCx0LmVkZ2VzLnNldChyLG4pKSxuLmFkZChlLmlkZW50aXR5KX1yPWUuaWRlbnRpdHl9fWZvcihsZXQgZSBvZiBmLnZhbHVlcygpKWZvcihsZXQgdCBvZiBlLmlkZW50aXRpZXMua2V5cygpKWUuZmlyc3RTZWVuLmhhcyh0KXx8ZS5maXJzdFNlZW4uc2V0KHQsbSsrKTtsZXQgaD1bLi4uZi52YWx1ZXMoKV0uc29ydCgoZSx0KT0+S04oZS5wb3NpdGlvbix0LnBvc2l0aW9uKSksZz1bXSxfPW5ldyBNYXA7Zm9yKGxldCBlIG9mIGgpe2xldCB0PW5ldyBNYXAoWy4uLmUuaWRlbnRpdGllcy5rZXlzKCldLm1hcChlPT5bZSwwXSkpO2ZvcihsZXQgbiBvZiBlLmVkZ2VzLnZhbHVlcygpKWZvcihsZXQgZSBvZiBuKXQuc2V0KGUsKHQuZ2V0KGUpPz8wKSsxKTtsZXQgbj1bXSxyPXQ9PntuLnB1c2godCk7bGV0IHI9bi5sZW5ndGgtMTtmb3IoO3I+MDspe2xldCB0PU1hdGguZmxvb3IoKHItMSkvMik7aWYoZS5maXJzdFNlZW4uZ2V0KG5bdF0pPD1lLmZpcnN0U2Vlbi5nZXQobltyXSkpYnJlYWs7W25bdF0sbltyXV09W25bcl0sblt0XV0scj10fX0saT0oKT0+e2xldCB0PW5bMF0scj1uLnBvcCgpO2lmKG4ubGVuZ3RoPjApe25bMF09cjtsZXQgdD0wO2Zvcig7Oyl7bGV0IHI9dCoyKzEsaT1yKzE7aWYocj49bi5sZW5ndGgpYnJlYWs7bGV0IGE9cjtpZihpPG4ubGVuZ3RoJiZlLmZpcnN0U2Vlbi5nZXQobltpXSk8ZS5maXJzdFNlZW4uZ2V0KG5bcl0pJiYoYT1pKSxlLmZpcnN0U2Vlbi5nZXQoblt0XSk8PWUuZmlyc3RTZWVuLmdldChuW2FdKSlicmVhaztbblt0XSxuW2FdXT1bblthXSxuW3RdXSx0PWF9fXJldHVybiB0fTtmb3IobGV0IG4gb2YgZS5pZGVudGl0aWVzLmtleXMoKSl0LmdldChuKT09PTAmJnIobik7bGV0IGE9W107Zm9yKDtuLmxlbmd0aD4wOyl7bGV0IG49aSgpO2EucHVzaChuKTtmb3IobGV0IGkgb2YgZS5lZGdlcy5nZXQobik/P1tdKXtsZXQgZT10LmdldChpKS0xO3Quc2V0KGksZSksZT09PTAmJnIoaSl9fWlmKGEubGVuZ3RoIT09ZS5pZGVudGl0aWVzLnNpemUpdGhyb3cgRXJyb3IoYEFkamFjZW50IHRhYmxlIHN5bWJvbGljIGJvdW5kYXJ5IG9yZGVyaW5nIGN5Y2xlIGF0ICR7ZS5wb3NpdGlvbn1gKTtmb3IobGV0IHQgb2YgYSl7bGV0e2JvdW5kYXJ5Om4sY291bnQ6cn09ZS5pZGVudGl0aWVzLmdldCh0KTtfLnNldCh0LGcubGVuZ3RoKTtmb3IobGV0IGU9MDtlPHI7ZSs9MSlnLnB1c2gobil9fWxldCB2PWcuc2xpY2UoMSkubWFwKChlLHQpPT57bGV0IG49Z1t0XTtyZXR1cm4gZS5zeW09PT1uLnN5bT9XTihlLnBvc2l0aW9uLG4ucG9zaXRpb24pOm51bGx9KSx5PWcuc2xpY2UoMSkubWFwKChlLHQpPT5WTihXTihlLnBvc2l0aW9uLGdbdF0ucG9zaXRpb24pKSksYj0oZSx0KT0+e2xldCBuPW5ldyBNYXAscj1BcnJheShlLmxlbmd0aCk7cmV0dXJuIGUuZm9yRWFjaCgoZSxpKT0+e2xldCBhPW4uZ2V0KGUuaWRlbnRpdHkpPz8wO24uc2V0KGUuaWRlbnRpdHksYSsxKTtsZXQgbz1fLmdldChlLmlkZW50aXR5KSxzPWQuZ2V0KGUuaWRlbnRpdHkpLmNvdW50O3JbaV09dD9vKyhzLTEtYSk6bythfSkscn0seD0wLFM9dS5tYXAoZT0+e2xldHtpbnB1dDp0LHJvdzpuLGdyb3VwQm91bmRhcmllczppLGRlc2NlbmRpbmc6YX09ZSxvPWIoaSxhKSxzPW9bMF0sYz1vW2kubGVuZ3RoLTFdLGw9bi5jZWxscy5tYXAoZT0+e2xldCBuPW9bZS5jb2x1bW5TdGFydF0saT1vW2UuY29sdW1uU3RhcnQrZS5jb2x1bW5TcGFuXTtpZihuPT1udWxsfHxpPT1udWxsKXRocm93IFJhbmdlRXJyb3IoYFRhYmxlIGNlbGwgJHtlLmlkfSBleGNlZWRzIGl0cyBhdXRob3JlZCBncmlkYCk7bGV0IGE9TWF0aC5taW4obixpKSxzPU1hdGgubWF4KG4saSk7aWYoczw9YSl0aHJvdyBFcnJvcihgVGFibGUgY2VsbCAke2UuaWR9IGNhbm5vdCBiZSBtYXBwZWQgaW50byB0aGUgbG9naWNhbCBncm91cCBncmlkYCk7bGV0IGM9X0YoZS5ib3JkZXJzLHQuYmlkaVZpc3VhbCxyKTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Li4uZSxjb2x1bW5TdGFydDphLGNvbHVtblNwYW46cy1hLGJvcmRlcnM6Y30pfSk7cmV0dXJuIE9iamVjdC5mcmVlemUoey4uLm4sbG9naWNhbFJvd0luZGV4OngrKyxleGNlcHRpb25Cb3JkZXJzOm51bGwsc291cmNlVGFibGVFZGdlczp2Rih0LG4sciksaW5kZW50UHQ6dC5iaWRpVmlzdWFsPT09cj9uLmluZGVudFB0Oi1uLmluZGVudFB0LHNvdXJjZU91dGVyQ29sdW1uU3RhcnQ6TWF0aC5taW4ocyxjKSxzb3VyY2VPdXRlckNvbHVtbkVuZDpNYXRoLm1heChzLGMpLGNlbGxzOk9iamVjdC5mcmVlemUobCl9KX0pO3JldHVybiBpLm5vZGVzLmxlbmd0aCxPYmplY3QuZnJlZXplKHtraW5kOmBhZGphY2VudC10YWJsZS1ncm91cC1ncmlkYCxpZDplLHNvdXJjZTpuLnNvdXJjZSxmbG93RG9tYWluSWQ6YCR7bi5mbG93RG9tYWluSWR9OmFkamFjZW50LWdyb3VwOiR7ZX1gLGFsaWdubWVudDpuLmFsaWdubWVudCxpbmRlbnRQdDpuLmluZGVudFB0LGJpZGlWaXN1YWw6cixjb2x1bW5XaWR0aHNQdDpPYmplY3QuZnJlZXplKHkpLGNvbHVtbldpZHRoS2V5czpPYmplY3QuZnJlZXplKHYpLHJvd3M6T2JqZWN0LmZyZWV6ZShTKX0pfWNvbnN0IE9GPTFlLTQ7ZnVuY3Rpb24ga0YoKXtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7YmxvY2tJbmRleDowLHBhcmFncmFwaExpbmVTdGFydDowLG5lc3RlZEN1cnNvcjpudWxsLG5lc3RlZEZyYWdtZW50SW5kZXg6MH0pfWZ1bmN0aW9uIEFGKCl7cmV0dXJuIE9iamVjdC5mcmVlemUoe3Jvd0luZGV4OjAscm93RnJhZ21lbnRJbmRleDowLGNlbGxzOk9iamVjdC5mcmVlemUoW10pfSl9ZnVuY3Rpb24gakYoZSl7bGV0IHQ9MDtmb3IoO2Uucm93c1t0XT8ucmVwZWF0ZWRIZWFkZXI9PT0hMDspdCs9MTtyZXR1cm4gdH1mdW5jdGlvbiBNRihlLHQpe2xldCBuPWUubGF5b3V0LnJvd3NbdF07cmV0dXJuIG4/ZS5pbnB1dC5yb3dzW3RdPy5oZWlnaHRSdWxlPT09YGV4YWN0YD9NYXRoLm1heCgwLG4uaGVpZ2h0UHQpOk1hdGgubWF4KDAsbi5oZWlnaHRQdCxuLmNvbnRlbnRIZWlnaHRQdCk6MH1mdW5jdGlvbiBORihlLHQsbixyKXtsZXQgaT1lLmxheW91dC5yb3dzLmZsYXRNYXAoZT0+ZS5jZWxscykuZmluZChlPT5lLmlkPT09dC5pZCk7aWYoIWkpdGhyb3cgbmV3IFooYElOVkFMSURfUkVGRVJFTkNFYCxgbmVzdGVkIHRhYmxlIGZyYWdtZW50IGxvc3QgcGFyZW50IGNlbGwgZ2VvbWV0cnk6ICR7dC5pZH1gKTtsZXQgYT1PYmplY3QuZnJlZXplKHt4UHQ6MCx5UHQ6MCx3aWR0aFB0OmkuY29udGVudEJvdW5kcy53aWR0aFB0LGhlaWdodFB0Ok1hdGgubWF4KDAscil9KTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Li4ubixhdmFpbGFibGVIZWlnaHRQdDphLmhlaWdodFB0LHBsYWNlbWVudDpPYmplY3QuZnJlZXplKHsuLi5uLnBsYWNlbWVudCxjb250YWluZXI6T2JqZWN0LmZyZWV6ZSh7Li4ubi5wbGFjZW1lbnQuY29udGFpbmVyLGJvdW5kczphfSksY3Vyc29yOk9iamVjdC5mcmVlemUoe3hQdDowLHlQdDowfSksYXZhaWxhYmxlQm91bmRzOmF9KX0pfWZ1bmN0aW9uIFBGKGUsdCxuLHIpe2lmKHQ9PT1lLmlucHV0LnJvd3Nbbl0pcmV0dXJuIE1GKGUsbik7bGV0IGk9dUYoey4uLmUuaW5wdXQsaWQ6YCR7ZS5pbnB1dC5pZH06cm93LW9jY3VycmVuY2U6JHtyLnBhZ2Uub2NjdXJyZW5jZUlkfToke3QubG9naWNhbFJvd0luZGV4fWAscm93czpbdF19LHIucGxhY2VtZW50LHIuc2VydmljZXMpLmxheW91dDtyZXR1cm4gTWF0aC5tYXgoMCxpLnJvd3NbMF0/LmhlaWdodFB0Pz9pLmFkdmFuY2VQdCl9ZnVuY3Rpb24gRkYoZSx0LG4scil7cmV0dXJuIHQ9PT1lLmlucHV0LnJvd3Nbbl0/TWF0aC5tYXgoMCxlLmxheW91dC5yb3dzW25dPy5oZWlnaHRQdD8/MCk6UEYoZSx0LG4scil9ZnVuY3Rpb24gSUYoZSx0LG4scil7bGV0IGk9dUYoey4uLmUuaW5wdXQsaWQ6YCR7ZS5pbnB1dC5pZH06Y29tcGxldGVkLXBhcnRpYWw6JHtyLnBhZ2Uub2NjdXJyZW5jZUlkfToke3QubG9naWNhbFJvd0luZGV4fWAscm93czpbdCwuLi5lLmlucHV0LnJvd3Muc2xpY2UobisxKV19LHIucGxhY2VtZW50LHIuc2VydmljZXMpLmxheW91dDtyZXR1cm4gTWF0aC5tYXgoMCxpLnJvd3NbMF0/LmhlaWdodFB0Pz8wKX1mdW5jdGlvbiBMRihlKXtyZXR1cm4gZS5jZWxscy5tYXAoZT0+ZS5ibG9ja3MubWFwKGU9Pih7a2luZDpgd2hvbGVgLGJsb2NrSW5kZXg6ZS5zb3VyY2VCbG9ja0luZGV4fSkpKX1mdW5jdGlvbiBSRihlLHQsbixyKXtsZXQgaT1yLnJlYWNxdWlyZVBhZ2VEZXBlbmRlbnRCbG9jaztyZXR1cm4haXx8IXQuY2VsbHMuc29tZShlPT5lLmJsb2Nrcy5zb21lKGU9PmUucGFnZURlcGVuZGVudD09PSEwKSk/dDp7Li4udCxjZWxsczp0LmNlbGxzLm1hcCgoZSxhKT0+KHsuLi5lLGJsb2NrczplLmJsb2Nrcy5tYXAoZT0+ZS5wYWdlRGVwZW5kZW50PT09ITA/ey4uLmUsbGF5b3V0Omkoe2xvZ2ljYWxSb3dJbmRleDp0LmxvZ2ljYWxSb3dJbmRleCxsb2dpY2FsQ2VsbEluZGV4OmEsc291cmNlQmxvY2tJbmRleDplLnNvdXJjZUJsb2NrSW5kZXgsb3duZXJzaGlwOm4scGFnZTpyLnBhZ2UsYWNxdWlyZWQ6ZS5sYXlvdXR9KX06ZSl9KSl9fWZ1bmN0aW9uIHpGKGUpe2xldCB0PWUucG9zaXRpb25pbmcuaG9yelNwZWNpZmllZCYmKGUucG9zaXRpb25pbmcuaG9yekFuY2hvcj09PWBwYWdlYHx8ZS5wb3NpdGlvbmluZy5ob3J6QW5jaG9yPT09YG1hcmdpbmApLG49ZS5wb3NpdGlvbmluZy52ZXJ0QW5jaG9yPT09YHBhZ2VgfHxlLnBvc2l0aW9uaW5nLnZlcnRBbmNob3I9PT1gbWFyZ2luYDtyZXR1cm4gdHx8bn1mdW5jdGlvbiBCRihlLHQsbixyLGkpe3JldHVybnsuLi50LGhlaWdodFB0Om51bGwsaGVpZ2h0UnVsZTpgYXV0b2AsY2VsbHM6dC5jZWxscy5tYXAoKHQsYSk9PntsZXQgbz1uLmNlbGxzW2FdPz9rRigpO3JldHVybnsuLi50LGJsb2Nrczp0LmJsb2Nrcy5zbGljZShvLmJsb2NrSW5kZXgpLm1hcCgobixhKT0+e2lmKGE9PT0wJiZvLm5lc3RlZEN1cnNvciYmbi5sYXlvdXQua2luZD09PWB0YWJsZWApe2xldCBhPWUubmVzdGVkQnlJZFtuLmxheW91dC5pZF07aWYoYSl7bGV0IHM9UUYoYSxvLm5lc3RlZEN1cnNvcixORihlLHQscixyLmZyZXNoUGFnZUhlaWdodFB0KSksYz1pLmdldCh0LmlkKTtpZihzLm5leHRDdXJzb3ImJmMhPT12b2lkIDAmJm4uc291cmNlQmxvY2tJbmRleDxjKXRocm93IEVycm9yKGBGbG9hdGluZyB0YWJsZSBhbmNob3IgY2Fubm90IGZvbGxvdyBhbiBpbmNvbXBsZXRlIG5lc3RlZC10YWJsZSBjYW5kaWRhdGVgKTtpZihzLmZyYWdtZW50KXJldHVybnsuLi5uLGxheW91dDpzLmZyYWdtZW50fX19cmV0dXJuIGEhPT0wfHxvLnBhcmFncmFwaExpbmVTdGFydD09PTB8fG4ubGF5b3V0LmtpbmQhPT1gcGFyYWdyYXBoYD9uOnsuLi5uLGxheW91dDpxRihuLmxheW91dCxvLnBhcmFncmFwaExpbmVTdGFydCxuLmxheW91dC5saW5lcy5sZW5ndGgpfX0pfX0pfX1mdW5jdGlvbiBWRihlLHQsbixyLGksYSxvLHMsYyl7bGV0IGw9aS5mbG9hdGluZ1RhYmxlRnJhbWVzLHU9aS5yZWFjcXVpcmVQYWdlRGVwZW5kZW50QmxvY2ssZD1lLmlucHV0LnJvd3NbdC5sb2dpY2FsUm93SW5kZXhdO2lmKCFsfHwhdXx8IWQpcmV0dXJue3Jvdzp0LHJlc29sdmVkOltdLHJlZ2lzdHJ5OmEsbmV4dFBhcmFncmFwaElkOm99O2xldCBmPWUuZmxvYXRpbmdUYWJsZXMuZmlsdGVyKGU9PmQuY2VsbHMuc29tZSh0PT50LmlkPT09ZS5ob3N0Q2VsbElkKSYmYyhlKSk7aWYoZi5sZW5ndGg9PT0wKXJldHVybntyb3c6dCxyZXNvbHZlZDpbXSxyZWdpc3RyeTphLG5leHRQYXJhZ3JhcGhJZDpvfTtsZXQgcD1uZXcgTWFwO2ZvcihsZXQgZSBvZiBmKXAuc2V0KGUuaG9zdENlbGxJZCxNYXRoLm1pbihwLmdldChlLmhvc3RDZWxsSWQpPz8xLzAsZS5hbmNob3JCbG9ja0luZGV4KSk7bGV0IG09ey4uLmkucGxhY2VtZW50LGN1cnNvcjp7Li4uaS5wbGFjZW1lbnQuY3Vyc29yLHlQdDppLnBsYWNlbWVudC5jdXJzb3IueVB0K3J9fSxoPUJGKGUsdCxzLGkscCksZz11Rih7Li4uZS5pbnB1dCxpZDpgJHtlLmlucHV0LmlkfTpmbG9hdC1wcm9iZToke2kucGFnZS5vY2N1cnJlbmNlSWR9OiR7dC5sb2dpY2FsUm93SW5kZXh9YCxyb3dzOltoXX0sbSxpLnNlcnZpY2VzKS5sYXlvdXQsXz1pLmZpbmFsUGxhY2VtZW50VHJhbnNsYXRpb25QdD8/e3hQdDowLHlQdDowfSx2PSh0LHIsYSk9PntsZXQgbz1hLmNlbGxzLmZpbmRJbmRleChlPT5lLmlkPT09dC5ob3N0Q2VsbElkKSxzPXIucm93c1swXT8uY2VsbHNbb10sYz1hLmNlbGxzW29dPy5ibG9ja3MuZmluZEluZGV4KGU9PmUuc291cmNlQmxvY2tJbmRleD09PXQuYW5jaG9yQmxvY2tJbmRleCk/Py0xLGw9YzwwP3ZvaWQgMDpzPy5ibG9ja3NbY10sdT1lLm5lc3RlZEJ5SWRbdC50YWJsZUlkXT8ubGF5b3V0O3JldHVybiFzfHwhbHx8IXU/bnVsbDpPYmplY3QuZnJlZXplKHtraW5kOmBmbG9hdGluZy10YWJsZS1wbGFjZW1lbnRgLG9jY3VycmVuY2VJZDpbaS5wYWdlLm9jY3VycmVuY2VJZCx0Lmhvc3RDZWxsSWQsdC5zb3VyY2VCbG9ja0luZGV4LHQudGFibGVJZF0uam9pbihgOmApLG93bmVyc2hpcDpuLHBoeXNpY2FsUGFnZUluZGV4OmkucGFnZS5waHlzaWNhbFBhZ2VJbmRleCxkaXNwbGF5UGFnZU51bWJlcjppLnBhZ2UuZGlzcGxheVBhZ2VOdW1iZXIsLi4udCxjb2x1bW5Cb3VuZHM6T2JqZWN0LmZyZWV6ZSh7eFB0OnMuY29udGVudEJvdW5kcy54UHQrXy54UHQseVB0OnMuY29udGVudEJvdW5kcy55UHQrXy55UHQsd2lkdGhQdDpzLmNvbnRlbnRCb3VuZHMud2lkdGhQdCxoZWlnaHRQdDpzLmNvbnRlbnRCb3VuZHMuaGVpZ2h0UHR9KSxhbmNob3JCb3VuZHM6T2JqZWN0LmZyZWV6ZSh7eFB0OnMuY29udGVudEJvdW5kcy54UHQrXy54UHQseVB0OnMuZmxvd0JvdW5kcy55UHQrbC5vZmZzZXRQdCtfLnlQdCx3aWR0aFB0OmwubGF5b3V0LmZsb3dCb3VuZHMud2lkdGhQdCxoZWlnaHRQdDpsLmxheW91dC5mbG93Qm91bmRzLmhlaWdodFB0fSksY2hpbGQ6dX0pfSx5PW49PntsZXQgcj1CRihlLG4scyxpLHApLGM9bj09PXQ/Zzp1Rih7Li4uZS5pbnB1dCxpZDpgJHtlLmlucHV0LmlkfTpmbG9hdC1jb252ZXJnZToke2kucGFnZS5vY2N1cnJlbmNlSWR9OiR7dC5sb2dpY2FsUm93SW5kZXh9YCxyb3dzOltyXX0sbSxpLnNlcnZpY2VzKS5sYXlvdXQsdT1kTihhLG8saS5mbG9hdGluZ1RhYmxlUmVnaXN0cnk/LmNvb3JkaW5hdGVTcGFjZT8/YGxvZ2ljYWwtcGFnZS1wb2ludHNgLGkuZmxvYXRpbmdUYWJsZVJlZ2lzdHJ5Py5mbG93RG9tYWluSWQ/P2UuaW5wdXQuZmxvd0RvbWFpbklkKSxkPVtdO2ZvcihsZXQgZSBvZiBmKXtsZXQgdD12KGUsYyxyKTtpZighdHx8aS5mbG9hdGluZ1RhYmxlUmVnaXN0cnk/LmNvb3JkaW5hdGVTcGFjZSE9PWB1cHJpZ2h0LXBoeXNpY2FsLXBhZ2UtcG9pbnRzYCYmIXpGKHQpKWNvbnRpbnVlO2xldCBuPWZOKHQse3BhZ2U6bC5wYWdlLG1hcmdpbjpsLm1hcmdpbix0ZXh0Ont4UHQ6dC5jb2x1bW5Cb3VuZHM/LnhQdD8/dC5hbmNob3JCb3VuZHMueFB0LHlQdDp0LmFuY2hvckJvdW5kcy55UHQsd2lkdGhQdDp0LmNvbHVtbkJvdW5kcz8ud2lkdGhQdD8/dC5hbmNob3JCb3VuZHMud2lkdGhQdCxoZWlnaHRQdDp0LmFuY2hvckJvdW5kcy5oZWlnaHRQdH19LHUpO2QucHVzaChuLnBsYWNlbWVudCksdT1uLnRyYW5zYWN0aW9ufXJldHVybntyZXNvbHZlZDpPYmplY3QuZnJlZXplKGQpLHRyYW5zYWN0aW9uOnV9fSxiPWU9Pih7Li4udCxjZWxsczp0LmNlbGxzLm1hcCgocixhKT0+KHsuLi5yLGJsb2NrczpyLmJsb2Nrcy5tYXAobz0+e2xldCBzPWUuZmlsdGVyKGU9PmUuc291cmNlLmhvc3RDZWxsSWQ9PT1yLmlkJiZlLnNvdXJjZS5hbmNob3JCbG9ja0luZGV4PT09by5zb3VyY2VCbG9ja0luZGV4KS5tYXAoZT0+T2JqZWN0LmZyZWV6ZSh7eFB0OmUuZXhjbHVzaW9uQm91bmRzLnhQdC1lLnNvdXJjZS5hbmNob3JCb3VuZHMueFB0LHlQdDplLmV4Y2x1c2lvbkJvdW5kcy55UHQtZS5zb3VyY2UuYW5jaG9yQm91bmRzLnlQdCx3aWR0aFB0OmUuZXhjbHVzaW9uQm91bmRzLndpZHRoUHQsaGVpZ2h0UHQ6ZS5leGNsdXNpb25Cb3VuZHMuaGVpZ2h0UHR9KSk7cmV0dXJuIHMubGVuZ3RoPT09MHx8by5sYXlvdXQua2luZCE9PWBwYXJhZ3JhcGhgP286ey4uLm8sbGF5b3V0OnUoe2xvZ2ljYWxSb3dJbmRleDp0LmxvZ2ljYWxSb3dJbmRleCxsb2dpY2FsQ2VsbEluZGV4OmEsc291cmNlQmxvY2tJbmRleDpvLnNvdXJjZUJsb2NrSW5kZXgsb3duZXJzaGlwOm4scGFnZTppLnBhZ2UsYWNxdWlyZWQ6by5sYXlvdXQsZmxvYXRpbmdUYWJsZUV4Y2x1c2lvbnM6T2JqZWN0LmZyZWV6ZShzKX0pfX0pfSkpfSkseD0oZSx0KT0+SlNPTi5zdHJpbmdpZnkoe2Jsb2NrczplLmNlbGxzLm1hcChlPT5lLmJsb2Nrcy5tYXAoZT0+KHtzb3VyY2VCbG9ja0luZGV4OmUuc291cmNlQmxvY2tJbmRleCxsYXlvdXQ6ZS5sYXlvdXR9KSkpLHBsYWNlbWVudHM6dH0pLFM9eSh0KTtpZihTLnJlc29sdmVkLmxlbmd0aD09PTApcmV0dXJue3Jvdzp0LHJlc29sdmVkOltdLHJlZ2lzdHJ5OmEsbmV4dFBhcmFncmFwaElkOm99O3RyeXtsZXQgZT1qYih7c2VlZFN0YXRlOngodCxTLnJlc29sdmVkKSxzdGVwOmU9PntsZXQgdD1iKGU/LnJlc29sdXRpb24ucmVzb2x2ZWQ/P1MucmVzb2x2ZWQpLG49eSh0KTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Y2FuZGlkYXRlOnQscmVzb2x1dGlvbjpuLHN0YXRlOngodCxuLnJlc29sdmVkKX0pfSxzdGF0ZU9mOmU9PmUuc3RhdGUsbGltaXQ6MTZ9KS52YWx1ZTtyZXR1cm57cm93OmUuY2FuZGlkYXRlLHJlc29sdmVkOmUucmVzb2x1dGlvbi5yZXNvbHZlZCxyZWdpc3RyeTpPYmplY3QuZnJlZXplKFsuLi5lLnJlc29sdXRpb24udHJhbnNhY3Rpb24uYmFzZSwuLi5lLnJlc29sdXRpb24udHJhbnNhY3Rpb24uZGVsdGFdKSxuZXh0UGFyYWdyYXBoSWQ6ZS5yZXNvbHV0aW9uLnRyYW5zYWN0aW9uLm5leHRQYXJhZ3JhcGhJZH19Y2F0Y2goZSl7dGhyb3cgZSBpbnN0YW5jZW9mIEFiP25ldyBaKGBOT05fQ09OVkVSR0VOQ0VgLGBmbG9hdGluZyB0YWJsZSBmaW5hbC1mcmFtZSByZWZsb3cgZGlkIG5vdCBjb252ZXJnZSAoJHtlLnJlYXNvbn07ICR7ZS5zdGF0ZXMubGVuZ3RofSBzdGF0ZXMpYCk6ZX19ZnVuY3Rpb24gSEYoZSx0LG4pe2xldCByPWUuaW5wdXQucm93c1t0LmxvZ2ljYWxSb3dJbmRleF0/LmNlbGxzLmZpbmRJbmRleChlPT5lLmlkPT09bi5ob3N0Q2VsbElkKT8/LTE7cmV0dXJuIHI+PTAmJih0LnJhbmdlc1tyXT8uc29tZShlPT5lLmJsb2NrSW5kZXg9PT1uLmFuY2hvckJsb2NrSW5kZXgmJihlLmtpbmQ9PT1gd2hvbGVgfHxlLmtpbmQ9PT1gcGFyYWdyYXBoYCYmZS5saW5lU3RhcnQ9PT0wfHxlLmtpbmQ9PT1gbmVzdGVkLXRhYmxlYCYmZS5jaGlsZEZyYWdtZW50SW5kZXg9PT0wKSk/PyExKX1mdW5jdGlvbiBVRihlKXtyZXR1cm5gJHtlLmhvc3RDZWxsSWR9OiR7ZS5zb3VyY2VCbG9ja0luZGV4fToke2UudGFibGVJZH1gfWZ1bmN0aW9uIFdGKGUsdCl7cmV0dXJuIG5ldyBTZXQoZS5mbG9hdGluZ1RhYmxlcy5maWx0ZXIobj0+SEYoZSx0LG4pKS5tYXAoVUYpKX1mdW5jdGlvbiBHRihlLHQpe3JldHVybiBlLnNpemU9PT10LnNpemUmJlsuLi5lXS5ldmVyeShlPT50LmhhcyhlKSl9ZnVuY3Rpb24gS0YoZSx0LG49MCxyPSExLGk9W10pe3JldHVybntpbnB1dDplLGxvZ2ljYWxSb3dJbmRleDplLmxvZ2ljYWxSb3dJbmRleCxmcmFnbWVudEluZGV4Om4sb3duZXJzaGlwOnQscmFuZ2VzOkxGKGUpLC4uLnI/e2NsaXBBdFBhZ2VFbmQ6ITB9Ont9LC4uLmkubGVuZ3RoP3tyZXNvbHZlZEZsb2F0aW5nVGFibGVzOml9Ont9fX1mdW5jdGlvbiBxRihlLHQsbil7cmV0dXJuIE9qKGUse2xpbmVTdGFydDp0LGxpbmVFbmQ6bixjb250aW51ZXNGcm9tUHJldmlvdXM6dD4wLGNvbnRpbnVlc09uTmV4dDpuPGUubGluZXMubGVuZ3RofSl9ZnVuY3Rpb24gSkYoZSx0LG4scixpKXtsZXQgYT1udWxsLG89bjtmb3IobGV0IHM9bisxO3M8PWUubGluZXMubGVuZ3RoO3MrPTEpe2xldCBjPXFGKGUsbixzKSxsPXtsYXlvdXQ6Yyxzb3VyY2VCbG9ja0luZGV4OnR9O2lmKFJQKFsuLi5yLGxdKT5pK09GKWJyZWFrO2E9YyxvPXN9cmV0dXJuIGE/e2Jsb2NrOntsYXlvdXQ6YSxzb3VyY2VCbG9ja0luZGV4OnR9LHJhbmdlOntraW5kOmBwYXJhZ3JhcGhgLGJsb2NrSW5kZXg6dCxsaW5lU3RhcnQ6bixsaW5lRW5kOm99LGxpbmVFbmQ6byxhZHZhbmNlUHQ6YS5hZHZhbmNlUHR9OntibG9jazpudWxsLHJhbmdlOm51bGwsbGluZUVuZDpuLGFkdmFuY2VQdDowfX1mdW5jdGlvbiBZRihlLHQsbixyLGkpe2lmKHQudmVydGljYWxNZXJnZT09PWBjb250aW51ZWApcmV0dXJue2lucHV0OnQscmFuZ2U6W10sbmV4dDpuLGNvbXBsZXRlOiEwfTtsZXQgYT1bXSxvPVtdLHM9bi5ibG9ja0luZGV4LGM9bi5wYXJhZ3JhcGhMaW5lU3RhcnQsbD1uLm5lc3RlZEN1cnNvcix1PW4ubmVzdGVkRnJhZ21lbnRJbmRleDtmb3IoO3M8dC5ibG9ja3MubGVuZ3RoOyl7bGV0IG49dC5ibG9ja3Nbc10sZD1uLmxheW91dDtpZihkLmtpbmQ9PT1gcGFyYWdyYXBoYCl7aWYobi5zdHJ1Y3R1cmFsVHJhaWxpbmcpe2EucHVzaChuKSxvLnB1c2goe2tpbmQ6YHdob2xlYCxibG9ja0luZGV4Om4uc291cmNlQmxvY2tJbmRleH0pLHMrPTEsYz0wO2NvbnRpbnVlfWlmKGQubGluZXMubGVuZ3RoPT09MCl7aWYoUlAoWy4uLmEsbl0pPnIrT0YpYnJlYWs7YS5wdXNoKG4pLG8ucHVzaCh7a2luZDpgd2hvbGVgLGJsb2NrSW5kZXg6bi5zb3VyY2VCbG9ja0luZGV4fSkscys9MSxjPTA7Y29udGludWV9bGV0IGU9SkYoZCxuLnNvdXJjZUJsb2NrSW5kZXgsYyxhLHIpO2lmKCFlLmJsb2NrfHwhZS5yYW5nZSlicmVhaztpZihhLnB1c2goey4uLmUuYmxvY2ssLi4ubi5zdHJ1Y3R1cmFsVHJhaWxpbmc/e3N0cnVjdHVyYWxUcmFpbGluZzohMH06e319KSxvLnB1c2goZS5yYW5nZSksZS5saW5lRW5kPGQubGluZXMubGVuZ3RoKXtjPWUubGluZUVuZDticmVha31zKz0xLGM9MDtjb250aW51ZX1sZXQgZj1lLm5lc3RlZEJ5SWRbZC5pZF07aWYoZil7bGV0IGM9TWF0aC5tYXgoMCxyLVJQKGEpKSxkPVFGKGYsbD8/QUYoKSxORihlLHQsaSxjKSk7aWYoIWQuZnJhZ21lbnQpYnJlYWs7aWYoYS5wdXNoKHtsYXlvdXQ6ZC5mcmFnbWVudCxzb3VyY2VCbG9ja0luZGV4Om4uc291cmNlQmxvY2tJbmRleH0pLG8ucHVzaCh7a2luZDpgbmVzdGVkLXRhYmxlYCxibG9ja0luZGV4Om4uc291cmNlQmxvY2tJbmRleCxjaGlsZEZyYWdtZW50SW5kZXg6dX0pLGQubmV4dEN1cnNvcil7bD1kLm5leHRDdXJzb3IsdSs9MTticmVha31zKz0xLGw9bnVsbCx1PTA7Y29udGludWV9aWYoUlAoWy4uLmEsbl0pPnIrT0YpYnJlYWs7YS5wdXNoKG4pLG8ucHVzaCh7a2luZDpgd2hvbGVgLGJsb2NrSW5kZXg6bi5zb3VyY2VCbG9ja0luZGV4fSkscys9MX1sZXQgZD1zPj10LmJsb2Nrcy5sZW5ndGg7cmV0dXJue2lucHV0OnsuLi50LGJsb2NrczphfSxyYW5nZTpvLG5leHQ6T2JqZWN0LmZyZWV6ZSh7YmxvY2tJbmRleDpzLHBhcmFncmFwaExpbmVTdGFydDpjLG5lc3RlZEN1cnNvcjpsLG5lc3RlZEZyYWdtZW50SW5kZXg6dX0pLGNvbXBsZXRlOmR9fWZ1bmN0aW9uIFhGKGUsdCxuLHIsaSl7bGV0IGE9dC5jZWxscy5tYXAoKGUsdCk9Pm4uY2VsbHNbdF0/P2tGKCkpLG89TWF0aC5tYXgoMCwuLi50LmNlbGxzLm1hcChlPT5lLm1hcmdpbnMudG9wUHQrZS5tYXJnaW5zLmJvdHRvbVB0KSkscz1NYXRoLm1heCgwLHQuY2VsbFNwYWNpbmdQdCkqMixjPXsuLi50LGhlaWdodFB0Om51bGwsaGVpZ2h0UnVsZTpgYXV0b2B9LGw9ZUYoey4uLmUuaW5wdXQscm93czpbY119KVswXT8/MCx1PU1hdGgubWF4KDAsci1vLXMtbCksZD10LmNlbGxzLm1hcCgodCxuKT0+WUYoZSx0LGFbbl0sdSxpKSk7aWYoIWQuc29tZSgoZSx0KT0+ZS5uZXh0LmJsb2NrSW5kZXghPT1hW3RdPy5ibG9ja0luZGV4fHxlLm5leHQucGFyYWdyYXBoTGluZVN0YXJ0IT09YVt0XT8ucGFyYWdyYXBoTGluZVN0YXJ0fHxlLm5leHQubmVzdGVkRnJhZ21lbnRJbmRleCE9PWFbdF0/Lm5lc3RlZEZyYWdtZW50SW5kZXgpKXJldHVybntzZWxlY3RlZDpudWxsLG5leHQ6bixjb21wbGV0ZTohMX07bGV0IGY9ZC5ldmVyeShlPT5lLmNvbXBsZXRlKTtyZXR1cm4gZiYmbi5yb3dGcmFnbWVudEluZGV4PT09MD97c2VsZWN0ZWQ6S0YodCxgc291cmNlYCksbmV4dDpPYmplY3QuZnJlZXplKHtyb3dJbmRleDpuLnJvd0luZGV4KzEscm93RnJhZ21lbnRJbmRleDowLGNlbGxzOk9iamVjdC5mcmVlemUoW10pfSksY29tcGxldGU6ITB9OntzZWxlY3RlZDp7aW5wdXQ6ey4uLmMsaWQ6YCR7dC5pZH06ZnJhZ21lbnQ6JHtuLnJvd0ZyYWdtZW50SW5kZXh9YCxoZWlnaHRQdDpudWxsLGhlaWdodFJ1bGU6YGF1dG9gLGNlbGxzOmQubWFwKChlLHQpPT4oey4uLmUuaW5wdXQsaWQ6YCR7ZS5pbnB1dC5pZH06ZnJhZ21lbnQ6JHtuLnJvd0ZyYWdtZW50SW5kZXh9OiR7dH1gfSkpfSxsb2dpY2FsUm93SW5kZXg6dC5sb2dpY2FsUm93SW5kZXgsZnJhZ21lbnRJbmRleDpuLnJvd0ZyYWdtZW50SW5kZXgsb3duZXJzaGlwOmBzb3VyY2VgLHJhbmdlczpkLm1hcChlPT5lLnJhbmdlKX0sbmV4dDpPYmplY3QuZnJlZXplKHtyb3dJbmRleDpmP24ucm93SW5kZXgrMTpuLnJvd0luZGV4LHJvd0ZyYWdtZW50SW5kZXg6Zj8wOm4ucm93RnJhZ21lbnRJbmRleCsxLGNlbGxzOk9iamVjdC5mcmVlemUoZj9bXTpkLm1hcChlPT5lLm5leHQpKX0pLGNvbXBsZXRlOmZ9fWZ1bmN0aW9uIFpGKGUsdCxuKXtsZXQgcj11Rih7Li4uZS5pbnB1dCxpZDpgJHtlLmlucHV0LmlkfTpmcmFnbWVudDoke24ucGFnZS5vY2N1cnJlbmNlSWR9YCxyb3dzOnQubWFwKGU9PmUuaW5wdXQpfSxuLnBsYWNlbWVudCxuLnNlcnZpY2VzKS5sYXlvdXQsaT1yLnJvd3MubWFwKChlLHIpPT57bGV0IGk9dFtyXTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Li4uZSxsb2dpY2FsUm93SW5kZXg6aS5sb2dpY2FsUm93SW5kZXgsZnJhZ21lbnRJbmRleDppLmZyYWdtZW50SW5kZXgsb3duZXJzaGlwOmkub3duZXJzaGlwLG9jY3VycmVuY2VJZDpuLnBhZ2Uub2NjdXJyZW5jZUlkLHBoeXNpY2FsUGFnZUluZGV4Om4ucGFnZS5waHlzaWNhbFBhZ2VJbmRleCxkaXNwbGF5UGFnZU51bWJlcjpuLnBhZ2UuZGlzcGxheVBhZ2VOdW1iZXIsY2VsbHM6T2JqZWN0LmZyZWV6ZShlLmNlbGxzLm1hcCgoZSxuKT0+e2xldCBhPWkuaW5wdXQuY2VsbHNbbl0/LnZlcnRpY2FsTWVyZ2U/P2Bub25lYCxvPWkuaW5wdXQuY2VsbHNbbl0scz1hPT09YGNvbnRpbnVlYCYmdC5zbGljZSgwLHIpLnNvbWUoZT0+ZS5pbnB1dC5jZWxscy5zb21lKGU9PmUudmVydGljYWxNZXJnZT09PWByZXN0YXJ0YCYmZS5jb2x1bW5TdGFydD09PW8/LmNvbHVtblN0YXJ0JiZlLmNvbHVtblNwYW49PT1vPy5jb2x1bW5TcGFuKSk7cmV0dXJuIE9iamVjdC5mcmVlemUoey4uLmUsY29udGVudFJhbmdlczpPYmplY3QuZnJlZXplKFsuLi5pLnJhbmdlc1tuXT8/W11dKSwuLi5hPT09YGNvbnRpbnVlYCYmIXM/e3Zpc3VhbE1lcmdlT3duZXJzaGlwOmBjb250aW51YXRpb25gfTp7fX0pfSkpfSl9KSxhPXQuZmxhdE1hcCgodCxyKT0+e2xldCBhPWUuaW5wdXQucm93c1t0LmxvZ2ljYWxSb3dJbmRleF07cmV0dXJuIGE/ZS5mbG9hdGluZ1RhYmxlcy5mbGF0TWFwKG89PntsZXQgcz1hLmNlbGxzLmZpbmRJbmRleChlPT5lLmlkPT09by5ob3N0Q2VsbElkKTtpZihzPDB8fCEodC5yYW5nZXNbc10/LnNvbWUoZT0+ZS5ibG9ja0luZGV4PT09by5hbmNob3JCbG9ja0luZGV4JiYoZS5raW5kPT09YHdob2xlYHx8ZS5raW5kPT09YHBhcmFncmFwaGAmJmUubGluZVN0YXJ0PT09MCkpPz8hMSkpcmV0dXJuW107bGV0IGM9dC5pbnB1dC5jZWxsc1tzXSxsPWlbcl0/LmNlbGxzW3NdLHU9Yz8uYmxvY2tzLmZpbmRJbmRleChlPT5lLnNvdXJjZUJsb2NrSW5kZXg9PT1vLmFuY2hvckJsb2NrSW5kZXgpPz8tMSxkPXU8MD92b2lkIDA6bD8uYmxvY2tzW3VdLGY9ZS5uZXN0ZWRCeUlkW28udGFibGVJZF0/LmxheW91dDtpZighbHx8IWR8fCFmKXRocm93IEVycm9yKGBGbG9hdGluZyB0YWJsZSBvY2N1cnJlbmNlIHJlZmVyZW5jZXMgbWlzc2luZyByZXRhaW5lZCBsYXlvdXQgZGF0YWApO2xldCBwPU9iamVjdC5mcmVlemUoe3hQdDpsLmNvbnRlbnRCb3VuZHMueFB0LHlQdDpsLmZsb3dCb3VuZHMueVB0K2Qub2Zmc2V0UHQsd2lkdGhQdDpkLmxheW91dC5mbG93Qm91bmRzLndpZHRoUHQsaGVpZ2h0UHQ6ZC5sYXlvdXQuZmxvd0JvdW5kcy5oZWlnaHRQdH0pO3JldHVybltPYmplY3QuZnJlZXplKHtraW5kOmBmbG9hdGluZy10YWJsZS1wbGFjZW1lbnRgLG9jY3VycmVuY2VJZDpbbi5wYWdlLm9jY3VycmVuY2VJZCxvLmhvc3RDZWxsSWQsby5zb3VyY2VCbG9ja0luZGV4LG8udGFibGVJZF0uam9pbihgOmApLG93bmVyc2hpcDp0Lm93bmVyc2hpcCxwaHlzaWNhbFBhZ2VJbmRleDpuLnBhZ2UucGh5c2ljYWxQYWdlSW5kZXgsZGlzcGxheVBhZ2VOdW1iZXI6bi5wYWdlLmRpc3BsYXlQYWdlTnVtYmVyLC4uLm8sYW5jaG9yQm91bmRzOnAsY2hpbGQ6Zn0pXX0pOltdfSksbz1PYmplY3QuZnJlZXplKHQuZmxhdE1hcChlPT5lLnJlc29sdmVkRmxvYXRpbmdUYWJsZXM/P1tdKSkscz1uZXcgU2V0KG8ubWFwKGU9PmUub2NjdXJyZW5jZUlkKSksYz10LnNvbWUoZT0+ZS5jbGlwQXRQYWdlRW5kPT09ITApLGw9Yz9NYXRoLm1pbihyLmFkdmFuY2VQdCxuLmF2YWlsYWJsZUhlaWdodFB0KTpyLmFkdmFuY2VQdCx1PWM/ey4uLnIuZmxvd0JvdW5kcyxoZWlnaHRQdDpsfTpyLmZsb3dCb3VuZHM7cmV0dXJuIE9iamVjdC5mcmVlemUoey4uLnIsZmxvd0JvdW5kczp1LC4uLmM/e2lua0JvdW5kczp1LGNsaXBCb3VuZHM6dSxhZHZhbmNlUHQ6bH06e30sY29sdW1uV2lkdGhzUHQ6ZS5sYXlvdXQuY29sdW1uV2lkdGhzUHQscm93czpPYmplY3QuZnJlZXplKGkpLGZsb2F0aW5nVGFibGVzOk9iamVjdC5mcmVlemUoYS5maWx0ZXIoZT0+IXMuaGFzKGUub2NjdXJyZW5jZUlkKSkpLHJlc29sdmVkRmxvYXRpbmdUYWJsZXM6bywuLi5uLmZsb2F0aW5nVGFibGVSZWdpc3RyeT97cmVzb2x2ZWRGbG9hdGluZ1RhYmxlQ29vcmRpbmF0ZVNwYWNlOm4uZmxvYXRpbmdUYWJsZVJlZ2lzdHJ5LmNvb3JkaW5hdGVTcGFjZX06e319KX1mdW5jdGlvbiBRRihlLHQsbil7aWYodC5yb3dJbmRleD49ZS5pbnB1dC5yb3dzLmxlbmd0aClyZXR1cm57ZnJhZ21lbnQ6bnVsbCxuZXh0Q3Vyc29yOm51bGwscmVxdWlyZXNGcmVzaFBhZ2U6ITF9O2xldCByPVtdLGk9bi5mbG9hdGluZ1RhYmxlUmVnaXN0cnk7aWYoaSYmaS5mbG93RG9tYWluSWQubGVuZ3RoPT09MCl0aHJvdyBFcnJvcihgRmxvYXRpbmcgdGFibGUgcmVnaXN0cnkgY29vcmRpbmF0ZS9kb21haW4gbWlzbWF0Y2hgKTtsZXQgYT1PYmplY3QuZnJlZXplKFsuLi5pPy5lbnRyaWVzPz9bXV0pLG89aT8ubmV4dFBhcmFncmFwaElkPz8wLHM9TWF0aC5tYXgoMCxuLmF2YWlsYWJsZUhlaWdodFB0KSxjPWpGKGUuaW5wdXQpO2lmKHQucm93SW5kZXg+PWMmJnQucm93SW5kZXg+MCYmYz4wKWZvcihsZXQgaT0wO2k8YztpKz0xKXtsZXQgYz1WRihlLFJGKGUsZS5pbnB1dC5yb3dzW2ldLGByZXBlYXRlZC1oZWFkZXJgLG4pLGByZXBlYXRlZC1oZWFkZXJgLG4uYXZhaWxhYmxlSGVpZ2h0UHQtcyxuLGEsbyxBRigpLCgpPT4hMCksbD1jLnJvdyx1PVBGKGUsbCxpLG4pO2lmKHU+cytPRilyZXR1cm57ZnJhZ21lbnQ6bnVsbCxuZXh0Q3Vyc29yOnQscmVxdWlyZXNGcmVzaFBhZ2U6ITB9O3IucHVzaChLRihsLGByZXBlYXRlZC1oZWFkZXJgLDAsITEsYy5yZXNvbHZlZCkpLGE9Yy5yZWdpc3RyeSxvPWMubmV4dFBhcmFncmFwaElkLHMtPXV9bGV0IGw9dCx1PXQucm93SW5kZXgsZD10LnJvd0ZyYWdtZW50SW5kZXg9PT0wJiZ0LmNlbGxzLmxlbmd0aD09PTAmJmUubGF5b3V0LnJvd3Muc2xpY2UodC5yb3dJbmRleCkucmVkdWNlKChlLHQpPT5lK01hdGgubWF4KDAsdC5oZWlnaHRQdCksMCk8PXMrT0YsZj0hMTtmb3IoO3U8ZS5pbnB1dC5yb3dzLmxlbmd0aDspe2xldCBpPWBzb3VyY2VgLGM9UkYoZSxlLmlucHV0LnJvd3NbdV0saSxuKSxwPXU9PT10LnJvd0luZGV4P3Q6T2JqZWN0LmZyZWV6ZSh7cm93SW5kZXg6dSxyb3dGcmFnbWVudEluZGV4OjAsY2VsbHM6T2JqZWN0LmZyZWV6ZShbXSl9KSxtPXUhPT10LnJvd0luZGV4fHx0LnJvd0ZyYWdtZW50SW5kZXg9PT0wLGg9bT9WRihlLGMsaSxuLmF2YWlsYWJsZUhlaWdodFB0LXMsbixhLG8scCxlPT57bGV0IHQ9Yy5jZWxscy5maW5kSW5kZXgodD0+dC5pZD09PWUuaG9zdENlbGxJZCksbj1jLmNlbGxzW3RdPy5ibG9ja3MuZmluZEluZGV4KHQ9PnQuc291cmNlQmxvY2tJbmRleD09PWUuYW5jaG9yQmxvY2tJbmRleCk/Py0xO2lmKG48MClyZXR1cm4hMTtsZXQgcj1wLmNlbGxzW3RdPz9rRigpO3JldHVybiByLmJsb2NrSW5kZXg8bnx8ci5ibG9ja0luZGV4PT09biYmci5wYXJhZ3JhcGhMaW5lU3RhcnQ9PT0wfSk6e3JvdzpjLHJlc29sdmVkOk9iamVjdC5mcmVlemUoW10pLHJlZ2lzdHJ5OmEsbmV4dFBhcmFncmFwaElkOm99LGc9aC5yb3csXz1kfHxmP0ZGKGUsZyx1LG4pOlBGKGUsZyx1LG4pO2lmKG0mJl88PXMrT0Ype3IucHVzaChLRihnLGBzb3VyY2VgLDAsITEsaC5yZXNvbHZlZCkpLGE9aC5yZWdpc3RyeSxvPWgubmV4dFBhcmFncmFwaElkLHMtPV8sdSs9MSxsPXU8ZS5pbnB1dC5yb3dzLmxlbmd0aD9PYmplY3QuZnJlZXplKHtyb3dJbmRleDp1LHJvd0ZyYWdtZW50SW5kZXg6MCxjZWxsczpPYmplY3QuZnJlZXplKFtdKX0pOm51bGw7Y29udGludWV9aWYoZy5jYW50U3BsaXQpe2lmKHIuc29tZShlPT5lLm93bmVyc2hpcD09PWBzb3VyY2VgKSlicmVhaztpZihfKyhuLmF2YWlsYWJsZUhlaWdodFB0LXMpPD1uLmZyZXNoUGFnZUhlaWdodFB0K09GfHxuLmF2YWlsYWJsZUhlaWdodFB0K09GPG4uZnJlc2hQYWdlSGVpZ2h0UHQpcmV0dXJue2ZyYWdtZW50Om51bGwsbmV4dEN1cnNvcjp0LHJlcXVpcmVzRnJlc2hQYWdlOiEwfTtpZihTUCh7Y29tcGF0aWJpbGl0eTpuLmNvbXBhdGliaWxpdHksYXZhaWxhYmxlSGVpZ2h0UHQ6bi5hdmFpbGFibGVIZWlnaHRQdCxmcmVzaFBhZ2VIZWlnaHRQdDpuLmZyZXNoUGFnZUhlaWdodFB0LGVwc2lsb25QdDpPRn0pKXtyLnB1c2goS0YoZyxgc291cmNlYCwwLCEwLGgucmVzb2x2ZWQpKSxhPWgucmVnaXN0cnksbz1oLm5leHRQYXJhZ3JhcGhJZCxsPXUrMTxlLmlucHV0LnJvd3MubGVuZ3RoP09iamVjdC5mcmVlemUoe3Jvd0luZGV4OnUrMSxyb3dGcmFnbWVudEluZGV4OjAsY2VsbHM6T2JqZWN0LmZyZWV6ZShbXSl9KTpudWxsO2JyZWFrfX1pZihuLm92ZXJzaXplZFJvd1BvbGljeT09PWBhdG9taWNgJiZyLmV2ZXJ5KGU9PmUub3duZXJzaGlwPT09YHJlcGVhdGVkLWhlYWRlcmApJiZuLmF2YWlsYWJsZUhlaWdodFB0K09GPj1uLmZyZXNoUGFnZUhlaWdodFB0JiZfPm4uZnJlc2hQYWdlSGVpZ2h0UHQrT0Ype3IucHVzaChLRihnLGBzb3VyY2VgLDAsITEsaC5yZXNvbHZlZCkpLGE9aC5yZWdpc3RyeSxvPWgubmV4dFBhcmFncmFwaElkLGw9dSsxPGUuaW5wdXQucm93cy5sZW5ndGg/T2JqZWN0LmZyZWV6ZSh7cm93SW5kZXg6dSsxLHJvd0ZyYWdtZW50SW5kZXg6MCxjZWxsczpPYmplY3QuZnJlZXplKFtdKX0pOm51bGw7YnJlYWt9bGV0IHY9WEYoZSxjLHAscyxuKSx5PW51bGwsYj1uZXcgU2V0O2Zvcig7di5zZWxlY3RlZDspe2xldCB0PVdGKGUsdi5zZWxlY3RlZCkscj1KU09OLnN0cmluZ2lmeShbLi4udF0uc29ydCgpKTtpZihiLmhhcyhyKSl0aHJvdyBFcnJvcihgRmxvYXRpbmcgdGFibGUgc2VsZWN0ZWQgb3duZXJzaGlwIGRpZCBub3QgY29udmVyZ2VgKTtiLmFkZChyKSx5PVZGKGUsYyxpLG4uYXZhaWxhYmxlSGVpZ2h0UHQtcyxuLGEsbyxwLGU9PnQuaGFzKFVGKGUpKSk7bGV0IGw9WEYoZSx5LnJvdyxwLHMsbik7aWYoIWwuc2VsZWN0ZWQpe3Y9bDticmVha31sZXQgdT1XRihlLGwuc2VsZWN0ZWQpO2lmKHY9bCxHRih0LHUpKWJyZWFrO3k9bnVsbH1pZih2LnNlbGVjdGVkJiZ5PT09bnVsbCl0aHJvdyBFcnJvcihgRmxvYXRpbmcgdGFibGUgc2VsZWN0ZWQgb3duZXJzaGlwIGRpZCBub3QgY29udmVyZ2VgKTtpZih2LnNlbGVjdGVkKXtsZXQgdD15Py5yZXNvbHZlZD8/W107aWYodC5zb21lKHQ9PiFIRihlLHYuc2VsZWN0ZWQsdC5zb3VyY2UpKSl0aHJvdyBFcnJvcihgRmxvYXRpbmcgdGFibGUgdHJhbnNhY3Rpb24gaW5jbHVkZWQgYW4gdW5vd25lZCBvY2N1cnJlbmNlYCk7bGV0IGk9YS5sZW5ndGgsYz0oeT8ucmVnaXN0cnk/P2EpLnNsaWNlKGkpO2lmKHIucHVzaCh7Li4udi5zZWxlY3RlZCwuLi50Lmxlbmd0aD97cmVzb2x2ZWRGbG9hdGluZ1RhYmxlczpPYmplY3QuZnJlZXplKHQpfTp7fX0pLGE9T2JqZWN0LmZyZWV6ZShbLi4uYSwuLi5jXSksbys9Yy5sZW5ndGgsbD12Lm5leHQucm93SW5kZXg+PWUuaW5wdXQucm93cy5sZW5ndGg/bnVsbDp2Lm5leHQsdi5jb21wbGV0ZSYmdi5uZXh0LnJvd0luZGV4PGUuaW5wdXQucm93cy5sZW5ndGgpe3M9TWF0aC5tYXgoMCxzLUlGKGUsdi5zZWxlY3RlZC5pbnB1dCx1LG4pKSxmPSEwLHU9di5uZXh0LnJvd0luZGV4O2NvbnRpbnVlfX1icmVha31pZihyLmZpbHRlcihlPT5lLm93bmVyc2hpcD09PWBzb3VyY2VgKS5sZW5ndGg9PT0wKXtpZighKG4uYXZhaWxhYmxlSGVpZ2h0UHQrT0Y8bi5mcmVzaFBhZ2VIZWlnaHRQdCkpdGhyb3cgbmV3IFooYE5PTl9DT05WRVJHRU5DRWAsYFRhYmxlIHBhZ2luYXRpb24gY2Fubm90IGFkdmFuY2UgZnJvbSBhIGZyZXNoIHBhZ2VgKTtyZXR1cm57ZnJhZ21lbnQ6bnVsbCxuZXh0Q3Vyc29yOnQscmVxdWlyZXNGcmVzaFBhZ2U6ITB9fWxldCBwPVpGKGUscixuKTtmb3IoO3AuYWR2YW5jZVB0Pm4uYXZhaWxhYmxlSGVpZ2h0UHQrT0Y7KXtsZXQgdD1yLmF0KC0xKSxpPXIuZmlsdGVyKGU9PmUub3duZXJzaGlwPT09YHNvdXJjZWApLmxlbmd0aDtpZighKHQ/Lm93bmVyc2hpcD09PWBzb3VyY2VgJiZ0LmZyYWdtZW50SW5kZXg9PT0wJiZ0LnJhbmdlcy5ldmVyeShlPT5lLmV2ZXJ5KGU9PmUua2luZD09PWB3aG9sZWApKSl8fGk8PTEpYnJlYWs7ci5wb3AoKSxsPU9iamVjdC5mcmVlemUoe3Jvd0luZGV4OnQubG9naWNhbFJvd0luZGV4LHJvd0ZyYWdtZW50SW5kZXg6MCxjZWxsczpPYmplY3QuZnJlZXplKFtdKX0pLHA9WkYoZSxyLG4pfXJldHVybiBwLmFkdmFuY2VQdD5uLmF2YWlsYWJsZUhlaWdodFB0K09GJiZuLmF2YWlsYWJsZUhlaWdodFB0K09GPG4uZnJlc2hQYWdlSGVpZ2h0UHQmJnAuYWR2YW5jZVB0PD1uLmZyZXNoUGFnZUhlaWdodFB0K09GP3tmcmFnbWVudDpudWxsLG5leHRDdXJzb3I6dCxyZXF1aXJlc0ZyZXNoUGFnZTohMH06e2ZyYWdtZW50OnAsbmV4dEN1cnNvcjpsLHJlcXVpcmVzRnJlc2hQYWdlOiExLGZsb2F0aW5nVGFibGVQbGFjZW1lbnRzOnAucmVzb2x2ZWRGbG9hdGluZ1RhYmxlcywuLi5pP3tmbG9hdGluZ1RhYmxlUmVnaXN0cnlEZWx0YTooKCk9PntsZXQgZT1hLnNsaWNlKGkuZW50cmllcy5sZW5ndGgpLmZpbHRlcihlPT5wLnJlc29sdmVkRmxvYXRpbmdUYWJsZXMuc29tZSh0PT50Lm9jY3VycmVuY2VJZD09PWUub2NjdXJyZW5jZUlkKSk7cmV0dXJuIGxOKGksZSxpLm5leHRQYXJhZ3JhcGhJZCtlLmxlbmd0aCl9KSgpfTp7fX19ZnVuY3Rpb24gJEYoZSx0LG4scil7bGV0IGk9RmsoZSxuLmZsb3dEb21haW5JZCksYT1waih0LHsuLi5uLGV4Y2x1c2lvbnM6T2JqZWN0LmZyZWV6ZShbLi4ubi5leGNsdXNpb25zLC4uLmkuZXhjbHVzaW9ucywuLi5yPy5leGNsdXNpb25zPz9bXV0pLGFuY2hvckNvbGxpc2lvbnM6T2JqZWN0LmZyZWV6ZShbLi4ubi5hbmNob3JDb2xsaXNpb25zPz9bXSwuLi5pLmNvbGxpc2lvbnMsLi4ucj8uY29sbGlzaW9ucz8/W11dKX0pO3JldHVybiBJayhlLGksYS5sYXlvdXQpLGF9ZnVuY3Rpb24gZUkoZSx0KXtyZXR1cm4gZS5mbGF0TWFwKChlLG4pPT5lLmtpbmQ9PT1gc2hhcGVgJiZlLmFuY2hvck9jY3VycmVuY2VJZCYmZS5hdXRob3JlZFdyYXA9PT12b2lkIDA/W106W3tpZDplLmltYWdlS2V5fHxgJHt0fTpmbG9hdDoke259YCx3cmFwOmUuYXV0aG9yZWRXcmFwPz8oZS5tb2RlPT09YHRvcEFuZEJvdHRvbWA/YHRvcEFuZEJvdHRvbWA6YHNxdWFyZWApLHdyYXBTaWRlOiR5KGUuc2lkZSksYm91bmRzOnt4UHQ6ZS54TGVmdCx5UHQ6ZS55VG9wLHdpZHRoUHQ6TWF0aC5tYXgoMCxlLnhSaWdodC1lLnhMZWZ0KSxoZWlnaHRQdDpNYXRoLm1heCgwLGUueUJvdHRvbS1lLnlUb3ApfSxwb2x5Z29uOmUud3JhcFBvbHlnb24/P1t7eFB0OmUueExlZnQseVB0OmUueVRvcH0se3hQdDplLnhSaWdodCx5UHQ6ZS55VG9wfSx7eFB0OmUueFJpZ2h0LHlQdDplLnlCb3R0b219LHt4UHQ6ZS54TGVmdCx5UHQ6ZS55Qm90dG9tfV0sLi4uZS5raW5kPT09YHRhYmxlYCYmIWUuYW5jaG9yT2NjdXJyZW5jZUlkP3t2ZXJ0aWNhbE93bmVyc2hpcDpgcGFnZWB9Ont9LC4uLmUuYW5jaG9yT2NjdXJyZW5jZUlkP3thbmNob3JPY2N1cnJlbmNlSWQ6ZS5hbmNob3JPY2N1cnJlbmNlSWQsdmVydGljYWxPd25lcnNoaXA6YHBhZ2VgfTp7fX1dKX1mdW5jdGlvbiB0SShlKXtyZXR1cm4gZS5mbGF0TWFwKGU9PmUua2luZCE9PWBzaGFwZWB8fCFlLmFuY2hvck9jY3VycmVuY2VJZD9bXTpbe29jY3VycmVuY2VJZDplLmFuY2hvck9jY3VycmVuY2VJZCxib3VuZHM6e3hQdDplLmltYWdlWCx5UHQ6ZS5pbWFnZVksd2lkdGhQdDplLmltYWdlVyxoZWlnaHRQdDplLmltYWdlSH0saG9yaXpvbnRhbE93bmVyc2hpcDpgcGFnZWAsdmVydGljYWxPd25lcnNoaXA6YHBhZ2VgfV0pfWZ1bmN0aW9uIG5JKGUpe2lmKGUub2NjdXJyZW5jZUlkLmxlbmd0aD09PTApdGhyb3cgRXJyb3IoYERyYXdpbmdNTCBjb2xsaXNpb24gb2NjdXJyZW5jZSBJRCBtdXN0IG5vdCBiZSBlbXB0eWApO2xldHt4UHQ6dCx5UHQ6bix3aWR0aFB0OnIsaGVpZ2h0UHQ6aX09ZS5ib3VuZHM7aWYoIVt0LG4scixpXS5ldmVyeShOdW1iZXIuaXNGaW5pdGUpfHxyPDB8fGk8MCl0aHJvdyBFcnJvcihgRHJhd2luZ01MIGNvbGxpc2lvbiBib3VuZHMgYXJlIGludmFsaWQ6ICR7ZS5vY2N1cnJlbmNlSWR9YCk7aWYoZS5ob3Jpem9udGFsT3duZXJzaGlwIT09YHBhZ2VgJiZlLmhvcml6b250YWxPd25lcnNoaXAhPT1gaG9zdGB8fGUudmVydGljYWxPd25lcnNoaXAhPT1gcGFnZWAmJmUudmVydGljYWxPd25lcnNoaXAhPT1gaG9zdGApdGhyb3cgRXJyb3IoYERyYXdpbmdNTCBjb2xsaXNpb24gb3duZXJzaGlwIGlzIGludmFsaWQ6ICR7ZS5vY2N1cnJlbmNlSWR9YCl9ZnVuY3Rpb24gckkoZSl7cmV0dXJuIG5JKGUpLE9iamVjdC5mcmVlemUoe29jY3VycmVuY2VJZDplLm9jY3VycmVuY2VJZCxib3VuZHM6T2JqZWN0LmZyZWV6ZSh7Li4uZS5ib3VuZHN9KSxob3Jpem9udGFsT3duZXJzaGlwOmUuaG9yaXpvbnRhbE93bmVyc2hpcCx2ZXJ0aWNhbE93bmVyc2hpcDplLnZlcnRpY2FsT3duZXJzaGlwLC4uLmUucmVsYXRpdmVIZWlnaHQ9PT12b2lkIDA/e306e3JlbGF0aXZlSGVpZ2h0OmUucmVsYXRpdmVIZWlnaHR9fSl9ZnVuY3Rpb24gaUkoZSx0KXtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Y29vcmRpbmF0ZVNwYWNlOnQsZmxvd0RvbWFpbklkOmUsZW50cmllczpPYmplY3QuZnJlZXplKFtdKX0pfWZ1bmN0aW9uIGFJKGUsdCl7cmV0dXJuIE9iamVjdC5mcmVlemUoe2Nvb3JkaW5hdGVTcGFjZTplLmNvb3JkaW5hdGVTcGFjZSxmbG93RG9tYWluSWQ6ZS5mbG93RG9tYWluSWQsYmFzZUVudHJpZXM6ZS5lbnRyaWVzLGJhc2VFbnRyeUNvdW50OmUuZW50cmllcy5sZW5ndGgsZW50cmllczpPYmplY3QuZnJlZXplKHQubWFwKHJJKSl9KX1mdW5jdGlvbiBvSShlLHQpe2lmKHQuY29vcmRpbmF0ZVNwYWNlIT09ZS5jb29yZGluYXRlU3BhY2UpdGhyb3cgRXJyb3IoYERyYXdpbmdNTCBjb2xsaXNpb24gcmVnaXN0cnkgY29vcmRpbmF0ZSBzcGFjZSBtaXNtYXRjaGApO2lmKHQuZmxvd0RvbWFpbklkIT09ZS5mbG93RG9tYWluSWQpdGhyb3cgRXJyb3IoYERyYXdpbmdNTCBjb2xsaXNpb24gcmVnaXN0cnkgZmxvdyBkb21haW4gbWlzbWF0Y2hgKTtpZih0LmJhc2VFbnRyaWVzIT09ZS5lbnRyaWVzfHx0LmJhc2VFbnRyeUNvdW50IT09ZS5lbnRyaWVzLmxlbmd0aCl0aHJvdyBFcnJvcihgRHJhd2luZ01MIGNvbGxpc2lvbiByZWdpc3RyeSBkZWx0YSBpcyBzdGFsZWApO2xldCBuPW5ldyBTZXQoZS5lbnRyaWVzLm1hcChlPT5lLm9jY3VycmVuY2VJZCkpO2ZvcihsZXQgZSBvZiB0LmVudHJpZXMpe2lmKG5JKGUpLG4uaGFzKGUub2NjdXJyZW5jZUlkKSl0aHJvdyBFcnJvcihgRHJhd2luZ01MIGNvbGxpc2lvbiBvY2N1cnJlbmNlIGNvbW1pdHRlZCB0d2ljZTogJHtlLm9jY3VycmVuY2VJZH1gKTtuLmFkZChlLm9jY3VycmVuY2VJZCl9fWZ1bmN0aW9uIHNJKGUsdCl7cmV0dXJuIG9JKGUsdCksT2JqZWN0LmZyZWV6ZSh7Y29vcmRpbmF0ZVNwYWNlOmUuY29vcmRpbmF0ZVNwYWNlLGZsb3dEb21haW5JZDplLmZsb3dEb21haW5JZCxlbnRyaWVzOk9iamVjdC5mcmVlemUoWy4uLmUuZW50cmllcywuLi50LmVudHJpZXNdKX0pfWZ1bmN0aW9uIGNJKGUsdCl7cmV0dXJuICRPKGUsdCl9ZnVuY3Rpb24gbEkoZSl7cmV0dXJuIGViKGUud3JhcE1vZGUpJiZjSShlLmFuY2hvcllSZWxhdGl2ZUZyb20/P251bGwsZS5hbmNob3JZRnJvbVBhcmE/PyExKX1mdW5jdGlvbiB1SShlKXtsZXQgdD1SbShlKTtyZXR1cm4gdD09PWBVYHx8dD09PWBUdWA/YHVwcmlnaHRgOnQ9PT1gVHJgP2Byb3RhdGVgOmBzaWRld2F5c2B9Y29uc3QgZEk9bmV3IFNldChbNjUyOTRdKTtmdW5jdGlvbiBmSShlKXtyZXR1cm4gZEkuaGFzKGUpP3tkeDouNCxkeTotLjR9OntkeDowLGR5OjB9fWZ1bmN0aW9uIHBJKGUpe2xldCB0PVtdLG49YGAscj1udWxsO2ZvcihsZXQgaSBvZiBlKXtsZXQgZT11SShpLmNvZGVQb2ludEF0KDApPz8wKTtyPT09bnVsbD8ocj1lLG49aSk6ZT09PXI/bis9aToodC5wdXNoKHt0ZXh0Om4sbW9kZTpyfSksbj1pLHI9ZSl9cmV0dXJuIG4hPT1gYCYmciE9PW51bGwmJnQucHVzaCh7dGV4dDpuLG1vZGU6cn0pLHR9Y29uc3QgbUk9KCk9PiExO2Z1bmN0aW9uIGhJKGUsdCxuKXtsZXQgcj1lLnRleHRCYXNlbGluZTtlLnRleHRCYXNlbGluZT1gYWxwaGFiZXRpY2A7bGV0IGk9ZS5tZWFzdXJlVGV4dCh0KTtlLnRleHRCYXNlbGluZT1yO2xldCBhPWkuZm9udEJvdW5kaW5nQm94QXNjZW50LG89aS5mb250Qm91bmRpbmdCb3hEZXNjZW50O3JldHVybiB0eXBlb2YgYT09YG51bWJlcmAmJnR5cGVvZiBvPT1gbnVtYmVyYCYmKGEhPT0wfHxvIT09MCk/KGEtbykvMjouMzgqbn1mdW5jdGlvbiBnSShlLHQpe2xldCBuPWUudGV4dEFsaWduLHI9ZS50ZXh0QmFzZWxpbmU7ZS50ZXh0QWxpZ249YGNlbnRlcmAsZS50ZXh0QmFzZWxpbmU9YG1pZGRsZWA7bGV0IGk9ZS5tZWFzdXJlVGV4dCh0KTtlLnRleHRBbGlnbj1uLGUudGV4dEJhc2VsaW5lPXI7bGV0IGE9aS5hY3R1YWxCb3VuZGluZ0JveEFzY2VudCxvPWkuYWN0dWFsQm91bmRpbmdCb3hEZXNjZW50O3JldHVybiB0eXBlb2YgYT09YG51bWJlcmAmJnR5cGVvZiBvPT1gbnVtYmVyYD8oYS1vKS8yOjB9ZnVuY3Rpb24gX0koZSl7cmV0dXJuIHVJKGUpPT09YHJvdGF0ZWAmJlZtKGUpPT09bnVsbCYmIVdtKGUpfWZ1bmN0aW9uIHZJKGUpe2xldCB0PVJtKGUpO3JldHVybiB0PT09YFR1YHx8dD09PWBUcmB9ZnVuY3Rpb24geUkoZSx0KXtsZXQgbj1lLnRleHRBbGlnbixyPWUudGV4dEJhc2VsaW5lO2UudGV4dEFsaWduPWBjZW50ZXJgLGUudGV4dEJhc2VsaW5lPWBtaWRkbGVgO2xldCBpPWUubWVhc3VyZVRleHQodCk7ZS50ZXh0QWxpZ249bixlLnRleHRCYXNlbGluZT1yO2xldCBhPWkuYWN0dWFsQm91bmRpbmdCb3hMZWZ0LG89aS5hY3R1YWxCb3VuZGluZ0JveFJpZ2h0O3JldHVybiB0eXBlb2YgYSE9YG51bWJlcmB8fHR5cGVvZiBvIT1gbnVtYmVyYHx8IU51bWJlci5pc0Zpbml0ZShhKXx8IU51bWJlci5pc0Zpbml0ZShvKT9udWxsOntleHRlbnRQeDphK28sc2hpZnRQeDooYS1vKS8yfX1mdW5jdGlvbiBiSShlLHQsbixyLGksYSxvKXtsZXQgcz1lLnRleHRBbGlnbixjPWUudGV4dEJhc2VsaW5lLGw9KCk9PihlLnRleHRBbGlnbj1uPT09YHNpZGV3YXlzYD9gbGVmdGA6YGNlbnRlcmAsZS50ZXh0QmFzZWxpbmU9bj09PWBzaWRld2F5c2A/YGFscGhhYmV0aWNgOmBtaWRkbGVgLGUubWVhc3VyZVRleHQodCkpLHU7dHJ5e3U9bz9paChlLGwpOmwoKX1maW5hbGx5e2UudGV4dEFsaWduPXMsZS50ZXh0QmFzZWxpbmU9Y31pZihuPT09YHVwcmlnaHRgKXtpZighTnVtYmVyLmlzRmluaXRlKHUuYWN0dWFsQm91bmRpbmdCb3hMZWZ0KXx8IU51bWJlci5pc0Zpbml0ZSh1LmFjdHVhbEJvdW5kaW5nQm94UmlnaHQpKXJldHVybjtsZXQgZT11LmFjdHVhbEJvdW5kaW5nQm94TGVmdCx0PXUuYWN0dWFsQm91bmRpbmdCb3hSaWdodCxuPWE9PT1gdmVydGljYWwtcmxgPzE6aSxvPS0oci54UHQtZSkqbixzPS0oci54UHQrdCkqbjtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7c3RhcnRQdDpNYXRoLm1pbihvLHMpLGVuZFB0Ok1hdGgubWF4KG8scyl9KX1pZighTnVtYmVyLmlzRmluaXRlKHUuYWN0dWFsQm91bmRpbmdCb3hBc2NlbnQpfHwhTnVtYmVyLmlzRmluaXRlKHUuYWN0dWFsQm91bmRpbmdCb3hEZXNjZW50KSlyZXR1cm47bGV0IGQ9dS5hY3R1YWxCb3VuZGluZ0JveEFzY2VudCxmPXUuYWN0dWFsQm91bmRpbmdCb3hEZXNjZW50LHA9ci55UHQtZCxtPXIueVB0K2Y7cmV0dXJuIE9iamVjdC5mcmVlemUoe3N0YXJ0UHQ6TWF0aC5taW4ocCxtKSxlbmRQdDpNYXRoLm1heChwLG0pfSl9ZnVuY3Rpb24geEkoZSx0LG4scixpKXtsZXQgYT1lLm1lYXN1cmVUZXh0KHQpLndpZHRoO2lmKHZJKG4pJiZyKG4pKXtsZXQgbj1haChlLHQpO3JldHVybntuYXR1cmFsUHg6bi5jZWxsQWR2YW5jZVB4LHZlcnQ6bixyb3RhdGVJbmtTaGlmdFB4OjB9fWlmKGkmJl9JKG4pKXtsZXQgbj15SShlLHQpO2lmKG4hPT1udWxsJiZuLmV4dGVudFB4PmEpcmV0dXJue25hdHVyYWxQeDpuLmV4dGVudFB4LHZlcnQ6bnVsbCxyb3RhdGVJbmtTaGlmdFB4Om4uc2hpZnRQeH19cmV0dXJue25hdHVyYWxQeDphLHZlcnQ6bnVsbCxyb3RhdGVJbmtTaGlmdFB4OjB9fWZ1bmN0aW9uIFNJKGUsdCxuLHIsaT0xLGE9ITEsbz1tSSxzPWB2ZXJ0aWNhbC1ybGApe2xldCBjPVtdLGw9aEkoZSx0LG4pLHU9MCxkPTA7Zm9yKGxldCBmIG9mIHBJKHQpKXtpZihmLm1vZGU9PT1gc2lkZXdheXNgKXtsZXQgdD1bLi4uZi50ZXh0XS5sZW5ndGgsbj1lLm1lYXN1cmVUZXh0KGYudGV4dCkud2lkdGgqaStyKnQsYT17eFB0OjAseVB0Omx9LG89YkkoZSxmLnRleHQsYHNpZGV3YXlzYCxhLGkscywhMSk7Yy5wdXNoKHtyYW5nZTp7c3RhcnQ6ZCxlbmQ6ZCtmLnRleHQubGVuZ3RofSx0ZXh0OmYudGV4dCxvcmllbnRhdGlvbjpgc2lkZXdheXNgLG9yaWdpblB0OnUsYWR2YW5jZVB0Om4sZHJhd09mZnNldFB0OmEsdmVydGljYWxGZWF0dXJlOiExLC4uLm8/e2Jsb2NrQXhpc0lua0JvdW5kczpvfTp7fX0pLHUrPW4sZCs9Zi50ZXh0Lmxlbmd0aDtjb250aW51ZX1mb3IobGV0IHQgb2YgZi50ZXh0KXtsZXQgbD10LmNvZGVQb2ludEF0KDApPz8wLGY9dUkobCkscD1mPT09YHJvdGF0ZWA/Vm0obCk6bnVsbCxtPWY9PT1gcm90YXRlYCYmcD09PW51bGwmJldtKGwpLGg9eEkoZSx0LGwsbyxhKSxnPWgubmF0dXJhbFB4KmkrcixfPXtzdGFydDpkLGVuZDpkK3QubGVuZ3RofTtpZihoLnZlcnQhPT1udWxsKXtsZXQgbj17eFB0OjAseVB0OjB9LHI9YkkoZSx0LGB1cHJpZ2h0YCxuLGkscywhMCk7Yy5wdXNoKHtyYW5nZTpfLHRleHQ6dCxvcmllbnRhdGlvbjpgdXByaWdodGAsb3JpZ2luUHQ6dStoLnZlcnQub3JpZ2luSW5DZWxsUHgqaSxhZHZhbmNlUHQ6ZyxkcmF3T2Zmc2V0UHQ6bix2ZXJ0aWNhbEZlYXR1cmU6ITAsLi4ucj97YmxvY2tBeGlzSW5rQm91bmRzOnJ9Ont9fSl9ZWxzZSBpZihmPT09YHVwcmlnaHRgfHxwIT09bnVsbHx8bSl7bGV0IHI9cD09PW51bGw/em0obCk6bnVsbCxhPXA/P3Isbz1hPT09bnVsbD90OlN0cmluZy5mcm9tQ29kZVBvaW50KGEpLGQ9YT09PW51bGw/ZkkobCk6e2R4OjAsZHk6MH0sZj1weChyKSxtPWQuZHk9PT0wJiYhZj9nSShlLG8pL246MCxoPXt4UHQ6ZC5keCpuLHlQdDoobStkLmR5KSpufSx2PWJJKGUsbyxgdXByaWdodGAsaCxpLHMsITEpO2MucHVzaCh7cmFuZ2U6Xyx0ZXh0Om8sb3JpZW50YXRpb246YHVwcmlnaHRgLG9yaWdpblB0OnUrZy8yLGFkdmFuY2VQdDpnLGRyYXdPZmZzZXRQdDpoLHZlcnRpY2FsRmVhdHVyZTohMSwuLi52P3tibG9ja0F4aXNJbmtCb3VuZHM6dn06e319KX1lbHNle2xldCBuPXt4UHQ6MCx5UHQ6MH0scj1iSShlLHQsYHJvdGF0ZWAsbixpLHMsITEpO2MucHVzaCh7cmFuZ2U6Xyx0ZXh0OnQsb3JpZW50YXRpb246YHJvdGF0ZWAsb3JpZ2luUHQ6dStnLzIraSpoLnJvdGF0ZUlua1NoaWZ0UHgsYWR2YW5jZVB0OmcsZHJhd09mZnNldFB0Om4sdmVydGljYWxGZWF0dXJlOiExLC4uLnI/e2Jsb2NrQXhpc0lua0JvdW5kczpyfTp7fX0pfXUrPWcsZCs9dC5sZW5ndGh9fXJldHVybiBjfWZ1bmN0aW9uIENJKGUsdCxuKXtsZXQgcj0wO2ZvcihsZXQgaSBvZiBwSSh0KSl7aWYoaS5tb2RlPT09YHNpZGV3YXlzYCl7cis9ZS5tZWFzdXJlVGV4dChpLnRleHQpLndpZHRoO2NvbnRpbnVlfWZvcihsZXQgdCBvZiBpLnRleHQpe2xldCBpPXhJKGUsdCx0LmNvZGVQb2ludEF0KDApPz8wLG4sITApO3IrPWkubmF0dXJhbFB4fX1yZXR1cm4gci1lLm1lYXN1cmVUZXh0KHQpLndpZHRofWZ1bmN0aW9uIHdJKGUsdCl7cmV0dXJuIENJKGUsdCx0PT5yaChlLHQpKX1mdW5jdGlvbiBUSShlLHQsbixyLGkpe3JldHVybnt4OnQseTppLShlK24pLHc6cixoOm59fWZ1bmN0aW9uIEVJKGUsdCxuKXtoQyhlLmJsb2Nrcy5ib2R5KTtsZXQgcj1lLmFjcXVpc2l0aW9uLGk9ci5hY3F1aXNpdGlvbklucHV0cyxhPXIuZWZmZWN0aXZlVGFibGVQb3NpdGlvbmluZyxvPXIucHVibGljQW5jaG9yQnJpZGdlLHM9d3goZS5mb250cy5mYW1pbHlDbGFzc2VzLGUuZm9udHMuZmFtaWx5UGl0Y2hlcyksYz0oZSx0LG4pPT5gJHtlfSR7dD9gfGNscjoke3R9YDpgYH0ke24/YHxkdW86JHtuLmNscjF9OiR7bi5jbHIyfWA6YGB9YDtmdW5jdGlvbiBsKGUsdCxuPXt9LHIsYT17fSxzLGMpe2xldCBsPURDKHIsdCksdT1zO3JldHVybntjdHg6ZSx2ZXJ0aWNhbEdseXBoTWVhc3VyZW1lbnQ6Z18odSksYWNxdWlzaXRpb25JbnB1dHM6aSxjb250ZW50WDp0Lm1hcmdpbkxlZnQsY29udGVudFc6dC5wYWdlV2lkdGgtdC5tYXJnaW5MZWZ0LXQubWFyZ2luUmlnaHQseTowLHBhZ2VIOnQucGFnZUhlaWdodCxwYWdlSW5kZXg6MCx0b3RhbFBhZ2VzOkRfKHUpLnRvdGFsUGFnZXMsbWFyZ2luTGVmdDp0Lm1hcmdpbkxlZnQsbWFyZ2luUmlnaHQ6dC5tYXJnaW5SaWdodCxtYXJnaW5Ub3A6ekModC5tYXJnaW5Ub3ApLG1hcmdpbkJvdHRvbTp6Qyh0Lm1hcmdpbkJvdHRvbSkscGFnZVdpZHRoOnQucGFnZVdpZHRoLGZsb2F0czpbXSxmbG9hdFBhcmFTZXE6MCxsYXlvdXRTZXR0aW5nczpyLHNlY3Rpb25MYXlvdXQ6bCxzdG9yeUNvbnRleHQ6VE4sZG9jRWFzdEFzaWFuOnIuZG9jdW1lbnRIYXNFYXN0QXNpYW5UZXh0LGZvbnRGYW1pbHlDbGFzc2VzOm4scmVzb2x2ZWRMb2NhbEZvbnRzOmEsbGF5b3V0U2VydmljZXM6dSxyZXRhaW5lZFRhYmxlQWNxdWlzaXRpb246e2xheW91dFNlcnZpY2VzOmU9PmUubGF5b3V0U2VydmljZXMsdGFibGVGb3JtYXQ6aS50YWJsZUZvcm1hdElucHV0LHJlc29sdmVDb2x1bW5zOnAsY3JlYXRlQ2VsbFN0YXRlOihlLHQsbik9Pih7Li4uQU4oZSksY29udGVudFg6MCxjb250ZW50Vzp0LHk6MCxjb250YWluZXJTaGFkaW5nOm4uYmFja2dyb3VuZD8/ZS5jb250YWluZXJTaGFkaW5nLGZsb2F0czpbXSxmbG9hdFBhcmFTZXE6MCxwYWdlQW5jaG9yUHJlc2Nhbm5lZDpuZXcgU2V0fSksYWNxdWlyZVBhcmFncmFwaDooZSx0LG4scixpLGEscyxjKT0+e2xldCBsPWM/P3tzdG9yeTpgYm9keWAsc3RvcnlJbnN0YW5jZTpgYm9keWAscGF0aDpbLi4ucl19LHU9dC5ydW5zLmZpbHRlcigoZSx0KT0+byhsLHQpIT09bnVsbCk7dS5sZW5ndGg+MCYmVCh7Li4udCxydW5zOnV9LGUsZS55KTtsZXQgZD1rTihlLHQpLGY9JEYoZSxlLmFjcXVpc2l0aW9uSW5wdXRzLnBhcmFncmFwaEFjcXVpc2l0aW9uSW5wdXQodCxsKSx7aWQ6YCR7bC5zdG9yeX06JHtsLnN0b3J5SW5zdGFuY2V9OiR7bC5wYXRoLmpvaW4oYC5gKX1gLHNvdXJjZTpsLGZsb3dEb21haW5JZDppLG9yZGluYXJ5RmxvdzohMCxjb250ZXh0OmQscGxhY2VtZW50OntzdGFydFlQdDplLnkscGFyYWdyYXBoWFB0OjAsYXZhaWxhYmxlV2lkdGhQdDpuLG1heGltdW1ZUHQ6ZS5wYWdlSCxzdXBwcmVzc1NwYWNlQmVmb3JlOiEwfSxtZWFzdXJlcjp7Y29udGV4dDplLmN0eCxmb250RmFtaWx5Q2xhc3NlczplLmZvbnRGYW1pbHlDbGFzc2VzfSxlbnZpcm9ubWVudDpDTihlKSxleGNsdXNpb25zOmVJKGUuZmxvYXRzLGkpLGFuY2hvckNvbGxpc2lvbnM6dEkoZS5mbG9hdHMpLGFuY2hvckNlbGxCb3VuZHM6e3hQdDowLHlQdDowLHdpZHRoUHQ6bixoZWlnaHRQdDplLnBhZ2VIfSxjb250YWluZXJTaGFkaW5nOmUuY29udGFpbmVyU2hhZGluZywuLi5hP3twYXJhZ3JhcGhCb3JkZXJFZGdlczphfTp7fSx0cmFpbGluZ0V4dGVudFB0Ok1hdGgubWF4KGQuc3BhY2VBZnRlclB0LGE/LmJvdHRvbT09PWBub25lYD8wOnJDKHQuYm9yZGVycykpLGNvbnRpbnVlc0Zyb21QcmV2aW91czohMSxhbmNob3JGcmFtZXM6RU4oZSksYWNxdWlyZUNvbXBsZXRlU3Rvcnk6ZS5hY3F1aXJlQ29tcGxldGVUZXh0Qm94U3Rvcnl9LHMpLmxheW91dDtyZXR1cm4gdC5zcGFjZUJlZm9yZT09PTA/ZjpPYmplY3QuZnJlZXplKHsuLi5mLGZsb3dCb3VuZHM6T2JqZWN0LmZyZWV6ZSh7Li4uZi5mbG93Qm91bmRzLGhlaWdodFB0OmYuZmxvd0JvdW5kcy5oZWlnaHRQdCt0LnNwYWNlQmVmb3JlfSksYWR2YW5jZVB0OmYuYWR2YW5jZVB0K3Quc3BhY2VCZWZvcmUsc3BhY2luZzpPYmplY3QuZnJlZXplKHsuLi5mLnNwYWNpbmcsYmVmb3JlUHQ6dC5zcGFjZUJlZm9yZX0pfSl9LHJlZ2lzdGVyRmxvYXRpbmdUYWJsZTooZSx0KT0+e2xldCBuPSF0LnBvc2l0aW9uaW5nLmhvcnpTcGVjaWZpZWR8fHQucG9zaXRpb25pbmcuaG9yekFuY2hvciE9PWBwYWdlYCYmdC5wb3NpdGlvbmluZy5ob3J6QW5jaG9yIT09YG1hcmdpbmAscj10LnBvc2l0aW9uaW5nLnZlcnRBbmNob3IhPT1gcGFnZWAmJnQucG9zaXRpb25pbmcudmVydEFuY2hvciE9PWBtYXJnaW5gO2lmKCFufHwhcilyZXR1cm4gbnVsbDtsZXQgaT1lLnBhZ2VILGE9e3hQdDplLmNvbnRlbnRYLHlQdDplLnksd2lkdGhQdDplLmNvbnRlbnRXLGhlaWdodFB0OnQuY2hpbGQuYWR2YW5jZVB0fSxvPW9OKHQucG9zaXRpb25pbmcse3BhZ2U6e3hQdDowLHlQdDowLHdpZHRoUHQ6ZS5wYWdlV2lkdGgsaGVpZ2h0UHQ6aX0sbWFyZ2luOnt4UHQ6ZS5tYXJnaW5MZWZ0LHlQdDplLm1hcmdpblRvcCx3aWR0aFB0Ok1hdGgubWF4KDAsZS5wYWdlV2lkdGgtZS5tYXJnaW5MZWZ0LWUubWFyZ2luUmlnaHQpLGhlaWdodFB0Ok1hdGgubWF4KDAsaS1lLm1hcmdpblRvcC1lLm1hcmdpbkJvdHRvbSl9LHRleHQ6YX0sdC5jaGlsZC5jb2x1bW5XaWR0aHNQdC5yZWR1Y2UoKGUsdCk9PmUrdCwwKSx0LmNoaWxkLmFkdmFuY2VQdCkscz1lTihlLHt4Om8ueCx5Om8ueSx3Om8udyxoOm8uaCxkbDp0LnBvc2l0aW9uaW5nLmxlZnRGcm9tVGV4dFB0LGRyOnQucG9zaXRpb25pbmcucmlnaHRGcm9tVGV4dFB0LGR0OnQucG9zaXRpb25pbmcudG9wRnJvbVRleHRQdCxkYjp0LnBvc2l0aW9uaW5nLmJvdHRvbUZyb21UZXh0UHQsa2luZDpgdGFibGVgLG1vZGU6YHNxdWFyZWAsc2lkZTpgYm90aFNpZGVzYCxpbWFnZUtleTpgYCxwYXJhSWQ6ZS5mbG9hdFBhcmFTZXErKyxhdm9pZE92ZXJsYXA6ITAsdGFibGVPdmVybGFwOnQub3ZlcmxhcH0pO3JldHVybiBPYmplY3QuZnJlZXplKHt4UHQ6cy5pbWFnZVgtYS54UHQseVB0OnMuaW1hZ2VZLWEueVB0fSl9LGFkdmFuY2VTdGF0ZTooZSx0KT0+e2UueSs9dH19LHJldGFpbmVkVGFibGVzQnlTb3VyY2VJbmRleDpuZXcgTWFwLGN1cnJlbnREYXRlTXM6Yz8uY3VycmVudERhdGVNcyxraW5zb2t1OnIua2luc29rdSxkZWZhdWx0VGFiUHQ6ci5kZWZhdWx0VGFiUHQsZ2V0IHZlcnRpY2FsQ0pLKCl7cmV0dXJuIHZOKHRoaXMuc2VjdGlvbkxheW91dC50ZXh0RGlyZWN0aW9uKX0sZ2V0IHZlcnRpY2FsQWxsUm90YXRlZCgpe3JldHVybiB2Tih0aGlzLnNlY3Rpb25MYXlvdXQudGV4dERpcmVjdGlvbikmJnlOKHRoaXMuc2VjdGlvbkxheW91dC50ZXh0RGlyZWN0aW9uKX0sdmVydGljYWxQaHlzOl9OKHQpPygoKT0+e2xldCBlPXhOKHQpO3JldHVybntwYWdlV2lkdGg6ZS5wYWdlV2lkdGgscGFnZUhlaWdodDplLnBhZ2VIZWlnaHQsbWFyZ2luTGVmdDplLm1hcmdpbkxlZnQsbWFyZ2luUmlnaHQ6ZS5tYXJnaW5SaWdodCxtYXJnaW5Ub3A6ekMoZS5tYXJnaW5Ub3ApLG1hcmdpbkJvdHRvbTp6QyhlLm1hcmdpbkJvdHRvbSkscGh5c2ljYWxQYWdlV2lkdGhQdDplLnBhZ2VXaWR0aH19KSgpOnZvaWQgMH19ZnVuY3Rpb24gdShlLHQsbil7bGV0IHI9ZT0+e2xldCB0PU9iamVjdC5mcmVlemUoe3RvcDpudWxsLHJpZ2h0Om51bGwsYm90dG9tOm51bGwsbGVmdDpudWxsLGluc2lkZUg6bnVsbCxpbnNpZGVWOm51bGx9KTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7a2luZDpgdGFibGVgLGlkOmUuaWQsc291cmNlOmUuc291cmNlLGZsb3dEb21haW5JZDplLmZsb3dEb21haW5JZCxvcmRpbmFyeUZsb3c6ITAsYWxpZ25tZW50OmUuYWxpZ25tZW50LGluZGVudFB0OmUuaW5kZW50UHQsYmlkaVZpc3VhbDplLmJpZGlWaXN1YWwsY29sdW1uV2lkdGhzUHQ6ZS5jb2x1bW5XaWR0aHNQdCxjb2x1bW5XaWR0aEtleXM6ZS5jb2x1bW5XaWR0aEtleXMsYm9yZGVyczp0LHJvd3M6T2JqZWN0LmZyZWV6ZShlLnJvd3MubWFwKGU9Pk9iamVjdC5mcmVlemUoey4uLmUsZXhjZXB0aW9uQm9yZGVyczplLnNvdXJjZVRhYmxlRWRnZXN9KSkpfSl9LGk9dD0+e2lmKHQuc3RvcnkhPT1gYm9keWB8fHQuc3RvcnlJbnN0YW5jZSE9PWBib2R5YHx8dC5wYXRoLmxlbmd0aCE9PTEpdGhyb3cgRXJyb3IoYEJvZHkgYWNxdWlzaXRpb24gcmVxdWlyZXMgYSB0b3AtbGV2ZWwgYm9keSBzb3VyY2VgKTtsZXQgbj1lLmJsb2Nrcy5yZXNvbHZlKHQpO2lmKCFufHxuLnR5cGUhPT1gcGFyYWdyYXBoYCYmbi50eXBlIT09YHRhYmxlYCl0aHJvdyBFcnJvcihgQm9keSBzb3VyY2UgZG9lcyBub3QgaWRlbnRpZnkgYSBmbG93IGJsb2NrOiAke3QucGF0aC5qb2luKGAuYCl9YCk7cmV0dXJuIG59LGM9dD0+ZS5ibG9ja3MucmVzb2x2ZSh0KSx1PShlLHQsbixyLGksYSxvPU9iamVjdC5mcmVlemUoe2JvdW5kYXJ5Om51bGx9KSxzKT0+e2xldCBjPV9DKHQpPz97dG9wOmB0b3BgLGJvdHRvbTpgYm90dG9tYH0sbD1PTihlLHQpO3JldHVybiBwaih0LHtpZDpgJHtuLnN0b3J5fToke24uc3RvcnlJbnN0YW5jZX06JHtuLnBhdGguam9pbihgLmApfWAsc291cmNlOm4sZmxvd0RvbWFpbklkOnIuZmxvd0RvbWFpbklkLG9yZGluYXJ5RmxvdzohMCxjb250ZXh0OmwscGxhY2VtZW50OntzdGFydFlQdDplLnkscGFyYWdyYXBoWFB0OnIuYXZhaWxhYmxlQm91bmRzLnhQdCxhdmFpbGFibGVXaWR0aFB0OmksbWF4aW11bVlQdDplLnBhZ2VILHN1cHByZXNzU3BhY2VCZWZvcmU6YX0sbWVhc3VyZXI6e2NvbnRleHQ6ZS5jdHgsZm9udEZhbWlseUNsYXNzZXM6ZS5mb250RmFtaWx5Q2xhc3Nlc30sZW52aXJvbm1lbnQ6Q04oZSksZXhjbHVzaW9uczplSShlLmZsb2F0cyxyLmZsb3dEb21haW5JZCksYW5jaG9yQ29sbGlzaW9uczpzPz90SShlLmZsb2F0cyksY29udGFpbmVyU2hhZGluZzplLmNvbnRhaW5lclNoYWRpbmcscGFyYWdyYXBoQm9yZGVyRWRnZXM6Yyx0cmFpbGluZ0V4dGVudFB0Ok1hdGgubWF4KGwuc3BhY2VBZnRlclB0LGMuYm90dG9tPT09YG5vbmVgPzA6ckModC5ib3JkZXJzKSksY29udGludWVzRnJvbVByZXZpb3VzOm8uYm91bmRhcnkhPT1udWxsLC4uLm8uc291cmNlUmFuZ2VTdGFydD09PXZvaWQgMD97fTp7c291cmNlUmFuZ2VTdGFydDpvLnNvdXJjZVJhbmdlU3RhcnR9LGFuY2hvckZyYW1lczpFTihlKSxhY3F1aXJlQ29tcGxldGVTdG9yeTplLmFjcXVpcmVDb21wbGV0ZVRleHRCb3hTdG9yeX0sby5ib3VuZGFyeT09PW51bGw/dm9pZCAwOntib3VuZGFyeTpvLmJvdW5kYXJ5LC4uLm8udW5pZm9ybVJ1YnlBZHZhbmNlUHQ9PT12b2lkIDA/e306e3VuaWZvcm1SdWJ5QWR2YW5jZVB0Om8udW5pZm9ybVJ1YnlBZHZhbmNlUHR9fSl9O3JldHVybiBPYmplY3QuZnJlZXplKHtvcGVuQm9keUxheW91dFNlc3Npb24oZCxnLF8pe2lmKCF0KXRocm93IEVycm9yKGBCb2R5IGxheW91dCBhY3F1aXNpdGlvbiByZXF1aXJlcyBhIG1lYXN1cmVtZW50IGNvbnRleHRgKTtsZXQgdj17Li4uZS5zZWN0aW9uLC4uLmQuc2VjdGlvbi5nZW9tZXRyeSx0ZXh0RGlyZWN0aW9uOmQuc2VjdGlvbi50ZXh0RGlyZWN0aW9uLHZBbGlnbjpkLnNlY3Rpb24udmVydGljYWxBbGlnbm1lbnR9LHk9bCh0LHZOKHYudGV4dERpcmVjdGlvbik/Yk4odik6dixzLGUuZG9jdW1lbnRMYXlvdXRTZXR0aW5ncyxuLGcsXyksYj1lLmJsb2Nrcy5mb290bm90ZXMseD1lLmJsb2Nrcy5lbmRub3RlcyxTPU1qKGIpO3kubm90ZU51bWJlcnM9bmV3IE1hcChbLi4uWy4uLmpqKGIsTmooZS5ibG9ja3MuYm9keSxgZm9vdG5vdGVgKSldLm1hcCgoW2UsdF0pPT5bYGZvb3Rub3RlOiR7ZX1gLHRdKSwuLi5bLi4uamooeCxOaihlLmJsb2Nrcy5ib2R5LGBlbmRub3RlYCkpXS5tYXAoKFtlLHRdKT0+W2BlbmRub3RlOiR7ZX1gLHRdKV0pO2xldCBDPWQuaW5pdGlhbExvY2F0aW9uLHc9ZT0+YGJvZHk6cGFnZToke2V9OnJlZ2lzdHJ5YCxEPU9iamVjdC5mcmVlemUoe2Nvb3JkaW5hdGVTcGFjZTpgbG9naWNhbC1wYWdlLXBvaW50c2AsZmxvd0RvbWFpbklkOncoQy5wYWdlSW5kZXgpLGVudHJpZXM6T2JqZWN0LmZyZWV6ZShbXSksbmV4dFBhcmFncmFwaElkOjB9KSxPPWlJKHcoQy5wYWdlSW5kZXgpLGBsb2dpY2FsLXBhZ2UtcG9pbnRzYCksaz0oZSx0KT0+e2xldCBuPXQuc2VjdGlvbi5nZW9tZXRyeTtlLnNlY3Rpb25MYXlvdXQ9dC5zZWN0aW9uLGUucGFnZUluZGV4PXQucGFnZUluZGV4O2xldCByPURfKGcpLnJlc29sdmVEZXN0aW5hdGlvblBhZ2U/Lih0LnBhZ2VJbmRleCk7ZS5kaXNwbGF5UGFnZU51bWJlcj1yPy5kaXNwbGF5UGFnZU51bWJlcj8/dC5wYWdlSW5kZXgrMSxlLnBhZ2VOdW1iZXJGb3JtYXQ9cj8ucGFnZU51bWJlckZvcm1hdD8/ZS5wYWdlTnVtYmVyRm9ybWF0LGUucGFnZVdpZHRoPW4ucGFnZVdpZHRoLGUucGFnZUg9bi5wYWdlSGVpZ2h0LGUubWFyZ2luTGVmdD1uLm1hcmdpbkxlZnQsZS5tYXJnaW5SaWdodD1uLm1hcmdpblJpZ2h0LGUubWFyZ2luVG9wPXpDKG4ubWFyZ2luVG9wKSxlLm1hcmdpbkJvdHRvbT16QyhuLm1hcmdpbkJvdHRvbSksZS5jb250ZW50WD10LmF2YWlsYWJsZUJvdW5kcy54UHQsZS5jb250ZW50Vz10LmF2YWlsYWJsZUJvdW5kcy53aWR0aFB0LGUueT10LmN1cnNvclB0LnlQdH0sQT1lPT57Qz1lLGsoeSxlKX07QShDKTtsZXQgaj0oZSx0LG4scixpPUQubmV4dFBhcmFncmFwaElkKT0+e2xldCBhPW5ldyBTZXQoRC5lbnRyaWVzLm1hcChlPT5lLm9jY3VycmVuY2VJZCkpLHM9ZS5ydW5zLmZsYXRNYXAoKGkscyk9PntpZihpLnR5cGUhPT1gc2hhcGVgJiZpLnR5cGUhPT1gaW1hZ2VgJiZpLnR5cGUhPT1gY2hhcnRgKXJldHVybltdO2xldCBjPW8odCxzKTtyZXR1cm4hY3x8ciYmIXIuaGFzKGMub2NjdXJyZW5jZUlkKXx8YS5oYXMoYy5vY2N1cnJlbmNlSWQpfHxjLnBhZ2VPd25lZCYmbi5wYWdlQW5jaG9yUHJlc2Nhbm5lZD8uaGFzKGUpP1tdOlt7cnVuOmksb2NjdXJyZW5jZUlkOmMub2NjdXJyZW5jZUlkfV19KTtpZihzLmxlbmd0aD09PTApcmV0dXJuIE9iamVjdC5mcmVlemUoW10pO2xldCBjPW4uZmxvYXRzLmxlbmd0aDtUKHsuLi5lLHJ1bnM6cy5tYXAoKHtydW46ZX0pPT5lKX0sbixuLnkpO2xldCBsPW4uZmxvYXRzLnNsaWNlKGMpO2lmKGwubGVuZ3RoIT09cy5sZW5ndGgpdGhyb3cgRXJyb3IoYFB1YmxpYyBwYXJhZ3JhcGggYW5jaG9yIGFjcXVpc2l0aW9uIGRpZCBub3QgcmV0YWluIGV2ZXJ5IHdyYXAgZmxvYXRgKTtyZXR1cm4gT2JqZWN0LmZyZWV6ZShsLm1hcCgoZSx0KT0+e2xldCBuPXNbdF0ub2NjdXJyZW5jZUlkO3JldHVybiBPYmplY3QuZnJlZXplKHtraW5kOmBzaGFwZWAsb2NjdXJyZW5jZUlkOm4sZXhjbHVzaW9uSWQ6bixwYXJhZ3JhcGhJZDppLGJvdW5kczpPYmplY3QuZnJlZXplKHt4UHQ6ZS5pbWFnZVgseVB0OmUuaW1hZ2VZLHdpZHRoUHQ6ZS5pbWFnZVcsaGVpZ2h0UHQ6ZS5pbWFnZUh9KSxleGNsdXNpb25Cb3VuZHM6T2JqZWN0LmZyZWV6ZSh7eFB0OmUueExlZnQseVB0OmUueVRvcCx3aWR0aFB0OmUueFJpZ2h0LWUueExlZnQsaGVpZ2h0UHQ6ZS55Qm90dG9tLWUueVRvcH0pLHdyYXA6c1t0XS5ydW4ud3JhcE1vZGUsd3JhcFNpZGU6ZS5zaWRlLHdyYXBEaXN0YW5jZXM6T2JqZWN0LmZyZWV6ZSh7dG9wUHQ6ZS5kaXN0VG9wLHJpZ2h0UHQ6ZS5kaXN0UmlnaHQsYm90dG9tUHQ6ZS5kaXN0Qm90dG9tLGxlZnRQdDplLmRpc3RMZWZ0fSksLi4uZS53cmFwUG9seWdvbj97d3JhcFBvbHlnb246T2JqZWN0LmZyZWV6ZShbLi4uZS53cmFwUG9seWdvbl0pfTp7fX0pfSkpfSxNPWU9PntsZXQgdD1uZXcgTWFwKChlLmFuY2hvckZyYW1lcz8/W10pLmZsYXRNYXAoZT0+e2lmKGUuc3RhdHVzIT09YHJlc29sdmVkYClyZXR1cm5bXTtsZXQgdD1lPT5lLnN0YXR1cz09PWByZXNvbHZlZGAmJihlLnJlZmVyZW5jZUZyYW1lPT09YHBhcmFncmFwaGB8fGUucmVmZXJlbmNlRnJhbWU9PT1gbGluZWB8fGUucmVmZXJlbmNlRnJhbWU9PT1gY2hhcmFjdGVyYCk7cmV0dXJuIHQoZS5heGVzLmhvcml6b250YWwpfHx0KGUuYXhlcy52ZXJ0aWNhbCk/W1tlLm9jY3VycmVuY2VJZCxlXV06W119KSk7aWYodC5zaXplPT09MClyZXR1cm4gT2JqZWN0LmZyZWV6ZShbXSk7bGV0IG49bmV3IE1hcChlLmV4Y2x1c2lvbnMuZmxhdE1hcChlPT5lLmFuY2hvck9jY3VycmVuY2VJZD9bW2UuYW5jaG9yT2NjdXJyZW5jZUlkLGVdXTpbXSkpO3JldHVybiBPYmplY3QuZnJlZXplKChlLmFuY2hvckNvbGxpc2lvbnM/P1tdKS5mbGF0TWFwKGU9PntsZXQgcj10LmdldChlLm9jY3VycmVuY2VJZCk7aWYoIXJ8fHIuZ2VvbWV0cnkud3JhcC5raW5kPT09YG5vbmVgKXJldHVybltdO2xldCBpPW4uZ2V0KGUub2NjdXJyZW5jZUlkKTtpZighaSl0aHJvdyBFcnJvcihgV3JhcHBlZCBhbmNob3Igb21pdHRlZCBleGNsdXNpb24gZ2VvbWV0cnk6ICR7ZS5vY2N1cnJlbmNlSWR9YCk7cmV0dXJuW09iamVjdC5mcmVlemUoe2tpbmQ6YHNoYXBlYCxvY2N1cnJlbmNlSWQ6ZS5vY2N1cnJlbmNlSWQsZXhjbHVzaW9uSWQ6ZS5vY2N1cnJlbmNlSWQscGFyYWdyYXBoSWQ6RC5uZXh0UGFyYWdyYXBoSWQsYm91bmRzOmUuYm91bmRzLGV4Y2x1c2lvbkJvdW5kczppLmJvdW5kcyxob3Jpem9udGFsT3duZXJzaGlwOmUuaG9yaXpvbnRhbE93bmVyc2hpcCx2ZXJ0aWNhbE93bmVyc2hpcDplLnZlcnRpY2FsT3duZXJzaGlwLHdyYXA6ci5nZW9tZXRyeS53cmFwLmtpbmQsd3JhcFNpZGU6ci5nZW9tZXRyeS53cmFwLnNpZGUsd3JhcERpc3RhbmNlczpyLmdlb21ldHJ5LndyYXAuZGlzdGFuY2VzLC4uLnIuZ2VvbWV0cnkud3JhcC5wb2x5Z29uP3t3cmFwUG9seWdvbjpyLmdlb21ldHJ5LndyYXAucG9seWdvbi5wb2ludHN9Ont9fSldfSkpfSxOPWU9PntpZihlLmFjcXVpcmVkLmtpbmQhPT1gcGFyYWdyYXBoYClyZXR1cm4gZS5hY3F1aXJlZDtsZXQgdD1jKGUuYWNxdWlyZWQuc291cmNlKTtpZih0LnR5cGUhPT1gcGFyYWdyYXBoYCl0aHJvdyBFcnJvcihgVGFibGUgcGFyYWdyYXBoIHJlLWFjcXVpc2l0aW9uIHNvdXJjZSBraW5kIG1pc21hdGNoYCk7bGV0IG49ey4uLkFOKHkpLGNvbnRlbnRYOjAsY29udGVudFc6ZS5hY3F1aXJlZC5mbG93Qm91bmRzLndpZHRoUHQseTplLmFjcXVpcmVkLmZsb3dCb3VuZHMueVB0LGZsb2F0czooZS5mbG9hdGluZ1RhYmxlRXhjbHVzaW9ucz8/W10pLm1hcCgoZSx0KT0+KHtraW5kOmB0YWJsZWAsdGFibGVPdmVybGFwOmBuZXZlcmAsbW9kZTpgc3F1YXJlYCxpbWFnZUtleTpgdGFibGUtZmluYWwtZnJhbWU6JHt0fWAsaW1hZ2VYOmUueFB0LGltYWdlWTplLnlQdCxpbWFnZVc6ZS53aWR0aFB0LGltYWdlSDplLmhlaWdodFB0LHhMZWZ0OmUueFB0LHhSaWdodDplLnhQdCtlLndpZHRoUHQseVRvcDplLnlQdCx5Qm90dG9tOmUueVB0K2UuaGVpZ2h0UHQsc2lkZTpgYm90aFNpZGVzYCxkaXN0TGVmdDowLGRpc3RSaWdodDowLGRpc3RUb3A6MCxkaXN0Qm90dG9tOjAscGFyYUlkOnR9KSksZmxvYXRQYXJhU2VxOmUuZmxvYXRpbmdUYWJsZUV4Y2x1c2lvbnM/Lmxlbmd0aD8/MCxwYWdlQW5jaG9yUHJlc2Nhbm5lZDpuZXcgU2V0fSxyPUFrKGUuYWNxdWlyZWQpO3JldHVybiB5LnJldGFpbmVkVGFibGVBY3F1aXNpdGlvbi5hY3F1aXJlUGFyYWdyYXBoKG4sdCxlLmFjcXVpcmVkLmZsb3dCb3VuZHMud2lkdGhQdCxlLmFjcXVpcmVkLnNvdXJjZS5wYXRoLGUuYWNxdWlyZWQuZmxvd0RvbWFpbklkLHZvaWQgMCxyKX0sUD1NaihlLmJsb2Nrcy5lbmRub3RlcyksRj1uZXcgTWFwLEk9dD0+e2lmKHQucGF0aC5sZW5ndGghPT0wKXRocm93IEVycm9yKGBTdG9yeSBhY3F1aXNpdGlvbiByZXF1aXJlcyBhIHN0b3J5LXJvb3Qgc291cmNlYCk7cmV0dXJuIGUuYmxvY2tzLnN0b3J5Um9vdCh0KX0sTD10PT57aWYodC5wYXRoLmxlbmd0aD09PTB8fCh0LnBhdGgubGVuZ3RoLTEpJTMhPTApdGhyb3cgRXJyb3IoYFN0b3J5IGJsb2NrIGFjcXVpc2l0aW9uIHJlcXVpcmVzIGEgY2Fub25pY2FsIHNvdXJjZSBwYXRoYCk7cmV0dXJuIGUuYmxvY2tzLnJlc29sdmUodCl9LFI9ZT0+e2xldCB0PUpTT04uc3RyaW5naWZ5KHtzb3VyY2U6ZS5zb3VyY2UscGFnZUluZGV4OmUucGFnZUluZGV4LHNlY3Rpb246ZS5zZWN0aW9uLGNvbnRhaW5lcjplLmNvbnRhaW5lcn0pLG49Ri5nZXQodCk7aWYobilyZXR1cm4gbjtsZXQgcj1JKGUuc291cmNlKSxpPWUuc291cmNlLnN0b3J5PT09YGZvb3Rub3RlYHx8ZS5zb3VyY2Uuc3Rvcnk9PT1gZW5kbm90ZWA/eS5ub3RlTnVtYmVycz8uZ2V0KGAke2Uuc291cmNlLnN0b3J5fToke2Uuc291cmNlLnN0b3J5SW5zdGFuY2V9YCk6dm9pZCAwLGE9RF8oZykscz1hLnJlc29sdmVEZXN0aW5hdGlvblBhZ2U/LihlLnBhZ2VJbmRleCksYz12TihlLnNlY3Rpb24udGV4dERpcmVjdGlvbiksbD17Li4ueSxzZWN0aW9uTGF5b3V0OmUuc2VjdGlvbixwYWdlSW5kZXg6ZS5wYWdlSW5kZXgsdG90YWxQYWdlczphLnRvdGFsUGFnZXMsZGlzcGxheVBhZ2VOdW1iZXI6cz8uZGlzcGxheVBhZ2VOdW1iZXI/P2UucGFnZUluZGV4KzEscGFnZU51bWJlckZvcm1hdDpzPy5wYWdlTnVtYmVyRm9ybWF0Pz95LnBhZ2VOdW1iZXJGb3JtYXQscGFnZVdpZHRoOmUuc2VjdGlvbi5nZW9tZXRyeS5wYWdlV2lkdGgscGFnZUg6ZS5jb250YWluZXIuY2FwYWNpdHk9PT1gdW5ib3VuZGVkYD8yKio1My0xOmUuc2VjdGlvbi5nZW9tZXRyeS5wYWdlSGVpZ2h0LG1hcmdpbkxlZnQ6ZS5zZWN0aW9uLmdlb21ldHJ5Lm1hcmdpbkxlZnQsbWFyZ2luUmlnaHQ6ZS5zZWN0aW9uLmdlb21ldHJ5Lm1hcmdpblJpZ2h0LG1hcmdpblRvcDp6QyhlLnNlY3Rpb24uZ2VvbWV0cnkubWFyZ2luVG9wKSxtYXJnaW5Cb3R0b206ekMoZS5zZWN0aW9uLmdlb21ldHJ5Lm1hcmdpbkJvdHRvbSksY29udGVudFg6ZS5jb250YWluZXIuYm91bmRzLnhQdCxjb250ZW50VzplLmNvbnRhaW5lci5ib3VuZHMud2lkdGhQdCx5OmUuY29udGFpbmVyLmJvdW5kcy55UHQsZmxvYXRzOltdLGZsb2F0UGFyYVNlcTowLHJldGFpbmVkVGFibGVzQnlTb3VyY2VJbmRleDpuZXcgTWFwLHBhZ2VBbmNob3JQcmVzY2FubmVkOm5ldyBTZXQsbm90ZVJlZmVyZW5jZU51bWJlcjppLHZlcnRpY2FsQ0pLOmMsdmVydGljYWxBbGxSb3RhdGVkOmMmJnlOKGUuc2VjdGlvbi50ZXh0RGlyZWN0aW9uKSwuLi5jP3t9Ont2ZXJ0aWNhbFBoeXM6dm9pZCAwfSxzdG9yeUNvbnRleHQ6e3N0b3J5OmUuc291cmNlLnN0b3J5LGNvbnRhaW5lcnM6W10sbGluZU51bWJlcmluZ0VsaWdpYmxlOiExfX07RShyLDAsbCk7bGV0IHU9Q18oZyk7bC5sYXlvdXRTZXJ2aWNlcz11O2xldCBkPXIuZmxhdE1hcCgodCxuKT0+e2xldCByPXtzdG9yeTplLnNvdXJjZS5zdG9yeSxzdG9yeUluc3RhbmNlOmUuc291cmNlLnN0b3J5SW5zdGFuY2UscGF0aDpbbl19O2lmKHQudHlwZT09PWB1bnN1cHBvcnRlZFRleHRCb3hCbG9ja2ApcmV0dXJuW3t0eXBlOmB1bnN1cHBvcnRlZFRleHRCb3hCbG9ja2AscU5hbWU6dC5xTmFtZSxzb3VyY2VQYXRoOnQuc291cmNlUGF0aH1dO2lmKHQudHlwZT09PWBwYXJhZ3JhcGhgKXJldHVyblt7a2luZDpgcGFyYWdyYXBoYCxzb3VyY2U6cn1dO2lmKHQudHlwZSE9PWB0YWJsZWApdGhyb3cgRXJyb3IoYFVuc3VwcG9ydGVkICR7ZS5zb3VyY2Uuc3Rvcnl9IHN0b3J5IGJsb2NrOiAke3QudHlwZX1gKTtsZXQgaT1sLnJldGFpbmVkVGFibGVBY3F1aXNpdGlvbixhPXQ7cmV0dXJuW2dGKGEscChhLGUuY29udGFpbmVyLmJvdW5kcy53aWR0aFB0LGwpLGUuY29udGFpbmVyLmJvdW5kcy53aWR0aFB0LGwscixpKS5pbnB1dF19KSxmPW51bGw7aU0odSx7bGF5b3V0UGFyYWdyYXBoKGUsdCl7bGV0IG49TChlLnNvdXJjZSk7aWYobi50eXBlIT09YHBhcmFncmFwaGApdGhyb3cgRXJyb3IoYFN0b3J5IHBhcmFncmFwaCBzb3VyY2Uga2luZCBtaXNtYXRjaGApO2xldCBpPWUuc291cmNlLnBhdGhbMF0sYT1pPjA/cltpLTFdOnZvaWQgMCxzPWE/LnR5cGU9PT1gcGFyYWdyYXBoYD9hOm51bGwsYz1yW2krMV0sdT1jPy50eXBlPT09YHBhcmFncmFwaGA/YzpudWxsLGQ9Zj8uc3BhY2VBZnRlcj8/MCxwPXdrKGYsbixkLG4uc3BhY2VCZWZvcmUpLG09TWF0aC5tYXgodC5jb250YWluZXIuYm91bmRzLnlQdCx0LmN1cnNvci55UHQtcC5vdmVybGFwKTtsLnk9bSxsLmNvbnRlbnRYPXQuY29udGFpbmVyLmJvdW5kcy54UHQsbC5jb250ZW50Vz10LmNvbnRhaW5lci5ib3VuZHMud2lkdGhQdDtsZXQgaD1uLnJ1bnMuZmlsdGVyKCh0LG4pPT5vKGUuc291cmNlLG4pIT09bnVsbCk7aC5sZW5ndGg+MCYmVChPYmplY3QuZnJlZXplKHsuLi5uLHJ1bnM6T2JqZWN0LmZyZWV6ZShoKX0pLGwsbC55KTtsZXQgZz1rTihsLG4pLF89bEMocyxuLHUpLHY9JEYobCxuLHtpZDpgJHtlLnNvdXJjZS5zdG9yeX06JHtlLnNvdXJjZS5zdG9yeUluc3RhbmNlfToke2Uuc291cmNlLnBhdGguam9pbihgLmApfWAsc291cmNlOmUuc291cmNlLGZsb3dEb21haW5JZDp0LmNvbnRhaW5lci5pZCxvcmRpbmFyeUZsb3c6ITAsY29udGV4dDpnLHBsYWNlbWVudDp7c3RhcnRZUHQ6bSxwYXJhZ3JhcGhYUHQ6dC5jb250YWluZXIuYm91bmRzLnhQdCxhdmFpbGFibGVXaWR0aFB0OnQuY29udGFpbmVyLmJvdW5kcy53aWR0aFB0LG1heGltdW1ZUHQ6dC5hdmFpbGFibGVCb3VuZHMueVB0K3QuYXZhaWxhYmxlQm91bmRzLmhlaWdodFB0LHN1cHByZXNzU3BhY2VCZWZvcmU6cC5zdXBwcmVzc0JlZm9yZX0sbWVhc3VyZXI6e2NvbnRleHQ6bC5jdHgsZm9udEZhbWlseUNsYXNzZXM6bC5mb250RmFtaWx5Q2xhc3Nlc30sZW52aXJvbm1lbnQ6Q04obCksZXhjbHVzaW9uczplSShsLmZsb2F0cyx0LmNvbnRhaW5lci5pZCksYW5jaG9yQ29sbGlzaW9uczp0SShsLmZsb2F0cyksY29udGFpbmVyU2hhZGluZzpsLmNvbnRhaW5lclNoYWRpbmcscGFyYWdyYXBoQm9yZGVyRWRnZXM6Xyx0cmFpbGluZ0V4dGVudFB0Ok1hdGgubWF4KGcuc3BhY2VBZnRlclB0LF8uYm90dG9tPT09YG5vbmVgPzA6ckMobi5ib3JkZXJzKSksY29udGludWVzRnJvbVByZXZpb3VzOiExLGFuY2hvckZyYW1lczpFTihsKSxhY3F1aXJlQ29tcGxldGVTdG9yeTpsLmFjcXVpcmVDb21wbGV0ZVRleHRCb3hTdG9yeX0pO2Y9bjtsZXQgeT17eFB0OnQuY3Vyc29yLnhQdCx5UHQ6bSt2LmxheW91dC5hZHZhbmNlUHR9O3JldHVybiBsLnk9eS55UHQse2xheW91dDp2LmxheW91dCxuZXh0Q3Vyc29yOnl9fSxsYXlvdXRUYWJsZShlLHQpe2Y9bnVsbDtsZXQgbj11Rih7Li4uZSxmbG93RG9tYWluSWQ6dC5jb250YWluZXIuaWR9LHQsdSk7cmV0dXJuIGwueT1uLm5leHRDdXJzb3IueVB0LG59fSk7bGV0IG09c00oe3NvdXJjZTplLnNvdXJjZSxjb250YWluZXI6ZS5jb250YWluZXIsYmxvY2tzOk9iamVjdC5mcmVlemUoZCl9LHUpLGg9T2JqZWN0LmZyZWV6ZSh7Li4ubSxibG9ja3M6T2JqZWN0LmZyZWV6ZShtLmJsb2Nrcy5tYXAoKHQsbik9PntpZih0LmtpbmQhPT1gcGFyYWdyYXBoYCYmdC5raW5kIT09YHRhYmxlYCl0aHJvdyBFcnJvcihgU2hhcmVkIHN0b3J5IGVtaXR0ZWQgdW5zdXBwb3J0ZWQgbm9kZTogJHt0LmtpbmR9YCk7cmV0dXJuIHdEKHQse29jY3VycmVuY2VJZDpgJHtlLmNvbnRhaW5lci5pZH06YmxvY2s6JHtufWAsZGVzdGluYXRpb246e2Nvb3JkaW5hdGVTcGFjZTpgbG9naWNhbC1wYWdlLXBvaW50c2AsZmxvd0RvbWFpbklkOmUuY29udGFpbmVyLmlkLHRyYW5zbGF0aW9uOnt4UHQ6MCx5UHQ6MH19fSl9KSl9KTtyZXR1cm4gRi5zZXQodCxoKSxofTt5LmFjcXVpcmVDb21wbGV0ZVRleHRCb3hTdG9yeT1lPT57bGV0IHQ9ZS5jb29yZGluYXRlU3BhY2U9PT1gdXByaWdodC1waHlzaWNhbGA/ey4uLnkuc2VjdGlvbkxheW91dCxnZW9tZXRyeTpWQyh5LnNlY3Rpb25MYXlvdXQuZ2VvbWV0cnkpLHRleHREaXJlY3Rpb246YGxyVGJgfTp5LnNlY3Rpb25MYXlvdXQ7cmV0dXJuIFIoe3NvdXJjZTplLnNvdXJjZSxwYWdlSW5kZXg6eS5wYWdlSW5kZXgsc2VjdGlvbjp0LGNvbnRhaW5lcjplLmNvbnRhaW5lcn0pfTtsZXQgej17aGFzUGFnaW5hdGlvbkZpZWxkczplLmhhc1BhZ2luYXRpb25GaWVsZHMsbWVhc3VyZVBhcmFncmFwaCh0KXtBKHQubG9jYXRpb24pO2xldCBuPWkodC5pbnB1dC5zb3VyY2UpO2lmKG4udHlwZSE9PWBwYXJhZ3JhcGhgKXRocm93IEVycm9yKGBQYXJhZ3JhcGggc291cmNlIGtpbmQgbWlzbWF0Y2hgKTtpZihuLmZyYW1lUHIpe2lmKHQuY29udGludWF0aW9uLmJvdW5kYXJ5IT09bnVsbCl0aHJvdyBFcnJvcihgQm9keSBmcmFtZSBhY3F1aXNpdGlvbiBjYW5ub3QgY29udGludWUgYWNyb3NzIGZsb3cgcmVnaW9uc2ApO2xldCByLGk9Z0Mobik7aWYoIWkpdGhyb3cgRXJyb3IoYEJvZHkgZnJhbWUgYWNxdWlzaXRpb24gcmVxdWlyZXMgYW4gaW5kZXhlZCBhZGphY2VuY3kgZ3JvdXBgKTtsZXQgYT1oKG4saSx5LG0oZS5ibG9ja3MuYm9keSxuLHkpLGU9PntyPWV9KTtpZighcil0aHJvdyBFcnJvcihgQm9keSBmcmFtZSBhY3F1aXNpdGlvbiBvbWl0dGVkIGl0cyByZXRhaW5lZCBncm91cGApO2xldCBvPXIubWVtYmVycy5maW5kKGU9PmUucGFyYWdyYXBoPT09bik7aWYoIW8pdGhyb3cgRXJyb3IoYEJvZHkgZnJhbWUgYWNxdWlzaXRpb24gb21pdHRlZCBpdHMgcmV0YWluZWQgbWVtYmVyYCk7bGV0IHM9bj09PWkubWVtYmVycy5hdCgtMSkmJmkuZnJhbWVQci5kcm9wQ2FwIT09YG5vbmVgP1VEKGhqKHIpKTowLGM9bi5mcmFtZVByLnZBbmNob3I9PT1gcGFnZWB8fG4uZnJhbWVQci52QW5jaG9yPT09YG1hcmdpbmAsbD1hLmV4Y2x1c2lvbklkPz9gZnJhbWU6JHt0LmlucHV0LnNvdXJjZS5wYXRoLmpvaW4oYDpgKX1gLHU9T2JqZWN0LmZyZWV6ZSh7a2luZDpgZnJhbWVgLG9jY3VycmVuY2VJZDpsLGV4Y2x1c2lvbklkOmwscGFyYWdyYXBoSWQ6RC5uZXh0UGFyYWdyYXBoSWQsYm91bmRzOk9iamVjdC5mcmVlemUoe3hQdDphLngseVB0OmEueSx3aWR0aFB0OmEudyxoZWlnaHRQdDphLmh9KSxleGNsdXNpb25Cb3VuZHM6T2JqZWN0LmZyZWV6ZSh7eFB0OmEuZXhMZWZ0LHlQdDphLmV4VG9wLHdpZHRoUHQ6YS5leFJpZ2h0LWEuZXhMZWZ0LGhlaWdodFB0OmEuZXhCb3R0b20tYS5leFRvcH0pfSk7cmV0dXJuIE9iamVjdC5mcmVlemUoe2xheW91dDpvLmZyYWdtZW50LGJsb2NrRXh0ZW50UHQ6cyxmcmFnbWVudGF0aW9uOk9iamVjdC5mcmVlemUoe2tpbmQ6YGluZGl2aXNpYmxlYH0pLHBsYWNlbWVudDpPYmplY3QuZnJlZXplKHtjb29yZGluYXRlU3BhY2U6YGxvZ2ljYWwtYm9keWAseFB0Om8uZnJhZ21lbnQuZmxvd0JvdW5kcy54UHQseVB0Om8uZnJhZ21lbnQuZmxvd0JvdW5kcy55UHQsc2VjdGlvbkZsb3dPd25lcnNoaXA6Yz9gcGFnZWA6YGhvc3QtZmxvd2B9KSwuLi5uPT09aS5vd25lcj97cmV0YWluZWRGb290bm90ZVJlZmVyZW5jZUlkczpPYmplY3QuZnJlZXplKFsuLi5uZXcgU2V0KHIubWVtYmVycy5mbGF0TWFwKGU9PlJqKGUuZnJhZ21lbnQpKSldKX06e30sLi4uYz97fTp7cmVsb2NhdGlvbkJsb2NrRXh0ZW50UHQ6TWF0aC5tYXgoMCxhLnkrYS5oLXQubG9jYXRpb24uY3Vyc29yUHQueVB0KX0sLi4uYS5yZWdpc3RlckV4Y2x1c2lvbj09PSExP3t9OntmbG93UmVnaXN0cnlEZWx0YTpPYmplY3QuZnJlZXplKHtmbG9hdHM6bE4oRCxPYmplY3QuZnJlZXplKFt1XSksRC5uZXh0UGFyYWdyYXBoSWQrMSl9KX19KX1sZXQgcj17Li4ueSxmbG9hdHM6Wy4uLnkuZmxvYXRzXSxwYWdlQW5jaG9yUHJlc2Nhbm5lZDpuZXcgU2V0KHkucGFnZUFuY2hvclByZXNjYW5uZWQpfTtrKHIsdC5sb2NhdGlvbik7bGV0IGE9dC5jb250aW51YXRpb24uYm91bmRhcnk9PT1udWxsP2oobix0LmlucHV0LnNvdXJjZSxyKTpPYmplY3QuZnJlZXplKFtdKSx7bWVhc3VyZWQ6byxsYXlvdXQ6c309dShyLG4sdC5pbnB1dC5zb3VyY2UsdC5sb2NhdGlvbix0LmF2YWlsYWJsZUlubGluZUV4dGVudFB0LHQuc3VwcHJlc3NTcGFjZUJlZm9yZSx0LmNvbnRpbnVhdGlvbixPLmVudHJpZXMpLGM9by5saW5lcy5tYXAoZT0+e2xldCB0PWUubGF5b3V0LmNvbnN1bWVkRW5kO2lmKCF0KXRocm93IEVycm9yKGBNZWFzdXJlZCBsaW5lIG9taXR0ZWQgaXRzIHNvdXJjZSBib3VuZGFyeWApO3JldHVybiB0fSksbD1NKHMpLGQ9T2JqZWN0LmZyZWV6ZShbLi4uYSwuLi5sXSksZj1NayhzKTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7bGF5b3V0OnMsYmxvY2tFeHRlbnRQdDpzLmFkdmFuY2VQdCxmcmFnbWVudGF0aW9uOm8ubWFya09ubHk/T2JqZWN0LmZyZWV6ZSh7a2luZDpgaW5kaXZpc2libGVgfSk6T2JqZWN0LmZyZWV6ZSh7a2luZDpgc3BsaXR0YWJsZWAsbGluZUVuZEJvdW5kYXJpZXM6T2JqZWN0LmZyZWV6ZShjKX0pLC4uLm8ubWFya09ubHk/e21hcmtCZWxvd0Jhc2VsaW5lUHQ6by5sYXN0TGluZUJlbG93QmFzZWxpbmVQdH06e30sLi4uby51bmlmb3JtUnVieUFkdmFuY2VQdD09bnVsbD97fTp7dW5pZm9ybVJ1YnlBZHZhbmNlUHQ6by51bmlmb3JtUnVieUFkdmFuY2VQdH0sLi4uZC5sZW5ndGg9PT0wJiZmLmxlbmd0aD09PTA/e306e2Zsb3dSZWdpc3RyeURlbHRhOk9iamVjdC5mcmVlemUoey4uLmQubGVuZ3RoPT09MD97fTp7ZmxvYXRzOmxOKEQsZCxELm5leHRQYXJhZ3JhcGhJZCtkLmxlbmd0aCl9LC4uLmYubGVuZ3RoPT09MD97fTp7ZHJhd2luZ0NvbGxpc2lvbnM6YUkoTyxmKX19KX19KX0sbWVhc3VyZVRhYmxlKGUpe2lmKEEoZS5sb2NhdGlvbiksZS5pbnB1dC5raW5kPT09YGFkamFjZW50LXRhYmxlLWdyb3VwYCl7aWYoZS5jdXJzb3ImJmUuY3Vyc29yLmtpbmQhPT1gYWRqYWNlbnQtdGFibGUtZ3JvdXBgKXRocm93IEVycm9yKGBBZGphY2VudCB0YWJsZSBncm91cCBhY3F1aXNpdGlvbiByZWNlaXZlZCBhbiBvcmRpbmFyeSB0YWJsZSBjdXJzb3JgKTtsZXQgdD1lLmlucHV0LnRhYmxlcy5tYXAodD0+e2xldCBuPWkodC5zb3VyY2UpO2lmKG4udHlwZSE9PWB0YWJsZWApdGhyb3cgRXJyb3IoYFRhYmxlIHNvdXJjZSBraW5kIG1pc21hdGNoYCk7bGV0IHI9dC5zb3VyY2UucGF0aFswXTtyZXR1cm4gZih5LG4sZS5hdmFpbGFibGVJbmxpbmVFeHRlbnRQdCxyKSxqTih5LHIpLmFjcXVpc2l0aW9ufSksbj1yKERGKGUuaW5wdXQubG9naWNhbFNlcXVlbmNlSWQsdC5tYXAoZT0+ZS5pbnB1dCkpKSxhPXtjb250YWluZXI6e2lkOmUubG9jYXRpb24uZmxvd0RvbWFpbklkLGtpbmQ6YGJvZHlgLGJvdW5kczp7eFB0OjAseVB0OjAsd2lkdGhQdDplLmF2YWlsYWJsZUlubGluZUV4dGVudFB0LGhlaWdodFB0OmUuZnJlc2hQYWdlQmxvY2tFeHRlbnRQdH19LGN1cnNvcjp7eFB0OjAseVB0OjB9LGF2YWlsYWJsZUJvdW5kczp7eFB0OjAseVB0OjAsd2lkdGhQdDplLmF2YWlsYWJsZUlubGluZUV4dGVudFB0LGhlaWdodFB0OmUuZnJlc2hQYWdlQmxvY2tFeHRlbnRQdH19LG89dUYobixhLGcpLmxheW91dCxzPXt9O3QuZm9yRWFjaChlPT5PYmplY3QuZW50cmllcyhlLm5lc3RlZEJ5SWQpLmZvckVhY2goKFtlLHRdKT0+e2lmKHNbZV0mJnNbZV0hPT10KXRocm93IEVycm9yKGBBZGphY2VudCB0YWJsZSBncm91cCBoYXMgZHVwbGljYXRlIG5lc3RlZCB0YWJsZSBpZDogJHtlfWApO3NbZV09dH0pKTtsZXQgYz1PYmplY3QuZnJlZXplKHtpbnB1dDpuLGxheW91dDpvLG5lc3RlZEJ5SWQ6T2JqZWN0LmZyZWV6ZShzKSxmbG9hdGluZ1RhYmxlczpPYmplY3QuZnJlZXplKHQuZmxhdE1hcChlPT5lLmZsb2F0aW5nVGFibGVzKSl9KSxsPWUuY3Vyc29yPy5jdXJzb3I/P09iamVjdC5mcmVlemUoe3RhYmxlSW5kZXg6MCxzb3VyY2VSb3dJbmRleDowfSksdT1lLmlucHV0LnRhYmxlcy5zbGljZSgwLGwudGFibGVJbmRleCkucmVkdWNlKChlLHQpPT5lKyh0LnJvd0NvdW50Pz8wKSwwKStsLnNvdXJjZVJvd0luZGV4LGQ9bC50YWJsZUN1cnNvcj8/T2JqZWN0LmZyZWV6ZSh7Li4uQUYoKSxyb3dJbmRleDp1fSk7aWYoZC5yb3dJbmRleCE9PXUpdGhyb3cgRXJyb3IoYEFkamFjZW50LXRhYmxlIGdyb3VwIGFuZCB0YWJsZS1mcmFnbWVudCBjdXJzb3JzIGRpc2FncmVlYCk7bGV0IHA9UUYoYyxkLHthdmFpbGFibGVIZWlnaHRQdDplLmF2YWlsYWJsZUJsb2NrRXh0ZW50UHQsZnJlc2hQYWdlSGVpZ2h0UHQ6ZS5mcmVzaFBhZ2VCbG9ja0V4dGVudFB0LHBsYWNlbWVudDphLHNlcnZpY2VzOmcsY29tcGF0aWJpbGl0eTpgd29yZGAscGFnZTp7cGh5c2ljYWxQYWdlSW5kZXg6ZS5sb2NhdGlvbi5wYWdlSW5kZXgsZGlzcGxheVBhZ2VOdW1iZXI6ZS5sb2NhdGlvbi5wYWdlSW5kZXgrMSxvY2N1cnJlbmNlSWQ6YCR7bi5pZH06Ym9keToke2UubG9jYXRpb24ucGFnZUluZGV4fWB9fSk7aWYoIXAuZnJhZ21lbnR8fHAucmVxdWlyZXNGcmVzaFBhZ2UpcmV0dXJuIE9iamVjdC5mcmVlemUoe2xheW91dDpjLmxheW91dCxibG9ja0V4dGVudFB0OjAsbmV4dEN1cnNvcjpPYmplY3QuZnJlZXplKHtraW5kOmBhZGphY2VudC10YWJsZS1ncm91cGAsY3Vyc29yOmx9KSxyZXF1aXJlc0ZyZXNoRmxvd1JlZ2lvbjohMH0pO2xldCBtPXAubmV4dEN1cnNvcj8oKCk9PntsZXQgdD0wLG49MDtmb3IoO3Q8ZS5pbnB1dC50YWJsZXMubGVuZ3RoOyl7bGV0IHI9ZS5pbnB1dC50YWJsZXNbdF0ucm93Q291bnQ/PzA7aWYocC5uZXh0Q3Vyc29yLnJvd0luZGV4PG4rcilicmVhaztuKz1yLHQrPTF9cmV0dXJuIHQ+PWUuaW5wdXQudGFibGVzLmxlbmd0aD9udWxsOk9iamVjdC5mcmVlemUoe3RhYmxlSW5kZXg6dCxzb3VyY2VSb3dJbmRleDpwLm5leHRDdXJzb3Iucm93SW5kZXgtbix0YWJsZUN1cnNvcjpwLm5leHRDdXJzb3J9KX0pKCk6bnVsbDtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7bGF5b3V0OnAuZnJhZ21lbnQsYmxvY2tFeHRlbnRQdDpwLmZyYWdtZW50LmFkdmFuY2VQdCxuZXh0Q3Vyc29yOm0/T2JqZWN0LmZyZWV6ZSh7a2luZDpgYWRqYWNlbnQtdGFibGUtZ3JvdXBgLGN1cnNvcjptfSk6bnVsbCwuLi5wLmZsb2F0aW5nVGFibGVSZWdpc3RyeURlbHRhP3tmbG93UmVnaXN0cnlEZWx0YTpPYmplY3QuZnJlZXplKHtmbG9hdHM6cC5mbG9hdGluZ1RhYmxlUmVnaXN0cnlEZWx0YX0pfTp7fX0pfWxldCB0PWkoZS5pbnB1dC5zb3VyY2UpO2lmKHQudHlwZSE9PWB0YWJsZWApdGhyb3cgRXJyb3IoYFRhYmxlIHNvdXJjZSBraW5kIG1pc21hdGNoYCk7bGV0IG49ZS5pbnB1dC5zb3VyY2UucGF0aFswXTtmKHksdCxlLmF2YWlsYWJsZUlubGluZUV4dGVudFB0LG4pO2xldCBvPWpOKHksbikuYWNxdWlzaXRpb247aWYoZS5jdXJzb3ImJmUuY3Vyc29yLmtpbmQhPT1gdGFibGVgKXRocm93IEVycm9yKGBPcmRpbmFyeSB0YWJsZSBhY3F1aXNpdGlvbiByZWNlaXZlZCBhbiBhZGphY2VudC1ncm91cCBjdXJzb3JgKTtsZXQgcz1lLmN1cnNvcj8uY3Vyc29yPz9BRigpLGM9eS5wYWdlSCxsPXkuYWNxdWlzaXRpb25JbnB1dHMudGFibGVGb3JtYXRJbnB1dCh0KS5wb3NpdGlvbmluZztpZihsKXtsZXQgbj1lLmN1cnNvcj8ua2luZD09PWB0YWJsZWAmJmUuY3Vyc29yLmZsb2F0aW5nQ29udGludWF0aW9uRnJhbWU9PT1gZnJlc2gtdGV4dGA/T2JqZWN0LmZyZWV6ZSh7Li4ubCx2ZXJ0QW5jaG9yOmB0ZXh0YCx5UHQ6MCx5QWxpZ246dm9pZCAwfSk6bCxyPW8ubGF5b3V0LmNvbHVtbldpZHRoc1B0LnJlZHVjZSgoZSx0KT0+ZSt0LDApLGk9T2JqZWN0LmZyZWV6ZSh7cGFnZTpPYmplY3QuZnJlZXplKHt4UHQ6MCx5UHQ6MCx3aWR0aFB0OnkucGFnZVdpZHRoLGhlaWdodFB0OmN9KSxtYXJnaW46T2JqZWN0LmZyZWV6ZSh7eFB0OnkubWFyZ2luTGVmdCx5UHQ6eS5tYXJnaW5Ub3Asd2lkdGhQdDpNYXRoLm1heCgwLHkucGFnZVdpZHRoLXkubWFyZ2luTGVmdC15Lm1hcmdpblJpZ2h0KSxoZWlnaHRQdDpNYXRoLm1heCgwLGMteS5tYXJnaW5Ub3AteS5tYXJnaW5Cb3R0b20pfSksdGV4dDpPYmplY3QuZnJlZXplKHt4UHQ6ZS5sb2NhdGlvbi5jdXJzb3JQdC54UHQseVB0OmUubG9jYXRpb24uY3Vyc29yUHQueVB0LHdpZHRoUHQ6ZS5hdmFpbGFibGVJbmxpbmVFeHRlbnRQdCxoZWlnaHRQdDpvLmxheW91dC5hZHZhbmNlUHR9KX0pLGE9b04obixpLHIsby5sYXlvdXQuYWR2YW5jZVB0KTtpZihlLmN1cnNvcj8ua2luZCE9PWB0YWJsZWAmJihuLnZlcnRBbmNob3I9PT1gcGFnZWB8fG4udmVydEFuY2hvcj09PWBtYXJnaW5gKSYmS3koe2JvdW5kczp7eFB0OmEueCx5UHQ6YS55LHdpZHRoUHQ6YS53LGhlaWdodFB0OmEuaH0sYmxvY2tlcnM6RC5lbnRyaWVzLm1hcChMeSksb3ZlcmxhcEVwc2lsb25QdDouMDF9KS5kZWZlcilyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7bGF5b3V0Om8ubGF5b3V0LGJsb2NrRXh0ZW50UHQ6MCxuZXh0Q3Vyc29yOk9iamVjdC5mcmVlemUoe2tpbmQ6YHRhYmxlYCxjdXJzb3I6cyxmbG9hdGluZ0NvbnRpbnVhdGlvbkZyYW1lOmBhdXRob3JlZGB9KSxyZXF1aXJlc0ZyZXNoRmxvd1JlZ2lvbjohMH0pO2xldCB1PShuLnZlcnRBbmNob3I9PT1gcGFnZWB8fG4udmVydEFuY2hvcj09PWBtYXJnaW5gKSYmby5sYXlvdXQuYWR2YW5jZVB0PmUuZnJlc2hQYWdlQmxvY2tFeHRlbnRQdCxkPXU/ZS5sb2NhdGlvbi5hdmFpbGFibGVCb3VuZHMueVB0K2UubG9jYXRpb24uYXZhaWxhYmxlQm91bmRzLmhlaWdodFB0Om4udmVydEFuY2hvcj09PWBwYWdlYD9pLnBhZ2UueVB0K2kucGFnZS5oZWlnaHRQdDpuLnZlcnRBbmNob3I9PT1gbWFyZ2luYD9pLm1hcmdpbi55UHQraS5tYXJnaW4uaGVpZ2h0UHQ6ZS5sb2NhdGlvbi5hdmFpbGFibGVCb3VuZHMueVB0K2UubG9jYXRpb24uYXZhaWxhYmxlQm91bmRzLmhlaWdodFB0LGY9dT9lLmZyZXNoUGFnZUJsb2NrRXh0ZW50UHQ6bi52ZXJ0QW5jaG9yPT09YHBhZ2VgP2kucGFnZS5oZWlnaHRQdDpuLnZlcnRBbmNob3I9PT1gbWFyZ2luYD9pLm1hcmdpbi5oZWlnaHRQdDplLmZyZXNoUGFnZUJsb2NrRXh0ZW50UHQscDt0cnl7cD1qYih7c3RlcDpyPT57aWYocj8ua2luZD09PWBmcmVzaC1mbG93LXJlZ2lvbmB8fHI/LmtpbmQ9PT1gY2FuZGlkYXRlYCYmci5yZXNvbHZlZC5wbGFjZW1lbnQueFB0PT09ci5wYXJlbnRGcmFtZS54UHQmJnIucmVzb2x2ZWQucGxhY2VtZW50LnlQdD09PXIucGFyZW50RnJhbWUueVB0KXJldHVybiByO2xldCBjPXI/LnJlc29sdmVkLnBsYWNlbWVudD8/e3hQdDphLngseVB0OmEueX0sbD1NYXRoLm1heCgwLGQtYy55UHQpLHU9UUYobyxzLHthdmFpbGFibGVIZWlnaHRQdDpsLGZyZXNoUGFnZUhlaWdodFB0OmYscGxhY2VtZW50Ontjb250YWluZXI6e2lkOmAke2UubG9jYXRpb24uZmxvd0RvbWFpbklkfTpmbG9hdGluZy10YWJsZWAsa2luZDpgYm9keWAsYm91bmRzOnt4UHQ6MCx5UHQ6MCx3aWR0aFB0OmUuYXZhaWxhYmxlSW5saW5lRXh0ZW50UHQsaGVpZ2h0UHQ6bH19LGN1cnNvcjp7eFB0OjAseVB0OjB9LGF2YWlsYWJsZUJvdW5kczp7eFB0OjAseVB0OjAsd2lkdGhQdDplLmF2YWlsYWJsZUlubGluZUV4dGVudFB0LGhlaWdodFB0Omx9fSxzZXJ2aWNlczpnLGNvbXBhdGliaWxpdHk6YHdvcmRgLG92ZXJzaXplZFJvd1BvbGljeTpgYXRvbWljYCxwYWdlOntwaHlzaWNhbFBhZ2VJbmRleDplLmxvY2F0aW9uLnBhZ2VJbmRleCxkaXNwbGF5UGFnZU51bWJlcjp5LmRpc3BsYXlQYWdlTnVtYmVyPz9lLmxvY2F0aW9uLnBhZ2VJbmRleCsxLG9jY3VycmVuY2VJZDpgJHtvLmlucHV0LmlkfTpmaXR0aW5nLW91dGVyOiR7ZS5sb2NhdGlvbi5wYWdlSW5kZXh9OiR7cy5yb3dJbmRleH06JHtzLnJvd0ZyYWdtZW50SW5kZXh9YH0sZmxvYXRpbmdUYWJsZUZyYW1lczp7cGFnZTppLnBhZ2UsbWFyZ2luOmkubWFyZ2luLGNvbHVtbjppLnRleHR9LGZsb2F0aW5nVGFibGVSZWdpc3RyeTpELGZpbmFsUGxhY2VtZW50VHJhbnNsYXRpb25QdDpjLHJlYWNxdWlyZVBhZ2VEZXBlbmRlbnRCbG9jazpOfSk7aWYoIXUuZnJhZ21lbnR8fHUucmVxdWlyZXNGcmVzaFBhZ2UpcmV0dXJuIE9iamVjdC5mcmVlemUoe2tpbmQ6YGZyZXNoLWZsb3ctcmVnaW9uYCxyZXN1bHQ6dX0pO2xldCBwPU9iamVjdC5mcmVlemUoe2tpbmQ6YGZsb2F0aW5nLXRhYmxlLXBsYWNlbWVudGAsb2NjdXJyZW5jZUlkOmAke28uaW5wdXQuaWR9OnJvb3Q6JHtlLmxvY2F0aW9uLnBhZ2VJbmRleH06JHtzLnJvd0luZGV4fToke3Mucm93RnJhZ21lbnRJbmRleH1gLG93bmVyc2hpcDpgc291cmNlYCxwaHlzaWNhbFBhZ2VJbmRleDplLmxvY2F0aW9uLnBhZ2VJbmRleCxkaXNwbGF5UGFnZU51bWJlcjp5LmRpc3BsYXlQYWdlTnVtYmVyPz9lLmxvY2F0aW9uLnBhZ2VJbmRleCsxLGhvc3RDZWxsSWQ6ZS5sb2NhdGlvbi5mbG93RG9tYWluSWQsc291cmNlQmxvY2tJbmRleDplLmlucHV0LnNvdXJjZS5wYXRoWzBdLGFuY2hvckJsb2NrSW5kZXg6ZS5pbnB1dC5zb3VyY2UucGF0aFswXSx0YWJsZUlkOnUuZnJhZ21lbnQuaWQsb3ZlcmxhcDp0Lm92ZXJsYXA9PT1gbmV2ZXJgP2BuZXZlcmA6YG92ZXJsYXBgLHBvc2l0aW9uaW5nOm4sYW5jaG9yQm91bmRzOmkudGV4dCxjaGlsZDp1LmZyYWdtZW50fSksbT11LmZsb2F0aW5nVGFibGVSZWdpc3RyeURlbHRhPy5lbnRyaWVzPz9bXSxoPXUuZmxvYXRpbmdUYWJsZVJlZ2lzdHJ5RGVsdGE/Lm5leHRQYXJhZ3JhcGhJZD8/RC5uZXh0UGFyYWdyYXBoSWQsXz1mTihwLGksZE4oRC5lbnRyaWVzLGgsRC5jb29yZGluYXRlU3BhY2UsRC5mbG93RG9tYWluSWQpKSx2PUpTT04uc3RyaW5naWZ5KHtwYXJlbnRGcmFtZTp7eFB0Ol8ucGxhY2VtZW50LnhQdCx5UHQ6Xy5wbGFjZW1lbnQueVB0fSxmcmFnbWVudDp1LmZyYWdtZW50LG5lc3RlZEVudHJpZXM6bSxyZXNvbHZlZEJvdW5kczpfLnBsYWNlbWVudC5ib3VuZHN9KTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7a2luZDpgY2FuZGlkYXRlYCxwYXJlbnRGcmFtZTpPYmplY3QuZnJlZXplKHt4UHQ6Yy54UHQseVB0OmMueVB0fSkscmVzdWx0OnUsZnJhZ21lbnQ6dS5mcmFnbWVudCxyZXNvbHZlZDpfLG5lc3RlZEVudHJpZXM6bSxmaW5nZXJwcmludDp2fSl9LHN0YXRlT2Y6ZT0+ZS5raW5kPT09YGZyZXNoLWZsb3ctcmVnaW9uYD9gZnJlc2gtZmxvdy1yZWdpb25gOmUuZmluZ2VycHJpbnQsbGltaXQ6MTZ9KS52YWx1ZX1jYXRjaChlKXt0aHJvdyBlIGluc3RhbmNlb2YgQWI/bmV3IFooYE5PTl9DT05WRVJHRU5DRWAsZS5yZWFzb249PT1gY3ljbGVgP2BGbG9hdGluZyB0YWJsZSBwYXJlbnQvY2hpbGQgdHJhbnNhY3Rpb24gcmVwZWF0ZWQgYW4gZXhhY3Qtc3RhdGUgY3ljbGVgOmBGbG9hdGluZyB0YWJsZSBwYXJlbnQvY2hpbGQgdHJhbnNhY3Rpb24gcmVhY2hlZCB0aGUgb3BlcmF0aW9uYWwgcGFzcyBsaW1pdCAxNmApOmV9aWYocC5raW5kPT09YGZyZXNoLWZsb3ctcmVnaW9uYClyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7bGF5b3V0Om8ubGF5b3V0LGJsb2NrRXh0ZW50UHQ6MCxuZXh0Q3Vyc29yOk9iamVjdC5mcmVlemUoe2tpbmQ6YHRhYmxlYCxjdXJzb3I6cyxmbG9hdGluZ0NvbnRpbnVhdGlvbkZyYW1lOmBmcmVzaC10ZXh0YH0pLHJlcXVpcmVzRnJlc2hGbG93UmVnaW9uOiEwfSk7bGV0e3Jlc3VsdDptLGZyYWdtZW50OmgscmVzb2x2ZWQ6XyxuZXN0ZWRFbnRyaWVzOnZ9PXAsYj1lLmN1cnNvcj8ua2luZD09PWB0YWJsZWAmJmUuY3Vyc29yLmZsb2F0aW5nQ29udGludWF0aW9uRnJhbWUhPT12b2lkIDAseD1lLmxvY2F0aW9uLmF2YWlsYWJsZUJvdW5kcy55UHQrZS5sb2NhdGlvbi5hdmFpbGFibGVCb3VuZHMuaGVpZ2h0UHQsUz1bLi4uaC5yZXNvbHZlZEZsb2F0aW5nVGFibGVzPz9bXSxfLnBsYWNlbWVudF0uZmlsdGVyKGU9PmUuc291cmNlLnBvc2l0aW9uaW5nLnZlcnRBbmNob3I9PT1gdGV4dGApO3JldHVybiFiJiZTLnNvbWUoZT0+ZS5leGNsdXNpb25Cb3VuZHMueVB0K2UuZXhjbHVzaW9uQm91bmRzLmhlaWdodFB0PngpP09iamVjdC5mcmVlemUoe2xheW91dDpoLGJsb2NrRXh0ZW50UHQ6MCxuZXh0Q3Vyc29yOk9iamVjdC5mcmVlemUoe2tpbmQ6YHRhYmxlYCxjdXJzb3I6cyxmbG9hdGluZ0NvbnRpbnVhdGlvbkZyYW1lOmBmcmVzaC10ZXh0YH0pLHJlcXVpcmVzRnJlc2hGbG93UmVnaW9uOiEwfSk6T2JqZWN0LmZyZWV6ZSh7bGF5b3V0OmgsYmxvY2tFeHRlbnRQdDowLG5leHRDdXJzb3I6bS5uZXh0Q3Vyc29yP09iamVjdC5mcmVlemUoe2tpbmQ6YHRhYmxlYCxjdXJzb3I6bS5uZXh0Q3Vyc29yLGZsb2F0aW5nQ29udGludWF0aW9uRnJhbWU6YGZyZXNoLXRleHRgfSk6bnVsbCxmbG93UmVnaXN0cnlEZWx0YTpPYmplY3QuZnJlZXplKHtmbG9hdHM6bE4oRCxPYmplY3QuZnJlZXplKFsuLi52LC4uLl8udHJhbnNhY3Rpb24uZGVsdGFdKSxfLnRyYW5zYWN0aW9uLm5leHRQYXJhZ3JhcGhJZCl9KSxwbGFjZW1lbnQ6T2JqZWN0LmZyZWV6ZSh7Y29vcmRpbmF0ZVNwYWNlOmBsb2dpY2FsLWJvZHlgLHhQdDpfLnBsYWNlbWVudC54UHQseVB0Ol8ucGxhY2VtZW50LnlQdCxzZWN0aW9uRmxvd093bmVyc2hpcDpuLnZlcnRBbmNob3I9PT1gcGFnZWB8fG4udmVydEFuY2hvcj09PWBtYXJnaW5gP2BwYWdlYDpgaG9zdC1mbG93YH0pfSl9aWYoeS52ZXJ0aWNhbFBoeXMmJiFhKHQpKXtpZihlLmN1cnNvcil0aHJvdyBFcnJvcihgQW4gdXByaWdodCBwaHlzaWNhbCB0YWJsZSBtdXN0IHJlbWFpbiBhdG9taWNgKTtsZXQgdD15LnZlcnRpY2FsUGh5cyxuPW8ubGF5b3V0LmNvbHVtbldpZHRoc1B0LnJlZHVjZSgoZSx0KT0+ZSt0LDApO2lmKG4+ZS5hdmFpbGFibGVCbG9ja0V4dGVudFB0JiZlLmF2YWlsYWJsZUJsb2NrRXh0ZW50UHQ8ZS5mcmVzaFBhZ2VCbG9ja0V4dGVudFB0KXJldHVybiBPYmplY3QuZnJlZXplKHtsYXlvdXQ6by5sYXlvdXQsYmxvY2tFeHRlbnRQdDowLG5leHRDdXJzb3I6T2JqZWN0LmZyZWV6ZSh7a2luZDpgdGFibGVgLGN1cnNvcjpzfSkscmVxdWlyZXNGcmVzaEZsb3dSZWdpb246ITB9KTtsZXQgcj10LnBoeXNpY2FsUGFnZVdpZHRoUHQtZS5sb2NhdGlvbi5jdXJzb3JQdC55UHQtbixpPWUubG9jYXRpb24uY3Vyc29yUHQueFB0LGE9TWF0aC5tYXgoby5sYXlvdXQuYWR2YW5jZVB0LHQucGFnZUhlaWdodC10Lm1hcmdpblRvcC10Lm1hcmdpbkJvdHRvbSksYz1gdXByaWdodC1waHlzaWNhbC1wYWdlOiR7ZS5sb2NhdGlvbi5wYWdlSW5kZXh9YCxsPVFGKG8sQUYoKSx7YXZhaWxhYmxlSGVpZ2h0UHQ6YSxmcmVzaFBhZ2VIZWlnaHRQdDphLHBsYWNlbWVudDp7Y29udGFpbmVyOntpZDpjLGtpbmQ6YGJvZHlgLGJvdW5kczp7eFB0OjAseVB0OjAsd2lkdGhQdDpuLGhlaWdodFB0OmF9fSxjdXJzb3I6e3hQdDowLHlQdDowfSxhdmFpbGFibGVCb3VuZHM6e3hQdDowLHlQdDowLHdpZHRoUHQ6bixoZWlnaHRQdDphfX0sc2VydmljZXM6Zyxjb21wYXRpYmlsaXR5OmB3b3JkYCxvdmVyc2l6ZWRSb3dQb2xpY3k6YGF0b21pY2AscGFnZTp7cGh5c2ljYWxQYWdlSW5kZXg6ZS5sb2NhdGlvbi5wYWdlSW5kZXgsZGlzcGxheVBhZ2VOdW1iZXI6eS5kaXNwbGF5UGFnZU51bWJlcj8/ZS5sb2NhdGlvbi5wYWdlSW5kZXgrMSxvY2N1cnJlbmNlSWQ6YCR7by5pbnB1dC5pZH06dXByaWdodC1wYWdlOiR7ZS5sb2NhdGlvbi5wYWdlSW5kZXh9YH0sZmxvYXRpbmdUYWJsZUZyYW1lczp7cGFnZTp7eFB0OjAseVB0OjAsd2lkdGhQdDp0LnBhZ2VXaWR0aCxoZWlnaHRQdDp0LnBhZ2VIZWlnaHR9LG1hcmdpbjp7eFB0OnQubWFyZ2luTGVmdCx5UHQ6dC5tYXJnaW5Ub3Asd2lkdGhQdDpNYXRoLm1heCgwLHQucGFnZVdpZHRoLXQubWFyZ2luTGVmdC10Lm1hcmdpblJpZ2h0KSxoZWlnaHRQdDpNYXRoLm1heCgwLHQucGFnZUhlaWdodC10Lm1hcmdpblRvcC10Lm1hcmdpbkJvdHRvbSl9LGNvbHVtbjp7eFB0OnQubWFyZ2luTGVmdCx5UHQ6dC5tYXJnaW5Ub3Asd2lkdGhQdDpNYXRoLm1heCgwLHQucGFnZVdpZHRoLXQubWFyZ2luTGVmdC10Lm1hcmdpblJpZ2h0KSxoZWlnaHRQdDpNYXRoLm1heCgwLHQucGFnZUhlaWdodC10Lm1hcmdpblRvcC10Lm1hcmdpbkJvdHRvbSl9fSxmbG9hdGluZ1RhYmxlUmVnaXN0cnk6T2JqZWN0LmZyZWV6ZSh7Y29vcmRpbmF0ZVNwYWNlOmB1cHJpZ2h0LXBoeXNpY2FsLXBhZ2UtcG9pbnRzYCxmbG93RG9tYWluSWQ6YyxlbnRyaWVzOk9iamVjdC5mcmVlemUoW10pLG5leHRQYXJhZ3JhcGhJZDowfSksZmluYWxQbGFjZW1lbnRUcmFuc2xhdGlvblB0Ont4UHQ6cix5UHQ6aX0scmVhY3F1aXJlUGFnZURlcGVuZGVudEJsb2NrOk59KTtpZighbC5mcmFnbWVudHx8bC5uZXh0Q3Vyc29yfHxsLnJlcXVpcmVzRnJlc2hQYWdlKXRocm93IEVycm9yKGBVcHJpZ2h0IHRhYmxlIGZpbmFsLWZyYW1lIGxheW91dCBtdXN0IHJlbWFpbiBhdG9taWNgKTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7bGF5b3V0OmwuZnJhZ21lbnQsYmxvY2tFeHRlbnRQdDpuLG5leHRDdXJzb3I6bnVsbCxwbGFjZW1lbnQ6T2JqZWN0LmZyZWV6ZSh7Y29vcmRpbmF0ZVNwYWNlOmB1cHJpZ2h0LXBoeXNpY2FsYCx4UHQ6citsLmZyYWdtZW50LmZsb3dCb3VuZHMueFB0LHlQdDppK2wuZnJhZ21lbnQuZmxvd0JvdW5kcy55UHQsc2VjdGlvbkZsb3dPd25lcnNoaXA6YGhvc3QtZmxvd2B9KX0pfWxldCB1PVFGKG8scyx7YXZhaWxhYmxlSGVpZ2h0UHQ6ZS5hdmFpbGFibGVCbG9ja0V4dGVudFB0LGZyZXNoUGFnZUhlaWdodFB0OmUuZnJlc2hQYWdlQmxvY2tFeHRlbnRQdCxwbGFjZW1lbnQ6e2NvbnRhaW5lcjp7aWQ6ZS5sb2NhdGlvbi5mbG93RG9tYWluSWQsa2luZDpgYm9keWAsYm91bmRzOnt4UHQ6MCx5UHQ6MCx3aWR0aFB0OmUuYXZhaWxhYmxlSW5saW5lRXh0ZW50UHQsaGVpZ2h0UHQ6ZS5hdmFpbGFibGVCbG9ja0V4dGVudFB0fX0sY3Vyc29yOnt4UHQ6MCx5UHQ6MH0sYXZhaWxhYmxlQm91bmRzOnt4UHQ6MCx5UHQ6MCx3aWR0aFB0OmUuYXZhaWxhYmxlSW5saW5lRXh0ZW50UHQsaGVpZ2h0UHQ6ZS5hdmFpbGFibGVCbG9ja0V4dGVudFB0fX0sc2VydmljZXM6Zyxjb21wYXRpYmlsaXR5OmB3b3JkYCxwYWdlOntwaHlzaWNhbFBhZ2VJbmRleDplLmxvY2F0aW9uLnBhZ2VJbmRleCxkaXNwbGF5UGFnZU51bWJlcjplLmxvY2F0aW9uLnBhZ2VJbmRleCsxLG9jY3VycmVuY2VJZDpgJHtvLmlucHV0LmlkfTpib2R5OiR7ZS5sb2NhdGlvbi5wYWdlSW5kZXh9YH0sZmxvYXRpbmdUYWJsZUZyYW1lczp7cGFnZTp7eFB0OjAseVB0OjAsd2lkdGhQdDp5LnBhZ2VXaWR0aCxoZWlnaHRQdDpjfSxtYXJnaW46e3hQdDp5Lm1hcmdpbkxlZnQseVB0OnkubWFyZ2luVG9wLHdpZHRoUHQ6TWF0aC5tYXgoMCx5LnBhZ2VXaWR0aC15Lm1hcmdpbkxlZnQteS5tYXJnaW5SaWdodCksaGVpZ2h0UHQ6TWF0aC5tYXgoMCxjLXkubWFyZ2luVG9wLXkubWFyZ2luQm90dG9tKX0sY29sdW1uOmUubG9jYXRpb24uYXZhaWxhYmxlQm91bmRzfSxmbG9hdGluZ1RhYmxlUmVnaXN0cnk6RCxmaW5hbFBsYWNlbWVudFRyYW5zbGF0aW9uUHQ6e3hQdDplLmxvY2F0aW9uLmF2YWlsYWJsZUJvdW5kcy54UHQseVB0OmUubG9jYXRpb24uY3Vyc29yUHQueVB0fSxyZWFjcXVpcmVQYWdlRGVwZW5kZW50QmxvY2s6Tn0pLGQ9ZS5sb2NhdGlvbi5hdmFpbGFibGVCb3VuZHMueFB0K28ubGF5b3V0LmZsb3dCb3VuZHMueFB0LHA9ZCtvLmxheW91dC5mbG93Qm91bmRzLndpZHRoUHQsbT11LmZyYWdtZW50Py5hZHZhbmNlUHQ/PzAsaD1HeSh7aW5saW5lU3RhcnRQdDpkLGlubGluZUVuZFB0OnAsYmxvY2tTdGFydFB0OmUubG9jYXRpb24uY3Vyc29yUHQueVB0LGJsb2NrRXh0ZW50UHQ6bSxibG9ja2VyczpELmVudHJpZXMubWFwKEx5KSxvdmVybGFwRXBzaWxvblB0Ok55fSkuYmxvY2tTdGFydFB0O3JldHVybiBoPmUubG9jYXRpb24uY3Vyc29yUHQueVB0P09iamVjdC5mcmVlemUoe2xheW91dDpvLmxheW91dCxibG9ja0V4dGVudFB0OjAsbmV4dEN1cnNvcjplLmN1cnNvcj8/bnVsbCxyZXRyeUF0QmxvY2tTdGFydFB0Omh9KTohdS5mcmFnbWVudHx8dS5yZXF1aXJlc0ZyZXNoUGFnZT9PYmplY3QuZnJlZXplKHtsYXlvdXQ6by5sYXlvdXQsYmxvY2tFeHRlbnRQdDowLG5leHRDdXJzb3I6T2JqZWN0LmZyZWV6ZSh7a2luZDpgdGFibGVgLGN1cnNvcjpzfSkscmVxdWlyZXNGcmVzaEZsb3dSZWdpb246ITB9KTpPYmplY3QuZnJlZXplKHtsYXlvdXQ6dS5mcmFnbWVudCxibG9ja0V4dGVudFB0OnUuZnJhZ21lbnQuYWR2YW5jZVB0LG5leHRDdXJzb3I6dS5uZXh0Q3Vyc29yP09iamVjdC5mcmVlemUoe2tpbmQ6YHRhYmxlYCxjdXJzb3I6dS5uZXh0Q3Vyc29yfSk6bnVsbCwuLi51LmZsb2F0aW5nVGFibGVSZWdpc3RyeURlbHRhP3tmbG93UmVnaXN0cnlEZWx0YTpPYmplY3QuZnJlZXplKHtmbG9hdHM6dS5mbG9hdGluZ1RhYmxlUmVnaXN0cnlEZWx0YX0pfTp7fX0pfSxsYXlvdXRTdG9yeTpSLGxheW91dE5vdGVzKGUpe2xldCB0PVtdLG49ZS5jb250YWluZXIuYm91bmRzLnlQdCxyPWUuZmlyc3RPblBhZ2U7Zm9yKGxldCBpIG9mIGUucmVmZXJlbmNlSWRzKXtpZighKGUua2luZD09PWBmb290bm90ZWA/UzpQKS5oYXMoaSkpY29udGludWU7bGV0IGE9e3N0b3J5OmUua2luZCxzdG9yeUluc3RhbmNlOmkscGF0aDpbXX0sbz1yPzY6MCxzPXsuLi5lLmNvbnRhaW5lcixpZDpgJHtlLmNvbnRhaW5lci5pZH06JHtlLmtpbmR9OiR7aX1gLGJvdW5kczp7Li4uZS5jb250YWluZXIuYm91bmRzLHlQdDpuK28saGVpZ2h0UHQ6TWF0aC5tYXgoMCxlLmNvbnRhaW5lci5ib3VuZHMueVB0K2UuY29udGFpbmVyLmJvdW5kcy5oZWlnaHRQdC1uLW8pfX0sYzt0cnl7Yz1SKHtzb3VyY2U6YSxwYWdlSW5kZXg6ZS5wYWdlSW5kZXgsc2VjdGlvbjplLnNlY3Rpb24sY29udGFpbmVyOnN9KX1jYXRjaCh0KXt0aHJvdyB0IGluc3RhbmNlb2YgJGomJnQuY29udGFpbmVySWQ9PT1zLmlkP25ldyBHRShlLmtpbmQsZS5wYWdlSW5kZXgsZS5jb250YWluZXIuaWQpOnR9bGV0IGw9T2JqZWN0LmZyZWV6ZShyP1tPYmplY3QuZnJlZXplKHtlZGdlOmB0b3BgLGZyb206T2JqZWN0LmZyZWV6ZSh7eFB0OmUuY29udGFpbmVyLmJvdW5kcy54UHQseVB0Om4rby8yfSksdG86T2JqZWN0LmZyZWV6ZSh7eFB0OmUuY29udGFpbmVyLmJvdW5kcy54UHQrZS5jb250YWluZXIuYm91bmRzLndpZHRoUHQvMyx5UHQ6bitvLzJ9KSxjb2xvcjpgIzAwMDAwMGAsd2lkdGhQdDouNSxhdXRob3JlZFN0eWxlOmBzaW5nbGVgLHN0eWxlOmBzb2xpZGB9KV06W10pLHU9bytjLmFkdmFuY2VQdCxkPU9iamVjdC5mcmVlemUoe3hQdDplLmNvbnRhaW5lci5ib3VuZHMueFB0LHlQdDpuLHdpZHRoUHQ6ZS5jb250YWluZXIuYm91bmRzLndpZHRoUHQsaGVpZ2h0UHQ6dX0pLGY9T2JqZWN0LmZyZWV6ZSh7a2luZDpgbm90ZWAsaWQ6YCR7ZS5raW5kfToke2l9OnBhZ2U6JHtlLnBhZ2VJbmRleH1gLHNvdXJjZTphLGZsb3dEb21haW5JZDplLmNvbnRhaW5lci5pZCxvcmRpbmFyeUZsb3c6ITAsZmxvd0JvdW5kczpkLGlua0JvdW5kczpPYmplY3QuZnJlZXplKHt4UHQ6TWF0aC5taW4oZC54UHQsYy5pbmtCb3VuZHMueFB0KSx5UHQ6TWF0aC5taW4oZC55UHQsYy5pbmtCb3VuZHMueVB0KSx3aWR0aFB0Ok1hdGgubWF4KGQueFB0K2Qud2lkdGhQdCxjLmlua0JvdW5kcy54UHQrYy5pbmtCb3VuZHMud2lkdGhQdCktTWF0aC5taW4oZC54UHQsYy5pbmtCb3VuZHMueFB0KSxoZWlnaHRQdDpNYXRoLm1heChkLnlQdCtkLmhlaWdodFB0LGMuaW5rQm91bmRzLnlQdCtjLmlua0JvdW5kcy5oZWlnaHRQdCktTWF0aC5taW4oZC55UHQsYy5pbmtCb3VuZHMueVB0KX0pLGNsaXBCb3VuZHM6ZS5jb250YWluZXIuYm91bmRzLGFkdmFuY2VQdDp1LHNlcGFyYXRvcjpsLHN0b3J5OmN9KTt0LnB1c2goZiksbis9dSxyPSExfXJldHVybiBPYmplY3QuZnJlZXplKHQpfSxtZWFzdXJlRm9sbG93aW5nQmxvY2soZSl7bGV0IHQ9ey4uLnksZmxvYXRzOlsuLi55LmZsb2F0c10scmV0YWluZWRUYWJsZXNCeVNvdXJjZUluZGV4Om5ldyBNYXAoeS5yZXRhaW5lZFRhYmxlc0J5U291cmNlSW5kZXgpfTtpZihrKHQsZS5sb2NhdGlvbiksZS5pbnB1dC5raW5kPT09YGFkamFjZW50LXRhYmxlLWdyb3VwYCl7bGV0IG49ZS5pbnB1dC50YWJsZXMubWFwKG49PntsZXQgcj1pKG4uc291cmNlKTtpZihyLnR5cGUhPT1gdGFibGVgKXRocm93IEVycm9yKGBGb2xsb3dpbmcgdGFibGUgc291cmNlIGtpbmQgbWlzbWF0Y2hgKTtsZXQgYT1uLnNvdXJjZS5wYXRoWzBdO3JldHVybiBmKHQscixlLmF2YWlsYWJsZUlubGluZUV4dGVudFB0LGEpLGpOKHQsYSkuYWNxdWlzaXRpb259KSxhPXVGKHIoREYoZS5pbnB1dC5sb2dpY2FsU2VxdWVuY2VJZCxuLm1hcChlPT5lLmlucHV0KSkpLHtjb250YWluZXI6e2lkOmUubG9jYXRpb24uZmxvd0RvbWFpbklkLGtpbmQ6YGJvZHlgLGJvdW5kczplLmxvY2F0aW9uLmF2YWlsYWJsZUJvdW5kc30sY3Vyc29yOmUubG9jYXRpb24uY3Vyc29yUHQsYXZhaWxhYmxlQm91bmRzOmUubG9jYXRpb24uYXZhaWxhYmxlQm91bmRzfSxnKS5sYXlvdXQ7cmV0dXJuIE9iamVjdC5mcmVlemUoe2Z1bGxFeHRlbnRQdDphLmFkdmFuY2VQdCxsZWFkQ29udGVudEV4dGVudFB0OmEucm93c1swXT8uYWR2YW5jZVB0Pz9hLmFkdmFuY2VQdCxmdWxsRm9vdG5vdGVSZWZlcmVuY2VJZHM6UmooYSksbGVhZEZvb3Rub3RlUmVmZXJlbmNlSWRzOlJqKHsuLi5hLHJvd3M6YS5yb3dzLnNsaWNlKDAsMSl9KX0pfWxldCBuPWkoZS5pbnB1dC5zb3VyY2UpO2lmKGUuaW5wdXQua2luZD09PWBwYXJhZ3JhcGhgKXtpZihuLnR5cGUhPT1gcGFyYWdyYXBoYCl0aHJvdyBFcnJvcihgRm9sbG93aW5nIHBhcmFncmFwaCBzb3VyY2Uga2luZCBtaXNtYXRjaGApO2xldHtsYXlvdXQ6cn09dSh0LG4sZS5pbnB1dC5zb3VyY2UsZS5sb2NhdGlvbixlLmF2YWlsYWJsZUlubGluZUV4dGVudFB0LCExLHZvaWQgMCxPLmVudHJpZXMpLGk9ci5saW5lc1swXTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7ZnVsbEV4dGVudFB0OnIuYWR2YW5jZVB0LGxlYWRDb250ZW50RXh0ZW50UHQ6aT9pLmJvdW5kcy55UHQraS5hZHZhbmNlUHQtci5mbG93Qm91bmRzLnlQdDpyLmFkdmFuY2VQdCxmdWxsRm9vdG5vdGVSZWZlcmVuY2VJZHM6UmoociksbGVhZEZvb3Rub3RlUmVmZXJlbmNlSWRzOmk/TGooW2ldKTpbXX0pfWlmKG4udHlwZSE9PWB0YWJsZWApdGhyb3cgRXJyb3IoYEZvbGxvd2luZyB0YWJsZSBzb3VyY2Uga2luZCBtaXNtYXRjaGApO2xldCBhPWUuaW5wdXQuc291cmNlLnBhdGhbMF07Zih0LG4sZS5hdmFpbGFibGVJbmxpbmVFeHRlbnRQdCxhKTtsZXQgbz1qTih0LGEpLmFjcXVpc2l0aW9uLmxheW91dDtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7ZnVsbEV4dGVudFB0Om8uYWR2YW5jZVB0LGxlYWRDb250ZW50RXh0ZW50UHQ6by5yb3dzWzBdPy5hZHZhbmNlUHQ/P28uYWR2YW5jZVB0LGZ1bGxGb290bm90ZVJlZmVyZW5jZUlkczpSaihvKSxsZWFkRm9vdG5vdGVSZWZlcmVuY2VJZHM6Umooey4uLm8scm93czpvLnJvd3Muc2xpY2UoMCwxKX0pfSl9LHByZXNjYW5QYWdlQW5jaG9ycyhlKXtsZXQgdD1lLmxvY2F0aW9uLnNlY3Rpb24uZ2VvbWV0cnksbj16Qyh0Lm1hcmdpblRvcCkscj16Qyh0Lm1hcmdpbkJvdHRvbSksYT1PYmplY3QuZnJlZXplKHtwYWdlOk9iamVjdC5mcmVlemUoe3hQdDowLHlQdDowLHdpZHRoUHQ6dC5wYWdlV2lkdGgsaGVpZ2h0UHQ6dC5wYWdlSGVpZ2h0fSksbWFyZ2luOk9iamVjdC5mcmVlemUoe3hQdDp0Lm1hcmdpbkxlZnQseVB0Om4sd2lkdGhQdDpNYXRoLm1heCgwLHQucGFnZVdpZHRoLXQubWFyZ2luTGVmdC10Lm1hcmdpblJpZ2h0KSxoZWlnaHRQdDpNYXRoLm1heCgwLHQucGFnZUhlaWdodC1uLXIpfSksY29sdW1uOk9iamVjdC5mcmVlemUoe3hQdDplLmxvY2F0aW9uLmF2YWlsYWJsZUJvdW5kcy54UHQseVB0Om4sd2lkdGhQdDplLmF2YWlsYWJsZUlubGluZUV4dGVudFB0LGhlaWdodFB0Ok1hdGgubWF4KDAsdC5wYWdlSGVpZ2h0LW4tcil9KSxwYXJhZ3JhcGg6bnVsbCxsaW5lOm51bGwsY2hhcmFjdGVyOm51bGwscGFnZVBhcml0eTplLmxvY2F0aW9uLnBhZ2VJbmRleCUyPT0wP2BvZGRgOmBldmVuYH0pLHM9bmV3IFNldCxjPWU9PmAke2Uuc3Rvcnl9OiR7ZS5zdG9yeUluc3RhbmNlfToke2UucGF0aC5qb2luKGAuYCl9YCxsPW5ldyBNYXAsdT1lPT57bGV0IHQ9YyhlKTtyZXR1cm4gbC5oYXModCl8fGwuc2V0KHQsRC5uZXh0UGFyYWdyYXBoSWQrbC5zaXplKSxsLmdldCh0KX0sZD1lLmFuY2hvcnMuZmxhdE1hcCh0PT57bGV0IG49aSh0LnBhcmFncmFwaFNvdXJjZSk7aWYobi50eXBlIT09YHBhcmFncmFwaGApdGhyb3cgRXJyb3IoYFBhZ2UtYW5jaG9yIHByZXNjYW4gc291cmNlIGtpbmQgbWlzbWF0Y2hgKTtsZXQgcj1uLGM9ci5ydW5zLmZpbHRlcihlPT5lLnR5cGU9PT1gYW5jaG9ySG9zdGAmJmUuYW5jaG9yT2NjdXJyZW5jZUlkPT09dC5vY2N1cnJlbmNlSWQpLGw9ci5ydW5zLm1hcCgoZSx0KT0+KHtydW46ZSxydW5JbmRleDp0fSkpLmZpbHRlcihlPT4oZS5ydW4udHlwZT09PWBpbWFnZWB8fGUucnVuLnR5cGU9PT1gY2hhcnRgfHxlLnJ1bi50eXBlPT09YHNoYXBlYHx8ZS5ydW4udHlwZT09PWB1bmF2YWlsYWJsZURyYXdpbmdgKSYmZS5ydW4uYW5jaG9yQWNxdWlzaXRpb25JbnB1dD8ub2NjdXJyZW5jZUlkPT09dC5vY2N1cnJlbmNlSWQpLnNvcnQoKGUsdCk9PihlLnJ1bi5hbmNob3JBY3F1aXNpdGlvbklucHV0Lmdyb3VwPy5zb3VyY2VJbmRleD8/MCktKHQucnVuLmFuY2hvckFjcXVpc2l0aW9uSW5wdXQuZ3JvdXA/LnNvdXJjZUluZGV4Pz8wKXx8ZS5ydW5JbmRleC10LnJ1bkluZGV4KTtpZihjLmxlbmd0aCE9PTF8fGwubGVuZ3RoPT09MCl7bGV0IHI9bi5ydW5zLmZpbmQoKGUsbik9Pm8odC5wYXJhZ3JhcGhTb3VyY2Usbik/Lm9jY3VycmVuY2VJZD09PXQub2NjdXJyZW5jZUlkKTtpZihyKXtpZigoci50eXBlPT09YGltYWdlYHx8ci50eXBlPT09YGNoYXJ0YHx8ci50eXBlPT09YHNoYXBlYCkmJnIud3JhcE1vZGU9PT1gbm9uZWApcmV0dXJuW107bGV0IGk9ey4uLnksZmxvYXRzOlsuLi55LmZsb2F0c10scGFnZUFuY2hvclByZXNjYW5uZWQ6bmV3IFNldCh5LnBhZ2VBbmNob3JQcmVzY2FubmVkKX07ayhpLGUubG9jYXRpb24pO2xldCBhPWoobix0LnBhcmFncmFwaFNvdXJjZSxpLG5ldyBTZXQoW3Qub2NjdXJyZW5jZUlkXSksdSh0LnBhcmFncmFwaFNvdXJjZSkpO2lmKGEubGVuZ3RoIT09MSl0aHJvdyBFcnJvcihgUHVibGljIHBhZ2UtYW5jaG9yIHByZXNjYW4gb2NjdXJyZW5jZSBtaXNtYXRjaDogJHt0Lm9jY3VycmVuY2VJZH1gKTtyZXR1cm4gcy5hZGQobiksYX10aHJvdyBFcnJvcihgUGFnZS1hbmNob3IgcHJlc2NhbiBvY2N1cnJlbmNlIGFjcXVpc2l0aW9uIG1pc21hdGNoOiAke3Qub2NjdXJyZW5jZUlkfWApfWxldCBkPVNrKHthY3F1aXNpdGlvbjpsWzBdLnJ1bi5hbmNob3JBY3F1aXNpdGlvbklucHV0LGZyYW1lczphfSk7aWYoZC5zdGF0dXMhPT1gcmVzb2x2ZWRgKXRocm93IEVycm9yKGBQYWdlLWFuY2hvciBwcmVzY2FuIGNvdWxkIG5vdCByZXNvbHZlIG9jY3VycmVuY2U6ICR7dC5vY2N1cnJlbmNlSWR9YCk7bGV0IGY9dk4oZS5sb2NhdGlvbi5zZWN0aW9uLnRleHREaXJlY3Rpb24pPygoKT0+e2xldCB0PWN2KGUubG9jYXRpb24uc2VjdGlvbi50ZXh0RGlyZWN0aW9uKTtyZXR1cm4gVUEoZCxndih0LG12KHt3aWR0aFB0OmEucGFnZS53aWR0aFB0LGhlaWdodFB0OmEucGFnZS5oZWlnaHRQdH0sdCkpKX0pKCk6ZCxwPWYuZ2VvbWV0cnkud3JhcEJvdW5kcztpZihwPT09bnVsbHx8Zi5nZW9tZXRyeS53cmFwLmtpbmQ9PT1gbm9uZWApcmV0dXJuW107bGV0IG09Zi5nZW9tZXRyeS53cmFwLnBvbHlnb24/LnBvaW50cz8/T2JqZWN0LmZyZWV6ZShbT2JqZWN0LmZyZWV6ZSh7eFB0OnAueFB0LHlQdDpwLnlQdH0pLE9iamVjdC5mcmVlemUoe3hQdDpwLnhQdCtwLndpZHRoUHQseVB0OnAueVB0fSksT2JqZWN0LmZyZWV6ZSh7eFB0OnAueFB0K3Aud2lkdGhQdCx5UHQ6cC55UHQrcC5oZWlnaHRQdH0pLE9iamVjdC5mcmVlemUoe3hQdDpwLnhQdCx5UHQ6cC55UHQrcC5oZWlnaHRQdH0pXSk7cmV0dXJuW09iamVjdC5mcmVlemUoe2tpbmQ6YHNoYXBlYCxvY2N1cnJlbmNlSWQ6dC5vY2N1cnJlbmNlSWQscGFyYWdyYXBoSWQ6dSh0LnBhcmFncmFwaFNvdXJjZSksYm91bmRzOmYuZ2VvbWV0cnkub2JqZWN0RnJhbWUsZXhjbHVzaW9uQm91bmRzOnAsd3JhcDpmLmdlb21ldHJ5LndyYXAua2luZCx3cmFwU2lkZTpmLmdlb21ldHJ5LndyYXAuc2lkZSx3cmFwRGlzdGFuY2VzOmYuZ2VvbWV0cnkud3JhcC5kaXN0YW5jZXMsd3JhcFBvbHlnb246T2JqZWN0LmZyZWV6ZShbLi4ubV0pfSldfSk7cmV0dXJuIHMuZm9yRWFjaChlPT55LnBhZ2VBbmNob3JQcmVzY2FubmVkPy5hZGQoZSkpLGQubGVuZ3RoPT09MD9udWxsOk9iamVjdC5mcmVlemUoe2Zsb2F0czpPYmplY3QuZnJlZXplKHtjb29yZGluYXRlU3BhY2U6YGxvZ2ljYWwtcGFnZS1wb2ludHNgLGZsb3dEb21haW5JZDpELmZsb3dEb21haW5JZCxiYXNlRW50cmllczpELmVudHJpZXMsYmFzZU5leHRQYXJhZ3JhcGhJZDpELm5leHRQYXJhZ3JhcGhJZCxuZXh0UGFyYWdyYXBoSWQ6RC5uZXh0UGFyYWdyYXBoSWQrZC5sZW5ndGgsZW50cmllczpPYmplY3QuZnJlZXplKGQpfSl9KX0sbWVhc3VyZUxpbmVOdW1iZXJHbHlwaChuKXtsZXQgcj10LmZvbnQ7dHJ5e2xldCByPWUuZm9udHMuZGVmYXVsdEJvZHlGb250U2l6ZVB0LGk9RHgoITEsITEscixudWxsLHt9KTt0LmZvbnQ9aTtsZXQgYT10Lm1lYXN1cmVUZXh0KG4pO3JldHVybiBPYmplY3QuZnJlZXplKHt3aWR0aFB0OmEud2lkdGgsYXNjZW50UHQ6YS5mb250Qm91bmRpbmdCb3hBc2NlbnQ/P2EuYWN0dWFsQm91bmRpbmdCb3hBc2NlbnQ/P3IqLjgsZGVzY2VudFB0OmEuZm9udEJvdW5kaW5nQm94RGVzY2VudD8/YS5hY3R1YWxCb3VuZGluZ0JveERlc2NlbnQ/P3IqLjIsZm9udDppfSl9ZmluYWxseXt0LmZvbnQ9cn19LHJlc2V0UGFnZUFjcXVpc2l0aW9uKGUpe3kuZmxvYXRzPVtdLHkuZmxvYXRQYXJhU2VxPTAseS5wYWdlQW5jaG9yUHJlc2Nhbm5lZD1uZXcgU2V0LEQ9T2JqZWN0LmZyZWV6ZSh7Y29vcmRpbmF0ZVNwYWNlOmBsb2dpY2FsLXBhZ2UtcG9pbnRzYCxmbG93RG9tYWluSWQ6dyhlLnBhZ2VJbmRleCksZW50cmllczpPYmplY3QuZnJlZXplKFtdKSxuZXh0UGFyYWdyYXBoSWQ6MH0pLE89aUkodyhlLnBhZ2VJbmRleCksYGxvZ2ljYWwtcGFnZS1wb2ludHNgKSxBKGUpfSxtb3ZlQWNxdWlzaXRpb25DdXJzb3I6QSxmbG93UmVnaXN0cnlTbmFwc2hvdCgpe3JldHVybiBPYmplY3QuZnJlZXplKHtmbG9hdHM6RCxkcmF3aW5nQ29sbGlzaW9uczpPfSl9LGNvbW1pdEZsb3dSZWdpc3RyeURlbHRhKGUpe2lmKCFlLmZsb2F0cyYmIWUuZHJhd2luZ0NvbGxpc2lvbnMpdGhyb3cgRXJyb3IoYEJvZHkgZmxvdyByZWdpc3RyeSBkZWx0YSBtdXN0IHVwZGF0ZSBhdCBsZWFzdCBvbmUgcmVnaXN0cnlgKTtlLmZsb2F0cyYmdU4oZS5mbG9hdHMse2Nvb3JkaW5hdGVTcGFjZTpELmNvb3JkaW5hdGVTcGFjZSxmbG93RG9tYWluSWQ6RC5mbG93RG9tYWluSWQsZW50cmllczpELmVudHJpZXMsbmV4dFBhcmFncmFwaElkOkQubmV4dFBhcmFncmFwaElkfSksZS5kcmF3aW5nQ29sbGlzaW9ucyYmb0koTyxlLmRyYXdpbmdDb2xsaXNpb25zKTtsZXQgdD1lLmRyYXdpbmdDb2xsaXNpb25zP3NJKE8sZS5kcmF3aW5nQ29sbGlzaW9ucyk6TyxuPShlLmZsb2F0cz8uZW50cmllcz8/W10pLm1hcChlPT57bGV0IHQ9ZS53cmFwRGlzdGFuY2VzPy5sZWZ0UHQ/P2UuYm91bmRzLnhQdC1lLmV4Y2x1c2lvbkJvdW5kcy54UHQsbj1lLndyYXBEaXN0YW5jZXM/LnRvcFB0Pz9lLmJvdW5kcy55UHQtZS5leGNsdXNpb25Cb3VuZHMueVB0LHI9ZS53cmFwRGlzdGFuY2VzPy5yaWdodFB0Pz9lLmV4Y2x1c2lvbkJvdW5kcy54UHQrZS5leGNsdXNpb25Cb3VuZHMud2lkdGhQdC1lLmJvdW5kcy54UHQtZS5ib3VuZHMud2lkdGhQdCxpPWUud3JhcERpc3RhbmNlcz8uYm90dG9tUHQ/P2UuZXhjbHVzaW9uQm91bmRzLnlQdCtlLmV4Y2x1c2lvbkJvdW5kcy5oZWlnaHRQdC1lLmJvdW5kcy55UHQtZS5ib3VuZHMuaGVpZ2h0UHQsYT17bW9kZTplLndyYXA9PT1gdG9wQW5kQm90dG9tYD9gdG9wQW5kQm90dG9tYDpgc3F1YXJlYCwuLi5lLmtpbmQ9PT1gc2hhcGVgP3thbmNob3JPY2N1cnJlbmNlSWQ6ZS5vY2N1cnJlbmNlSWQsYWNxdWlzaXRpb25PY2N1cnJlbmNlSWQ6ZS5vY2N1cnJlbmNlSWR9Ont9LC4uLmUud3JhcD97YXV0aG9yZWRXcmFwOmUud3JhcCx3cmFwUG9seWdvbjplLndyYXBQb2x5Z29ufTp7fSxpbWFnZUtleTplLmV4Y2x1c2lvbklkPz8oZS5raW5kPT09YHRhYmxlYD9gYm9keTpmbG9hdDoke2UucGFyYWdyYXBoSWR9YDpgYCksaW1hZ2VYOmUuYm91bmRzLnhQdCxpbWFnZVk6ZS5ib3VuZHMueVB0LGltYWdlVzplLmJvdW5kcy53aWR0aFB0LGltYWdlSDplLmJvdW5kcy5oZWlnaHRQdCx4TGVmdDplLmV4Y2x1c2lvbkJvdW5kcy54UHQseFJpZ2h0OmUuZXhjbHVzaW9uQm91bmRzLnhQdCtlLmV4Y2x1c2lvbkJvdW5kcy53aWR0aFB0LHlUb3A6ZS5leGNsdXNpb25Cb3VuZHMueVB0LHlCb3R0b206ZS5leGNsdXNpb25Cb3VuZHMueVB0K2UuZXhjbHVzaW9uQm91bmRzLmhlaWdodFB0LHNpZGU6ZS53cmFwU2lkZT8/YGJvdGhTaWRlc2AsZGlzdExlZnQ6dCxkaXN0UmlnaHQ6cixkaXN0VG9wOm4sZGlzdEJvdHRvbTppLHBhcmFJZDplLnBhcmFncmFwaElkfTtyZXR1cm4gZS5raW5kPT09YHRhYmxlYD97Li4uYSxraW5kOmB0YWJsZWAsdGFibGVPdmVybGFwOmUub3ZlcmxhcH06ey4uLmEsa2luZDplLmtpbmR9fSk7ZS5mbG9hdHMmJih5LmZsb2F0cy5wdXNoKC4uLm4pLEQ9T2JqZWN0LmZyZWV6ZSh7Li4uRCxlbnRyaWVzOk9iamVjdC5mcmVlemUoWy4uLkQuZW50cmllcywuLi5lLmZsb2F0cy5lbnRyaWVzXSksbmV4dFBhcmFncmFwaElkOmUuZmxvYXRzLm5leHRQYXJhZ3JhcGhJZH0pLHkuZmxvYXRQYXJhU2VxPWUuZmxvYXRzLm5leHRQYXJhZ3JhcGhJZCksTz10fX07cmV0dXJuIE9iamVjdC5mcmVlemUoeil9fSl9ZnVuY3Rpb24gZChlLHQpe3JldHVybiB3Tih0LGtOKHQsZSkpfWZ1bmN0aW9uIGYoZSx0LG4scil7bGV0IGk9ZS5yZXRhaW5lZFRhYmxlc0J5U291cmNlSW5kZXguZ2V0KHIpLGE9cCh0LG4sZSksbz1lLnJldGFpbmVkVGFibGVBY3F1aXNpdGlvbixzPWdGKHQsYSxuLGUsW3JdLG8pLGM9aT8uY29udGVudFdpZHRoUHQ9PT1uP09iamVjdC5mcmVlemUoey4uLnMsbGF5b3V0Ok9iamVjdC5mcmVlemUoey4uLnMubGF5b3V0LGNvbHVtbldpZHRoc1B0OmkuYWNxdWlzaXRpb24ubGF5b3V0LmNvbHVtbldpZHRoc1B0fSl9KTpzO2UucmV0YWluZWRUYWJsZXNCeVNvdXJjZUluZGV4LnNldChyLE9iamVjdC5mcmVlemUoe3NvdXJjZUluZGV4OnIsYWNxdWlzaXRpb246Yyxjb250ZW50V2lkdGhQdDpuLGFuY2hvcllQdDplLnl9KSk7bGV0IGw9Yy5sYXlvdXQucm93cy5tYXAoZT0+ZS5hZHZhbmNlUHQpO3JldHVybntjb2xXaWR0aHNQdDphLHJvd0NvbnRlbnRIZWlnaHRzUHQ6bCxyb3dIZWlnaHRzUHQ6bH19ZnVuY3Rpb24gcChlLHQsbil7bGV0IHI9bi5hY3F1aXNpdGlvbklucHV0cy50YWJsZUZvcm1hdElucHV0KGUpLGk9TnVtYmVyLmlzRmluaXRlKGUudGJsSW5kKT9lLnRibEluZD8/MDowLGE9ci5yb3dzLm1hcChlPT57bGV0IHQ9ZS5leGNlcHRpb247cmV0dXJuIHQ/LmluZGVudEF1dGhvcmVkP3QuaW5kZW50UHQ/PzA6aX0pLG89bi5zdG9yeUNvbnRleHQ/LnN0b3J5LHM9bi5zdG9yeUNvbnRleHQ/LmNvbnRhaW5lcnMubGVuZ3RoPT09MCYmKG89PT1gaGVhZGVyYHx8bz09PWBmb290ZXJgfHxvPT09YGJvZHlgJiZuLnNlY3Rpb25MYXlvdXQ/LmNvbHVtbnMubGVuZ3RoPT09MSksYz1yLm9yZGluYXJ5RmxvdyYmcyYmIXZOKG4uc2VjdGlvbkxheW91dC50ZXh0RGlyZWN0aW9uKSYmW2ksLi4uYV0uc29tZShlPT5lPDApLGw9ci5yb3dzLmxlbmd0aD09PTA/W3tqdXN0aWZpY2F0aW9uOmUuamMsaW5kZW50UHQ6aX1dOnIucm93cy5tYXAoKHQsbik9Pih7anVzdGlmaWNhdGlvbjp0Lmp1c3RpZmljYXRpb24/P2UuamMsaW5kZW50UHQ6YVtuXT8/aX0pKSx1PWUuYmlkaVZpc3VhbD09PSEwLGQ9TWF0aC5taW4obi5wYWdlV2lkdGgsLi4ubC5tYXAoKHtqdXN0aWZpY2F0aW9uOmUsaW5kZW50UHQ6cn0pPT57bGV0IGk9ZT09PWByaWdodGB8fGU9PT1gZW5kYCxhPWU9PT1gY2VudGVyYD9gY2VudGVyYDoodT8haTppKT9gcmlnaHRgOmBsZWZ0YCxvPXU/LXI6cjtpZihhPT09YGxlZnRgKXtsZXQgZT1uLmNvbnRlbnRYK287cmV0dXJuIG4ucGFnZVdpZHRoLWV9aWYoYT09PWByaWdodGApcmV0dXJuIG4uY29udGVudFgrdCtvO2xldCBzPW4uY29udGVudFgrdC8yK287cmV0dXJuIDIqTWF0aC5taW4ocyxuLnBhZ2VXaWR0aC1zKX0pKSxmPWM/TWF0aC5tYXgodCxkKTp0LHA9KHIuZmlyc3RSb3dFeGNlcHRpb24/LmxheW91dD09PWBmaXhlZGA/YGZpeGVkYDplLmxheW91dCk9PT1gZml4ZWRgJiZuLnN0b3J5Q29udGV4dD8uY29udGFpbmVycy5zb21lKGU9PmUua2luZD09PWB0YWJsZUNlbGxgKSxtPShlLHI9bi5hY3F1aXNpdGlvbklucHV0cy50YWJsZUZvcm1hdElucHV0KGUpKT0+e2xldCBpPW5ldyBXZWFrTWFwO3JldHVybiBlLnJvd3MuZm9yRWFjaCgodCxuKT0+dC5jZWxscy5mb3JFYWNoKCh0LGEpPT57bGV0IG89ci5yb3dzW25dPy5jZWxsc1thXT8ubWFyZ2luc1B0O2kuc2V0KHQsbz8/QSh0LGUpKX0pKSxyPT5YUyhyLGkuZ2V0KHIpPz9BKHIsZSkse3BhcmFncmFwaDplPT57bGV0IHI9a0Mobi5sYXlvdXRTZXR0aW5ncyxuLnNlY3Rpb25MYXlvdXQsbi5zdG9yeUNvbnRleHQ/P1ROLGUpLGk9ZS5udW1iZXJpbmc/bi5hY3F1aXNpdGlvbklucHV0cy5udW1iZXJpbmdNYXJrZXJTaGFwZUlucHV0KGUubnVtYmVyaW5nLEF4KGUpKTp2b2lkIDAsYT1LUyhyLHtudW1iZXJpbmc6ZS5udW1iZXJpbmcsLi4uaT97bWFya2VySW5wdXQ6aX06e30sYXV0aG9yZWRGaXJzdEluZGVudFB0OmUuaW5kZW50Rmlyc3QsdGFiU3RvcHM6ZS50YWJTdG9wcyxkZWZhdWx0VGFiUHQ6bi5kZWZhdWx0VGFiUHQsc2VydmljZTpuLmxheW91dFNlcnZpY2VzPy50ZXh0LGNsdXN0ZXJHZW9tZXRyeTohMX0pLG89YS5udW1iZXJpbmdNYXJrZXJHZW9tZXRyeT8/KGUubnVtYmVyaW5nJiZpJiZuLmxheW91dFNlcnZpY2VzPy50ZXh0P1lTKGUubnVtYmVyaW5nLGkse2F1dGhvcmVkRmlyc3RJbmRlbnRQdDplLmluZGVudEZpcnN0LHBoeXNpY2FsSW5kZW50TGVmdFB0OmEucGh5c2ljYWxJbmRlbnRMZWZ0UHQsdGFiU3RvcHM6ZS50YWJTdG9wcyxkZWZhdWx0VGFiUHQ6bi5kZWZhdWx0VGFiUHR9LG4ubGF5b3V0U2VydmljZXMudGV4dCwhMSk6dm9pZCAwKTtyZXR1cm4gbkMoZSxhLHQse2NvbnRleHQ6bi5jdHgsZm9udEZhbWlseUNsYXNzZXM6bi5mb250RmFtaWx5Q2xhc3Nlc30sQ04obiksbyl9LG5lc3RlZFRhYmxlOmU9PmNQKG4uYWNxdWlzaXRpb25JbnB1dHMudGFibGVDb2x1bW5MYXlvdXRJbnB1dChlLHQsbShlKSx0KSl9KX07cmV0dXJuWy4uLnBQKG4uYWNxdWlzaXRpb25JbnB1dHMudGFibGVDb2x1bW5MYXlvdXRJbnB1dChlLHQsbShlLHIpLHA/bnVsbDpuLmFjcXVpc2l0aW9uSW5wdXRzLnRhYmxlUGFydGljaXBhdGVzSW5PcmRpbmFyeUZsb3coZSk/ZjpNYXRoLm1heCh0LG4ucGFnZVdpZHRoKSkpXX1mdW5jdGlvbiBtKGUsdCxuKXtsZXQgcj1lLmluZGV4T2YodCk7Zm9yKGxldCB0PXIrMTt0PGUubGVuZ3RoO3QrKyl7bGV0IHI9ZVt0XTtpZihyLnR5cGUhPT1gcGFyYWdyYXBoYCljb250aW51ZTtsZXQgaT1yO2lmKCFpLmZyYW1lUHIpcmV0dXJuIGFTKGksMSxkKGksbiksT04obixpKS5oYXNSdWJ5LG4uZG9jRWFzdEFzaWFuLG4uY3R4LG4uZm9udEZhbWlseUNsYXNzZXMsaS5saW5lU3BhY2luZyxuLnJlc29sdmVkTG9jYWxGb250cyxuLmxheW91dFNlcnZpY2VzPy50ZXh0LG4uYWNxdWlzaXRpb25JbnB1dHMucGFyYWdyYXBoTWFya1NoYXBlSW5wdXQoaSksbi5sYXlvdXRTZXR0aW5ncy5jb21wYXQudXNlRmVMYXlvdXQpfWxldCBpPXQ7cmV0dXJuIGFTKGksMSxkKGksbiksT04obixpKS5oYXNSdWJ5LG4uZG9jRWFzdEFzaWFuLG4uY3R4LG4uZm9udEZhbWlseUNsYXNzZXMsaS5saW5lU3BhY2luZyxuLnJlc29sdmVkTG9jYWxGb250cyxuLmxheW91dFNlcnZpY2VzPy50ZXh0LG4uYWNxdWlzaXRpb25JbnB1dHMucGFyYWdyYXBoTWFya1NoYXBlSW5wdXQoaSksbi5sYXlvdXRTZXR0aW5ncy5jb21wYXQudXNlRmVMYXlvdXQpfWZ1bmN0aW9uIGgoZSx0LG4scixpKXtsZXQgYT17Y29udGV4dDpuLmN0eCxmb250RmFtaWx5Q2xhc3NlczpuLmZvbnRGYW1pbHlDbGFzc2VzfSxvPUNOKG4pLHM9dC5tZW1iZXJzLm1hcChfQyksYz1KTSh0LmZyYW1lUHIuaEFuY2hvcixuKSxsPXtjb250ZW50WFB0Om4uY29udGVudFgsY29udGVudFdpZHRoUHQ6bi5jb250ZW50VyxwYWdlSGVpZ2h0UHQ6bi5wYWdlSCx5UHQ6bi55LGFuY2hvckxpbmVIZWlnaHRQdDpyfSx1PXZqKHQse2NvbnRleHRzOnQubWVtYmVycy5tYXAoZT0+T04obixlKSksaW5wdXRzOnQubWVtYmVycyxib3JkZXJFZGdlczpzLGJvcmRlckV4dGVudHNQdDp0Lm1lbWJlcnMubWFwKChlLHQpPT5zW3RdPy5ib3R0b209PT1gbm9uZWA/MDpyQyhlLmJvcmRlcnMpKSxtZWFzdXJlcjphLGVudmlyb25tZW50Om8sY29udGFpbmVyU2hhZGluZzpuLmNvbnRhaW5lclNoYWRpbmcsbWF4aW11bVdpZHRoUHQ6TWF0aC5tYXgoMCxjLnJpZ2h0LWMubGVmdCksYWNxdWlzaXRpb25TZXNzaW9uOm4scGxhY2VtZW50U2lnbmF0dXJlOltsLmNvbnRlbnRYUHQsbC5jb250ZW50V2lkdGhQdCxsLnBhZ2VIZWlnaHRQdCxsLnlQdCxsLmFuY2hvckxpbmVIZWlnaHRQdCxuLnBhZ2VXaWR0aCxuLm1hcmdpbkxlZnQsbi5tYXJnaW5SaWdodCxuLm1hcmdpblRvcCxuLm1hcmdpbkJvdHRvbV0uam9pbihgfGApLHBsYWNlOihlLHIpPT57bGV0IGk9JE0odC5mcmFtZVByLG4sbC55UHQsZSxyLGwuYW5jaG9yTGluZUhlaWdodFB0KTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Ym91bmRzOk9iamVjdC5mcmVlemUoe3hQdDppLngseVB0OmkueSx3aWR0aFB0OmkudyxoZWlnaHRQdDppLmh9KSxleGNsdXNpb25Cb3VuZHM6T2JqZWN0LmZyZWV6ZSh7eFB0OmkuZXhMZWZ0LHlQdDppLmV4VG9wLHdpZHRoUHQ6aS5leFJpZ2h0LWkuZXhMZWZ0LGhlaWdodFB0OmkuZXhCb3R0b20taS5leFRvcH0pfSl9LGFuY2hvckZyYW1lczpFTihuKX0pO2k/Lih1KTtsZXQgZD17eDp1LmJveC5ib3VuZHMueFB0LHk6dS5ib3guYm91bmRzLnlQdCx3OnUuYm94LmJvdW5kcy53aWR0aFB0LGg6dS5ib3guYm91bmRzLmhlaWdodFB0LGV4TGVmdDp1LmJveC5leGNsdXNpb25Cb3VuZHMueFB0LGV4VG9wOnUuYm94LmV4Y2x1c2lvbkJvdW5kcy55UHQsZXhSaWdodDp1LmJveC5leGNsdXNpb25Cb3VuZHMueFB0K3UuYm94LmV4Y2x1c2lvbkJvdW5kcy53aWR0aFB0LGV4Qm90dG9tOnUuYm94LmV4Y2x1c2lvbkJvdW5kcy55UHQrdS5ib3guZXhjbHVzaW9uQm91bmRzLmhlaWdodFB0LHJlZ2lzdGVyRXhjbHVzaW9uOiEwLGV4Y2x1c2lvbklkOnUuYm94LmV4Y2x1c2lvbklkfTtyZXR1cm4gZT09PXQub3duZXI/ZDp7Li4uZCxyZWdpc3RlckV4Y2x1c2lvbjohMX19ZnVuY3Rpb24gZyhlLHQsbil7aWYodC52ZXJ0aWNhbFBoeXMpe2xldCBuPWcoZSxDKHQpLHQuY29udGVudFgpO3JldHVybiBUSShuLngsbi55LG4udyxuLmgsdC52ZXJ0aWNhbFBoeXMucGh5c2ljYWxQYWdlV2lkdGhQdCl9bGV0IHI9ZS53aWR0aFB0LGk9ZS5oZWlnaHRQdCxhPWUuYW5jaG9yWFB0LG89ZS5hbmNob3JZUHQscz1lLmdyb3VwV2lkdGhQdD8/bnVsbCxjPWUuZ3JvdXBIZWlnaHRQdD8/bnVsbDtpZihlLndpZHRoUGN0IT1udWxsKXtsZXQgbj1wTihlLndpZHRoUmVsYXRpdmVGcm9tLCExLHQpLGk9KG4uZW5kLW4uc3RhcnQpKmUud2lkdGhQY3Q7aWYoZS5ncm91cFdpZHRoUHQhPW51bGwmJmUuZ3JvdXBXaWR0aFB0PjApe2xldCB0PWkvZS5ncm91cFdpZHRoUHQ7cj1lLndpZHRoUHQqdCxhPWUuYW5jaG9yWFB0KnR9ZWxzZSByPWk7cz1pfWlmKGUuaGVpZ2h0UGN0IT1udWxsKXtsZXQgcj1tTihlLmhlaWdodFJlbGF0aXZlRnJvbSwhMSxuLHQpLGE9KHIuZW5kLXIuc3RhcnQpKmUuaGVpZ2h0UGN0O2lmKGUuZ3JvdXBIZWlnaHRQdCE9bnVsbCYmZS5ncm91cEhlaWdodFB0PjApe2xldCB0PWEvZS5ncm91cEhlaWdodFB0O2k9ZS5oZWlnaHRQdCp0LG89ZS5hbmNob3JZUHQqdH1lbHNlIGk9YTtjPWF9cmV0dXJue3g6aE4oZS5hbmNob3JYQWxpZ24sZS5hbmNob3JYRnJvbU1hcmdpbixhLHIsdCxlLmFuY2hvclhSZWxhdGl2ZUZyb20sZS5wY3RQb3NILHMpLHk6Z04oZS5hbmNob3JZQWxpZ24sZS5hbmNob3JZRnJvbVBhcmEsbyxpLG4sdCxlLmFuY2hvcllSZWxhdGl2ZUZyb20sZS5wY3RQb3NWLGMpLHc6cixoOml9fWxldCBfPShlLHQsbik9PncoZSx0LG4pLHY9KGUsdCxuKT0+ZyhlLHQsbikseT1lPT54TihlKSxiPWU9PmJOKGUpLHg9KGUsdCxuKT0+RShlLHQsbik7ZnVuY3Rpb24gUyhlKXtsZXQgdD1lLnZlcnRpY2FsUGh5cztyZXR1cm4gdD97Li4uZSxwYWdlV2lkdGg6dC5wYWdlV2lkdGgsbWFyZ2luTGVmdDp0Lm1hcmdpbkxlZnQsbWFyZ2luUmlnaHQ6dC5tYXJnaW5SaWdodCxtYXJnaW5Ub3A6dC5tYXJnaW5Ub3AsbWFyZ2luQm90dG9tOnQubWFyZ2luQm90dG9tLHBhZ2VIOnQucGFnZUhlaWdodH06ZX1mdW5jdGlvbiBDKGUpe2xldCB0PWUudmVydGljYWxQaHlzO3JldHVybiB0P3suLi5TKGUpLGNvbnRlbnRYOnQubWFyZ2luTGVmdCxjb250ZW50Vzp0LnBhZ2VXaWR0aC10Lm1hcmdpbkxlZnQtdC5tYXJnaW5SaWdodCx2ZXJ0aWNhbENKSzohMSx2ZXJ0aWNhbEFsbFJvdGF0ZWQ6ITEsdmVydGljYWxQaHlzOnZvaWQgMCxmbG9hdHM6W119OmV9ZnVuY3Rpb24gdyhlLHQsbil7bGV0IHI9ZS53aWR0aFB0LGk9ZS5oZWlnaHRQdCxhPWUuZGlzdExlZnQ/PzAsbz1lLmRpc3RSaWdodD8/MCxzPWUuZGlzdFRvcD8/MCxjPWUuZGlzdEJvdHRvbT8/MDtpZih0LnZlcnRpY2FsUGh5cyl7bGV0IG49Uyh0KSxsPVRJKGhOKGUuYW5jaG9yWEFsaWduLGUuYW5jaG9yWEZyb21NYXJnaW4/PyExLGUuYW5jaG9yWFB0Pz8wLHIsbixlLmFuY2hvclhSZWxhdGl2ZUZyb20/P251bGwsbnVsbCxudWxsKSxnTihlLmFuY2hvcllBbGlnbixlLmFuY2hvcllGcm9tUGFyYT8/ITEsZS5hbmNob3JZUHQ/PzAsaSx0LmNvbnRlbnRYLG4sZS5hbmNob3JZUmVsYXRpdmVGcm9tPz9udWxsLG51bGwsbnVsbCkscixpLHQudmVydGljYWxQaHlzLnBoeXNpY2FsUGFnZVdpZHRoUHQpO3JldHVybnt4OmwueCx5OmwueSx3OmwudyxoOmwuaCxkbDpzLGRyOmMsZHQ6byxkYjphfX1yZXR1cm57eDpoTihlLmFuY2hvclhBbGlnbixlLmFuY2hvclhGcm9tTWFyZ2luPz8hMSxlLmFuY2hvclhQdD8/MCxyLHQsZS5hbmNob3JYUmVsYXRpdmVGcm9tPz9udWxsLG51bGwsbnVsbCkseTpnTihlLmFuY2hvcllBbGlnbixlLmFuY2hvcllGcm9tUGFyYT8/ITEsZS5hbmNob3JZUHQ/PzAsaSxuLHQsZS5hbmNob3JZUmVsYXRpdmVGcm9tPz9udWxsLG51bGwsbnVsbCksdzpyLGg6aSxkbDphLGRyOm8sZHQ6cyxkYjpjfX1mdW5jdGlvbiBUKGUsdCxuKXtsZXQgcj10LmZsb2F0UGFyYVNlcSsrLGk9dC5wYWdlQW5jaG9yUHJlc2Nhbm5lZD8uaGFzKGUpPz8hMTtmb3IobGV0IGEgb2YgZS5ydW5zKWlmKGEudHlwZT09PWBpbWFnZWApe2xldCBlPWE7aWYoaSYmbEkoZSkpY29udGludWU7RChlLHQsbixyKX1lbHNlIGlmKGEudHlwZT09PWBjaGFydGApe2xldCBlPWE7aWYoaSYmbEkoZSkpY29udGludWU7TyhlLHQsbixyKX1lbHNlIGlmKGEudHlwZT09PWBzaGFwZWApe2xldCBlPWE7aWYoaSYmbEkoZSkpY29udGludWU7ayhlLHQsbixyKX19ZnVuY3Rpb24gRShlLHQsbil7bi5wYWdlQW5jaG9yUHJlc2Nhbm5lZHx8PW5ldyBTZXQ7Zm9yKGxldCByPXQ7cjxlLmxlbmd0aDtyKyspe2xldCB0PWVbcl07aWYoIXQpY29udGludWU7aWYodC50eXBlPT09YHBhZ2VCcmVha2ApYnJlYWs7aWYodC50eXBlPT09YHNlY3Rpb25CcmVha2Ape2xldCBlPXQ7aWYoZS5raW5kJiZlLmtpbmQhPT1gY29udGludW91c2ApYnJlYWs7Y29udGludWV9aWYodC50eXBlIT09YHBhcmFncmFwaGApY29udGludWU7bGV0IGk9dDtpZihuLnBhZ2VBbmNob3JQcmVzY2FubmVkLmhhcyhpKSljb250aW51ZTtsZXQgYT0hMTtmb3IobGV0IGUgb2YgaS5ydW5zKWlmKGUudHlwZT09PWBpbWFnZWApe2lmKGxJKGUpKXthPSEwO2JyZWFrfX1lbHNlIGlmKGUudHlwZT09PWBjaGFydGApe2lmKGxJKGUpKXthPSEwO2JyZWFrfX1lbHNlIGlmKGUudHlwZT09PWBzaGFwZWAmJmxJKGUpKXthPSEwO2JyZWFrfWlmKCFhKWNvbnRpbnVlO2xldCBvPW4uZmxvYXRQYXJhU2VxKys7Zm9yKGxldCBlIG9mIGkucnVucylpZihlLnR5cGU9PT1gaW1hZ2VgKXtsZXQgdD1lO2lmKCFsSSh0KSljb250aW51ZTtEKHQsbiwwLG8pfWVsc2UgaWYoZS50eXBlPT09YGNoYXJ0YCl7bGV0IHQ9ZTtpZighbEkodCkpY29udGludWU7Tyh0LG4sMCxvKX1lbHNlIGlmKGUudHlwZT09PWBzaGFwZWApe2xldCB0PWU7aWYoIWxJKHQpKWNvbnRpbnVlO2sodCxuLDAsbyl9bi5wYWdlQW5jaG9yUHJlc2Nhbm5lZC5hZGQoaSl9fWZ1bmN0aW9uIEQoZSx0LG4scil7aWYoIWUuYW5jaG9yfHwhZWIoZS53cmFwTW9kZSkpcmV0dXJuO2xldCBpPWUud3JhcE1vZGU9PT1gdG9wQW5kQm90dG9tYD9gdG9wQW5kQm90dG9tYDpgc3F1YXJlYCxhPXcoZSx0LG4pLHt3Om8saDpzLGRsOmwsZHI6dSxkdDpkLGRiOmZ9PWEscD1lLmFsbG93T3ZlcmxhcD8/ITAsbT1jKGUuaW1hZ2VQYXRoLGUuY29sb3JSZXBsYWNlRnJvbSxlLmR1b3RvbmUpO2VOKHQse3g6YS54LHk6YS55LHc6byxoOnMsZGw6bCxkcjp1LGR0OmQsZGI6ZixraW5kOmBzaGFwZWAsbW9kZTppLHNpZGU6ZS53cmFwU2lkZT8/YGJvdGhTaWRlc2AsaW1hZ2VLZXk6bSxwYXJhSWQ6cixhdm9pZE92ZXJsYXA6ITAsYWxsb3dPdmVybGFwOnB9KX1mdW5jdGlvbiBPKGUsdCxuLHIpe2lmKCFlLmFuY2hvcnx8IWViKGUud3JhcE1vZGUpKXJldHVybjtsZXQgaT13KGUsdCxuKSx7dzphLGg6byxkbDpzLGRyOmMsZHQ6bCxkYjp1fT1pO2E8PTB8fG88PTB8fGVOKHQse3g6aS54LHk6aS55LHc6YSxoOm8sZGw6cyxkcjpjLGR0OmwsZGI6dSxraW5kOmBzaGFwZWAsbW9kZTplLndyYXBNb2RlPT09YHRvcEFuZEJvdHRvbWA/YHRvcEFuZEJvdHRvbWA6YHNxdWFyZWAsc2lkZTplLndyYXBTaWRlPz9gYm90aFNpZGVzYCxhbGxvd092ZXJsYXA6ZS5hbGxvd092ZXJsYXA/PyEwLGF2b2lkT3ZlcmxhcDohMCxwYXJhSWQ6cixpbWFnZUtleTpgYH0pfWZ1bmN0aW9uIGsoZSx0LG4scil7aWYoIWViKGUud3JhcE1vZGUpKXJldHVybjtsZXR7eDppLHk6YSx3Om8saDpzfT1nKGUsdCxuKTtpZihvPD0wfHxzPD0wKXJldHVybjtsZXQgYz1lLndyYXBNb2RlPT09YHRvcEFuZEJvdHRvbWA/YHRvcEFuZEJvdHRvbWA6YHNxdWFyZWAsbD1lLmRpc3RMZWZ0Pz8wLHU9ZS5kaXN0UmlnaHQ/PzAsZD1lLmRpc3RUb3A/PzAsZj1lLmRpc3RCb3R0b20/PzAscD0hIXQudmVydGljYWxQaHlzO2VOKHQse3g6aSx5OmEsdzpvLGg6cyxkbDpwP2Q6bCxkcjpwP2Y6dSxkdDpwP3U6ZCxkYjpwP2w6ZixraW5kOmBzaGFwZWAsbW9kZTpjLHNpZGU6ZS53cmFwU2lkZT8/YGJvdGhTaWRlc2AsaW1hZ2VLZXk6YGAscGFyYUlkOnIsYXZvaWRPdmVybGFwOiEwLGFsbG93T3ZlcmxhcDohMH0pfWZ1bmN0aW9uIEEoZSx0KXtyZXR1cm57dG9wOmUubWFyZ2luVG9wPz90LmNlbGxNYXJnaW5Ub3AsYm90dG9tOmUubWFyZ2luQm90dG9tPz90LmNlbGxNYXJnaW5Cb3R0b20sbGVmdDplLm1hcmdpbkxlZnQ/P3QuY2VsbE1hcmdpbkxlZnQscmlnaHQ6ZS5tYXJnaW5SaWdodD8/dC5jZWxsTWFyZ2luUmlnaHR9fWxldCBqPXUoZSx0LG4pO3JldHVybiBPYmplY3QuZnJlZXplKHtrZXJuZWw6aixpbnRlcm5hbHM6T2JqZWN0LmZyZWV6ZSh7cmVzb2x2ZUNvbHVtbldpZHRoczpwLHJlc29sdmVBbmNob3JCb3g6XyxyZXNvbHZlU2hhcGVCb3g6dixwaHlzaWNhbExheW91dFNlY3Rpb246eSx2ZXJ0aWNhbExheW91dFNlY3Rpb246YixwcmVSZWdpc3RlclBhZ2VGbG9hdHM6eH0pfSl9ZnVuY3Rpb24qREkoZSl7ZS50ZXh0UGF0aCYmKHlpZWxke3RleHQ6ZS50ZXh0UGF0aC5zdHJpbmcsZm9udEZhbWlsaWVzOltlLnRleHRQYXRoLmZvbnRGYW1pbHldLGJvbGQ6ZS50ZXh0UGF0aC5ib2xkLGl0YWxpYzplLnRleHRQYXRoLml0YWxpY30pO2ZvcihsZXQgdCBvZiBlLnRleHRCbG9ja3M/P1tdKXlpZWxkKk9JKHQpfWZ1bmN0aW9uKk9JKGUpe2lmKGUubnVtYmVyaW5nJiYoeWllbGR7dGV4dDplLm51bWJlcmluZy50ZXh0LGZvbnRGYW1pbGllczpbZS5udW1iZXJpbmcuZm9udEZhbWlseSxlLm51bWJlcmluZy5mb250RmFtaWx5RWFzdEFzaWFdLGJvbGQ6ITEsaXRhbGljOiExfSksZS5ydW5zPy5sZW5ndGgpZm9yKGxldCB0IG9mIGUucnVucyl5aWVsZHt0ZXh0OnQudGV4dCxmb250RmFtaWxpZXM6W3QuZm9udEZhbWlseSx0LmZvbnRGYW1pbHlFYXN0QXNpYSxlLmZvbnRGYW1pbHldLGJvbGQ6dC5ib2xkPz9lLmJvbGQsaXRhbGljOnQuaXRhbGljPz9lLml0YWxpY307ZWxzZSB5aWVsZHt0ZXh0OmUudGV4dCxmb250RmFtaWxpZXM6W2UuZm9udEZhbWlseV0sYm9sZDplLmJvbGQsaXRhbGljOmUuaXRhbGljfX1mdW5jdGlvbiprSShlKXtpZihlLnR5cGU9PT1gdGV4dGApe2xldCB0PWU7eWllbGR7dGV4dDplLnRleHQsZm9udEZhbWlsaWVzOltlLmZvbnRGYW1pbHksdC5mb250RmFtaWx5SGlnaEFuc2ksZS5mb250RmFtaWx5RWFzdEFzaWFdLGJvbGQ6ZS5ib2xkLGl0YWxpYzplLml0YWxpY30seWllbGR7dGV4dDplLnRleHQsZm9udEZhbWlsaWVzOltlLmZvbnRGYW1pbHlDc10sYm9sZDplLmJvbGRDcz8/ITEsaXRhbGljOmUuaXRhbGljQ3M/PyExfX1lbHNlIGlmKGUudHlwZT09PWBmaWVsZGApe2xldCB0PWU7eWllbGR7dGV4dDp0LmZhbGxiYWNrVGV4dCxmb250RmFtaWxpZXM6W3QuZm9udEZhbWlseSx0LmZvbnRGYW1pbHlIaWdoQW5zaSx0LmZvbnRGYW1pbHlFYXN0QXNpYV0sYm9sZDp0LmJvbGQsaXRhbGljOnQuaXRhbGljfSx5aWVsZHt0ZXh0OnQuZmFsbGJhY2tUZXh0LGZvbnRGYW1pbGllczpbdC5mb250RmFtaWx5Q3NdLGJvbGQ6dC5ib2xkQ3M/PyExLGl0YWxpYzp0Lml0YWxpY0NzPz8hMX19ZWxzZSBlLnR5cGU9PT1gc2hhcGVgP3lpZWxkKkRJKGUpOmUudHlwZT09PWBhbmNob3JIb3N0YCYmKHlpZWxke3RleHQ6YGAsZm9udEZhbWlsaWVzOltlLmZvbnRGYW1pbHksZS5mb250RmFtaWx5RWFzdEFzaWFdLGJvbGQ6ZS5ib2xkLGl0YWxpYzplLml0YWxpY30pfWZ1bmN0aW9uKkFJKGUpe3lpZWxke3RleHQ6YGAsZm9udEZhbWlsaWVzOltlLmRlZmF1bHRGb250RmFtaWx5LGUuZGVmYXVsdEZvbnRGYW1pbHlFYXN0QXNpYV19LGUubnVtYmVyaW5nJiYoeWllbGR7dGV4dDplLm51bWJlcmluZy50ZXh0LGZvbnRGYW1pbGllczpbZS5udW1iZXJpbmcuZm9udEZhbWlseSxlLm51bWJlcmluZy5mb250RmFtaWx5RWFzdEFzaWFdfSk7Zm9yKGxldCB0IG9mIGUucnVucyl5aWVsZCprSSh0KX1mdW5jdGlvbipqSShlKXtmb3IobGV0IHQgb2YgZS5yb3dzKWZvcihsZXQgZSBvZiB0LmNlbGxzKXlpZWxkKk5JKGUuY29udGVudCl9ZnVuY3Rpb24qTUkoZSl7aWYoZSlmb3IobGV0IHQgb2ZbZS5kZWZhdWx0LGUuZmlyc3QsZS5ldmVuXSl0JiYoeWllbGQqTkkodC5ib2R5KSl9ZnVuY3Rpb24qTkkoZSl7Zm9yKGxldCB0IG9mIGUpdC50eXBlPT09YHBhcmFncmFwaGA/eWllbGQqQUkodCk6dC50eXBlPT09YHRhYmxlYD95aWVsZCpqSSh0KTp0LnR5cGU9PT1gc2VjdGlvbkJyZWFrYCYmKHlpZWxkKk1JKHQuaGVhZGVycykseWllbGQqTUkodC5mb290ZXJzKSl9ZnVuY3Rpb24qUEkoZSl7eWllbGQqTkkoZS5ib2R5Pz9bXSkseWllbGQqTUkoZS5oZWFkZXJzKSx5aWVsZCpNSShlLmZvb3RlcnMpO2ZvcihsZXQgdCBvZlsuLi5lLmZvb3Rub3Rlcz8/W10sLi4uZS5lbmRub3Rlcz8/W11dKXlpZWxkKk5JKHQuY29udGVudCl9ZnVuY3Rpb24gRkkoZSl7bGV0IHQ9bmV3IFNldDtmb3IobGV0IG4gb2YgUEkoZSkpZm9yKGxldCBlIG9mIG4uZm9udEZhbWlsaWVzKXtsZXQgbj1lPy50cmltKCk7biYmdC5hZGQobil9cmV0dXJuWy4uLnRdfWNvbnN0IElJPXsuLi5VLC4uLnJlfTtmdW5jdGlvbipMSShlKXtmb3IobGV0IHQgb2YgUEkoZSkpeWllbGQgdC50ZXh0fWZ1bmN0aW9uIFJJKGUpe2xldCB0PW5lKGUubWFqb3JGb250KT8/bmUoZS5taW5vckZvbnQpPz9udWxsO3JldHVybltlLm1ham9yRm9udCxlLm1pbm9yRm9udCwuLi5hZShMSShlKSx0KV19ZnVuY3Rpb24gekkoZSl7cmV0dXJuIGUudHJpbSgpLnRvTG9jYWxlTG93ZXJDYXNlKGBlbi1VU2ApfWZ1bmN0aW9uIEJJKGUpe3JldHVybiBlPT1udWxsfHwhTnVtYmVyLmlzRmluaXRlKGUpPzQwMDpNYXRoLm1pbig5MDAsTWF0aC5tYXgoMTAwLE1hdGgucm91bmQoZS8xMDApKjEwMCkpfWZ1bmN0aW9uIFZJKGUpe3JldHVybiBPYmplY3QuZnJlZXplKHsuLi5lLGRpYWdub3N0aWNzOk9iamVjdC5mcmVlemUoWy4uLmUuZGlhZ25vc3RpY3NdKX0pfWZ1bmN0aW9uIEhJKGUpe3JldHVybmAiJHtlLnJlcGxhY2VBbGwoYFxcYCxgXFxcXGApLnJlcGxhY2VBbGwoYCJgLGBcXCJgKX0iYH1mdW5jdGlvbiBVSShlLHQpe3JldHVybmAke0hJKGUpfSwgJHt0fWB9ZnVuY3Rpb24gV0koZSx0PXt9KXtsZXQgbj17ZW1iZWRkZWQ6MCxsb2NhbDoxLGdvb2dsZToyLHN1YnN0aXR1dGU6M30scj1lLmZpbHRlcihlPT5lLnJlcXVlc3RlZEZhbWlseS50cmltKCkmJmUucmVzb2x2ZWRGYW1pbHkudHJpbSgpKS5tYXAoZT0+T2JqZWN0LmZyZWV6ZSh7Li4uZSx3ZWlnaHQ6QkkoZS53ZWlnaHQpLHN0eWxlOmUuc3R5bGU/P2Bub3JtYWxgfSkpLnNvcnQoKGUsdCk9PnpJKGUucmVxdWVzdGVkRmFtaWx5KS5sb2NhbGVDb21wYXJlKHpJKHQucmVxdWVzdGVkRmFtaWx5KSl8fG5bZS5zb3VyY2VdLW5bdC5zb3VyY2VdfHxlLnJlc29sdmVkRmFtaWx5LmxvY2FsZUNvbXBhcmUodC5yZXNvbHZlZEZhbWlseSl8fGUud2VpZ2h0LXQud2VpZ2h0fHxlLnN0eWxlLmxvY2FsZUNvbXBhcmUodC5zdHlsZSkpLGk9bmV3IE1hcDtmb3IobGV0IGUgb2Ygcil7bGV0IHQ9ekkoZS5yZXF1ZXN0ZWRGYW1pbHkpO2kuc2V0KHQsWy4uLmkuZ2V0KHQpPz9bXSxlXSl9bGV0IGE9T2JqZWN0LmZyZWV6ZShPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXModC5uYXRpdmVGYW1pbHlMaXN0cz8/e30pLmZpbHRlcigoW2UsdF0pPT5lLnRyaW0oKSYmdC50cmltKCkpLm1hcCgoW2UsdF0pPT5bekkoZSksdF0pLnNvcnQoKFtlXSxbdF0pPT5lLmxvY2FsZUNvbXBhcmUodCkpKSksbz1EZyhgZm9udHNgLHtmYWNlczpyLG5hdGl2ZUZhbWlseUxpc3RzOmF9KTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7ZmluZ2VycHJpbnQ6byxyZXNvbHZlKGUpe2xldCB0PWUucmVxdWVzdGVkRmFtaWx5Py50cmltKCl8fGUuZ2VuZXJpY0ZhbWlseXx8YHNhbnMtc2VyaWZgLG49QkkoZS53ZWlnaHQpLHI9ZS5zdHlsZT8/YG5vcm1hbGAsbz0oaS5nZXQoekkodCkpPz9bXSkuZmluZChlPT5lLndlaWdodD09PW4mJmUuc3R5bGU9PT1yKTtpZihvKXtsZXQgaT1vLnNvdXJjZT09PWBzdWJzdGl0dXRlYD9be2NvZGU6YFVOU1VQUE9SVEVEX0ZFQVRVUkVgLHNldmVyaXR5OmB3YXJuaW5nYCxtZXNzYWdlOmBFQ01BLTM3NiDCpzE3LjguMiBpbXBsZW1lbnRhdGlvbi1kZXBlbmRlbnQgZm9udCBzdWJzdGl0dXRpb246ICR7dH0gcmVzb2x2ZWQgdG8gJHtvLnJlc29sdmVkRmFtaWx5fWB9XTpbXSxhPVVJKG8ucmVzb2x2ZWRGYW1pbHksZS5nZW5lcmljRmFtaWx5Pz9gc2Fucy1zZXJpZmApO3JldHVybiBWSSh7cmVxdWVzdGVkRmFtaWx5OnQscmVzb2x2ZWRGYW1pbHk6by5yZXNvbHZlZEZhbWlseSxyb3V0ZTp0ZShhLGByZWdpc3RlcmVkYCksc291cmNlOm8uc291cmNlLHdlaWdodDpuLHN0eWxlOnIsZGlhZ25vc3RpY3M6aSxnZW5lcmljRmFtaWx5OmUuZ2VuZXJpY0ZhbWlseT8/YHNhbnMtc2VyaWZgfSl9bGV0IHM9ZS5nZW5lcmljRmFtaWx5Pz9gc2Fucy1zZXJpZmAsYz1lLnJlcXVlc3RlZEZhbWlseT8udHJpbSgpO3JldHVybiBWSShjP3tyZXF1ZXN0ZWRGYW1pbHk6dCxyZXNvbHZlZEZhbWlseTpjLHJvdXRlOnRlKGFbekkoYyldPz9VSShjLHMpLGBuYXRpdmVgKSxzb3VyY2U6YG5hdGl2ZWAsd2VpZ2h0Om4sc3R5bGU6cixkaWFnbm9zdGljczpbXSxnZW5lcmljRmFtaWx5OnN9OntyZXF1ZXN0ZWRGYW1pbHk6dCxyZXNvbHZlZEZhbWlseTpzLHJvdXRlOnRlKHMsYGdlbmVyaWNgKSxzb3VyY2U6YGdlbmVyaWNgLHdlaWdodDpuLHN0eWxlOnIsZGlhZ25vc3RpY3M6W10sZ2VuZXJpY0ZhbWlseTpzfSl9fSl9ZnVuY3Rpb24gR0koZSx0KXtsZXQgbj1qdih0LmxvY2FsTWV0cmljcykscj1PYmplY3QuZnJlZXplKE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhlLmZvbnRGYW1pbHlDaGFyc2V0cykubWFwKChbZSx0XSk9PltlLnRyaW0oKS50b0xvd2VyQ2FzZSgpLHRdKSkpLGk9ZT0+ZS50cmltKCkucmVwbGFjZSgvXihbJyJdKSguKilcMSQvLGAkMmApLGE9ZT0+aShlKS50b0xvY2FsZUxvd2VyQ2FzZShgZW4tVVNgKSxvPWU9PntsZXQgdD1lLnN0eWxlLnRyaW0oKS50b0xvY2FsZUxvd2VyQ2FzZShgZW4tVVNgKTtyZXR1cm4gdD09PWBub3JtYWxgfHx0PT09YGl0YWxpY2A/dDpudWxsfSxzPWU9PntsZXQgdD1lLndlaWdodC50cmltKCkudG9Mb2NhbGVMb3dlckNhc2UoYGVuLVVTYCk7aWYodD09PWBub3JtYWxgKXJldHVybiA0MDA7aWYodD09PWBib2xkYClyZXR1cm4gNzAwO2lmKCEvXlxkKyQvLnRlc3QodCkpcmV0dXJuIG51bGw7bGV0IG49TnVtYmVyKHQpO3JldHVybiBuPj0xMDAmJm48PTkwMD9uOm51bGx9LGM9ZT0+ZS5mbGF0TWFwKGU9PntpZihlLnN0YXR1cyE9PWBsb2FkZWRgKXJldHVybltdO2xldCB0PXMoZSksbj1vKGUpO3JldHVybiB0PT1udWxsfHxuPT1udWxsP1tdOlt7ZmFtaWx5OmEoZS5mYW1pbHkpLGRpc3BsYXlGYW1pbHk6aShlLmZhbWlseSksd2VpZ2h0OnQsc3R5bGU6bn1dfSksbD1uZXcgTWFwKGModC5lbWJlZGRlZEZhY2VzPz9bXSkubWFwKGU9PltgJHtlLmZhbWlseX06JHtlLndlaWdodH06JHtlLnN0eWxlfWAsZV0pKSx1PWUuZm9udHMuZW1iZWRkZWRGb250cy5mbGF0TWFwKGU9PntsZXQgdD1lLnN0eWxlPT09YGJvbGRgfHxlLnN0eWxlPT09YGJvbGRJdGFsaWNgPzcwMDo0MDAsbj1lLnN0eWxlPT09YGl0YWxpY2B8fGUuc3R5bGU9PT1gYm9sZEl0YWxpY2A/YGl0YWxpY2A6YG5vcm1hbGAscj1sLmdldChgJHthKGUuZm9udE5hbWUpfToke3R9OiR7bn1gKTtyZXR1cm4gcj9be3JlcXVlc3RlZEZhbWlseTplLmZvbnROYW1lLHJlc29sdmVkRmFtaWx5OnIuZGlzcGxheUZhbWlseSxzb3VyY2U6YGVtYmVkZGVkYCx3ZWlnaHQ6dCxzdHlsZTpufV06W119KTtmb3IobGV0W2UsdF1vZiBPYmplY3QuZW50cmllcyhuKSl1LnB1c2goe3JlcXVlc3RlZEZhbWlseTp0LnJlcXVlc3RlZEZhbWlseT8/ZSxyZXNvbHZlZEZhbWlseTp0LmZhbWlseSxzb3VyY2U6YGxvY2FsYCx3ZWlnaHQ6dC53ZWlnaHQ/PzQwMCxzdHlsZTp0LnN0eWxlPz9gbm9ybWFsYH0pO2lmKHQudXNlR29vZ2xlRm9udHMpe2xldCBuPWModC5nb29nbGVGYWNlcz8/W10pLHI9bmV3IFNldDtmb3IobGV0IHQgb2YgZS5mb250cy5wcmVsb2FkTmFtZXMpe2lmKCF0KWNvbnRpbnVlO2xldCBlPXQudG9Mb2NhbGVMb3dlckNhc2UoYGVuLVVTYCk7aWYoci5oYXMoZSkpY29udGludWU7ci5hZGQoZSk7bGV0IGk9SUlbZV0sbz1pPy5sb2FkRmFtaWx5Pz90O2lmKGkpZm9yKGxldCBlIG9mIG4uZmlsdGVyKGU9PmUuZmFtaWx5PT09YShvKSkpdS5wdXNoKHtyZXF1ZXN0ZWRGYW1pbHk6dCxyZXNvbHZlZEZhbWlseTplLmRpc3BsYXlGYW1pbHksc291cmNlOmEobyk9PT1hKHQpP2Bnb29nbGVgOmBzdWJzdGl0dXRlYCx3ZWlnaHQ6ZS53ZWlnaHQsc3R5bGU6ZS5zdHlsZX0pfX1sZXQgZD10Lm1lYXN1cmVDb250ZXh0LGY9Wy4uLm5ldyBTZXQoWy4uLk9iamVjdC5rZXlzKGUuZm9udHMuZmFtaWx5Q2xhc3NlcyksLi4uT2JqZWN0LmtleXMoZS5mb250cy5mYW1pbHlQaXRjaGVzKSwuLi5lLmZvbnRzLnJlbmRlcmVkRmFtaWxpZXMsLi4uZS5mb250cy5tYWpvckZhbWlseT9bZS5mb250cy5tYWpvckZhbWlseV06W10sLi4uZS5mb250cy5taW5vckZhbWlseT9bZS5mb250cy5taW5vckZhbWlseV06W11dKV0scD1Jdih7Zm9udHM6V0kodSx7bmF0aXZlRmFtaWx5TGlzdHM6T2JqZWN0LmZyb21FbnRyaWVzKGYubWFwKHQ9Plt0LEV4KHQsZS5mb250cy5mYW1pbHlDbGFzc2VzLGUuZm9udHMuZmFtaWx5UGl0Y2hlcyldKSl9KSxsb2NhbE1ldHJpY3M6bixlYXN0QXNpYUZvbnRDaGFyc2V0czpyLGdlbmVyaWNGYW1pbGllczpPYmplY3QuZnJvbUVudHJpZXMoZi5tYXAodD0+W3Qsa3YodCxlLmZvbnRzLmZhbWlseUNsYXNzZXMsZS5mb250cy5mYW1pbHlQaXRjaGVzKV0pKSxtZWFzdXJlcjp7ZmluZ2VycHJpbnQ6ZD9gY2FudmFzLXRleHQtbWV0cmljcy12MWA6YGRldGVybWluaXN0aWMtdGV4dC1tZXRyaWNzLXYxYCxtZWFzdXJlKGUpe2lmKCFkKXJldHVybnthZHZhbmNlUHQ6Wy4uLmUudGV4dF0ubGVuZ3RoKmUuZm9udFNpemVQdCouNSxhc2NlbnRQdDplLmZvbnRTaXplUHQqLjgsZGVzY2VudFB0OmUuZm9udFNpemVQdCouMn07bGV0IHQ9ZC5mb250LG49ZC5sZXR0ZXJTcGFjaW5nLHI9ZC5mb250S2VybmluZzt0cnl7ZC5mb250PVcoZS5mb250Um91dGUsZS5mb250U2l6ZVB0LGUud2VpZ2h0LGUuc3R5bGUpLGQubGV0dGVyU3BhY2luZz1gJHtlLmxldHRlclNwYWNpbmdQdH1weGAsZS5rZXJuaW5nIT1udWxsJiYoZC5mb250S2VybmluZz1lLmtlcm5pbmc/YG5vcm1hbGA6YG5vbmVgKTtsZXQgdD1kLm1lYXN1cmVUZXh0KGUudGV4dCksbj1OdW1iZXIuaXNGaW5pdGUodC5hY3R1YWxCb3VuZGluZ0JveExlZnQpJiZOdW1iZXIuaXNGaW5pdGUodC5hY3R1YWxCb3VuZGluZ0JveFJpZ2h0KSxyPXt4TWluUHQ6bj8tdC5hY3R1YWxCb3VuZGluZ0JveExlZnQ6MCx4TWF4UHQ6bj90LmFjdHVhbEJvdW5kaW5nQm94UmlnaHQ6dC53aWR0aCxhc2NlbnRQdDp0LmFjdHVhbEJvdW5kaW5nQm94QXNjZW50LGRlc2NlbnRQdDp0LmFjdHVhbEJvdW5kaW5nQm94RGVzY2VudH07cmV0dXJue2FkdmFuY2VQdDp0LndpZHRoLGFzY2VudFB0OnQuZm9udEJvdW5kaW5nQm94QXNjZW50Pz90LmFjdHVhbEJvdW5kaW5nQm94QXNjZW50Pz8wLGRlc2NlbnRQdDp0LmZvbnRCb3VuZGluZ0JveERlc2NlbnQ/P3QuYWN0dWFsQm91bmRpbmdCb3hEZXNjZW50Pz8wLC4uLk9iamVjdC52YWx1ZXMocikuZXZlcnkoTnVtYmVyLmlzRmluaXRlKT97aW5rQm91bmRzOnIsLi4ubj97aG9yaXpvbnRhbElua0JvdW5kc0FyZVRpZ2h0OiEwfTp7fX06e319fWZpbmFsbHl7ZC5mb250PXQsZC5sZXR0ZXJTcGFjaW5nPW4sZS5rZXJuaW5nIT1udWxsJiYoZC5mb250S2VybmluZz1yKX19fX0pLG09dC5tYXRoUmVzb3VyY2VzPz9lLm1hdGhPY2N1cnJlbmNlcy5tYXAoKHtkaXNwbGF5OmUsc291cmNlOnR9KT0+KHtyZXNvdXJjZUtleTpqZyh0LGU/YGRpc3BsYXlgOmBpbmxpbmVgKSx3aWR0aEVtOjAsYXNjZW50RW06MCxkZXNjZW50RW06MCxhdmFpbGFibGU6ITEsZGlhZ25vc3RpY3M6W3tjb2RlOmBVTlNVUFBPUlRFRF9GRUFUVVJFYCxzZXZlcml0eTpgd2FybmluZ2AsbWVzc2FnZTpgVGhlIG9wdGlvbmFsIG1hdGggcmVuZGVyZXIgaXMgdW5hdmFpbGFibGU7IHVzaW5nIHRoZSBkZXRlcm1pbmlzdGljIHRleHQgZmFsbGJhY2tgfV19KSksaD1lLmltYWdlTWV0YWRhdGEsZz1PYmplY3QuZnJlZXplKHt0ZXh0OnAsaW1hZ2VzOiRnKGgpLG1hdGg6ZV8obSksdmVydGljYWxHbHlwaEZpbmdlcnByaW50OnQudmVydGljYWxHbHlwaE1lYXN1cmVtZW50LmZpbmdlcnByaW50fSksXz1lLm1hdGhPY2N1cnJlbmNlcy5tYXAoKHtzb3VyY2U6ZSxkaXNwbGF5OnR9KT0+amcoZSx0P2BkaXNwbGF5YDpgaW5saW5lYCkpLHY9bS5tYXAoZT0+ZS5yZXNvdXJjZUtleSkseT1fLmZpbHRlcihlPT4hdi5pbmNsdWRlcyhlKSksYj12LmZpbHRlcihlPT4hXy5pbmNsdWRlcyhlKSk7aWYoeS5sZW5ndGh8fGIubGVuZ3RoKXRocm93IEVycm9yKGBNYXRoIG1ldGFkYXRhIG1lbWJlcnNoaXAgbWlzbWF0Y2g6IG1pc3NpbmcgWyR7eS5qb2luKGAsIGApfV07IGV4dHJhIFske2Iuam9pbihgLCBgKX1dYCk7cmV0dXJuIHlfKGcsdC5tYXRoRHJhd2FibGVzPz9uZXcgTWFwLG0uZmlsdGVyKGU9PmUuYXZhaWxhYmxlIT09ITEpLm1hcChlPT5lLnJlc291cmNlS2V5KSksT18oZyxlLnBhaW50UmVzb3VyY2VzKSxoXyhnLHQudmVydGljYWxHbHlwaE1lYXN1cmVtZW50KSxnfWZ1bmN0aW9uIEtJKGUsdCl7aWYoZT09PW51bGwpcmV0dXJuIG51bGw7bGV0IG49ZS50cmltKCkscj10JiZuLmVuZHNXaXRoKGAlYCk/bi5zbGljZSgwLC0xKTpuO2lmKHIubGVuZ3RoPT09MClyZXR1cm4gbnVsbDtsZXQgaT1OdW1iZXIocik7cmV0dXJuIE51bWJlci5pc0Zpbml0ZShpKT9pOm51bGx9ZnVuY3Rpb24gcUkoZSl7cmV0dXJuIGUudmFsdWU/LnRyaW0oKS5lbmRzV2l0aChgJWApP2BwY3RgOmUua2luZD8/YGR4YWB9ZnVuY3Rpb24gSkkoZSl7aWYoIWUpcmV0dXJuIG51bGw7bGV0IHQ9ZS52YWx1ZT8udHJpbSgpPz9gYCxuPXFJKGUpO2lmKG49PT1gZHhhYCl7bGV0IHQ9S0koZS52YWx1ZT8/YDBgLCExKTtyZXR1cm4gdD09PW51bGw/bnVsbDp7a2luZDpgZHhhYCx2YWx1ZTp0LzIwfX1pZihuIT09YHBjdGApcmV0dXJuIG51bGw7bGV0IHI9S0koZS52YWx1ZT8/YDBgLCEwKTtyZXR1cm4gcj09PW51bGw/bnVsbDp7a2luZDpgcGN0YCx2YWx1ZTp0LmVuZHNXaXRoKGAlYCk/ci8xMDA6ci81ZTN9fWZ1bmN0aW9uIFlJKGUpe2xldCB0PUpJKGUpO3JldHVybiB0Py5raW5kPT09YGR4YWA/dC52YWx1ZTpudWxsfWZ1bmN0aW9uIFhJKGUpe3JldHVybiBlLndpZHRoUHQ9PW51bGw/ZS53aWR0aFBjdD09bnVsbD9udWxsOntraW5kOmBwY3RgLHZhbHVlOmUud2lkdGhQY3QvNWUzfTp7a2luZDpgZHhhYCx2YWx1ZTplLndpZHRoUHR9fWZ1bmN0aW9uIFpJKGUsdCl7bGV0IG49ZS5mb3JtYXQuZmlyc3RSb3dFeGNlcHRpb24/LnByZWZlcnJlZFdpZHRoPz9udWxsO2lmKGUuZm9ybWF0LmZpcnN0Um93RXhjZXB0aW9uPy5wcmVmZXJyZWRXaWR0aEF1dGhvcmVkKXJldHVybiBuPy5raW5kPT09YGR4YWA/bi52YWx1ZT4wP24udmFsdWU6bnVsbDpuPy5raW5kPT09YHBjdGAmJm4udmFsdWU+MD9uLnZhbHVlKnQ6bnVsbDtsZXQgcj1KSShlLmxleGljYWwudGFibGU/LnByZWZlcnJlZFdpZHRoKTtyZXR1cm4gcj8ua2luZD09PWBkeGFgP3IudmFsdWU+MD9yLnZhbHVlOm51bGw6cj8ua2luZD09PWBwY3RgP3IudmFsdWU+MD9yLnZhbHVlKnQ6bnVsbDplLnNlbWFudGljLndpZHRoUHQhPW51bGwmJmUuc2VtYW50aWMud2lkdGhQdD4wP2Uuc2VtYW50aWMud2lkdGhQdDplLnNlbWFudGljLndpZHRoUGN0IT1udWxsJiZlLnNlbWFudGljLndpZHRoUGN0PjA/ZS5zZW1hbnRpYy53aWR0aFBjdC81ZTMqdDpudWxsfWNvbnN0IFFJPU9iamVjdC5mcmVlemUoe3B0OmAxLzFgLGluOmA3Mi8xYCxjbTpgMzYwMC8xMjdgLG1tOmAzNjAvMTI3YCxwYzpgMTIvMWAscGk6YDEyLzFgfSk7ZnVuY3Rpb24gJEkoZSl7bGV0IHQ9ZS5yZXBsYWNlKC9bXHUwMDA5XHUwMDBhXHUwMDBkXHUwMDIwXSsvZyxgIGApLnJlcGxhY2UoL14gfCAkL2csYGApLG49L14oWystXT8pKFswLTldKykkLy5leGVjKHQpO2lmKCFuKXJldHVybiBudWxsO2xldFsscixpXT1uO2lmKHI9PT1gLWAmJi9bMS05XS8udGVzdChpKSlyZXR1cm4gbnVsbDtsZXQgYT1pLnJlcGxhY2UoL14wKy8sYGApfHxgMGA7cmV0dXJuIGEubGVuZ3RoPjIwfHxhLmxlbmd0aD09PTIwJiZhPmAxODQ0Njc0NDA3MzcwOTU1MTYxNWA/bnVsbDp0fWNvbnN0IGVMPXtrZXk6YDAvMWAsd2lkdGhQdDowfTtmdW5jdGlvbiB0TChlKXtsZXQgdD1WTihlKTtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKHQpP3trZXk6ZSx3aWR0aFB0OnR9OmVMfWZ1bmN0aW9uIG5MKGUsdCl7bGV0IG49TnVtYmVyKGUpO2lmKCFOdW1iZXIuaXNGaW5pdGUobikpcmV0dXJuIGVMO2xldCByPVJOKG4pLGk9cj09PW51bGw/MDpWTihVTihyLHQpKTtyZXR1cm4gTnVtYmVyLmlzRmluaXRlKGkpP3trZXk6bnVsbCx3aWR0aFB0Oml9OmVMfWZ1bmN0aW9uIHJMKGUpe2lmKGU9PW51bGwpcmV0dXJuIGVMO2xldCB0PSRJKGUpO2lmKHQhPT1udWxsKXtsZXQgZT1MTih0KTtyZXR1cm4gZT09PW51bGw/ZUw6dEwoR04oZSwyMG4pKX1sZXQgbj0vXihbMC05XSsoPzpcLlswLTldKyk/KShtbXxjbXxpbnxwdHxwY3xwaSkkLy5leGVjKGUpO2lmKCFuKXJldHVybiBlTDtsZXQgcj1RSVtuWzJdXSxpPUxOKG5bMV0pO3JldHVybiBpPT09bnVsbD9uTChuWzFdLHIpOnRMKFVOKGkscikpfWZ1bmN0aW9uIGlMKGUpe2xldCB0PWUubGV4aWNhbC50YWJsZT8uZ3JpZDtpZighdCl7bGV0IHQ9ZS5zZW1hbnRpYy5jb2xXaWR0aHMubWFwKGU9Pk51bWJlci5pc0Zpbml0ZShlKSYmZT49MD97d2lkdGhQdDplLGtleTpSTihlKT8/YDAvMWB9OmVMKTtyZXR1cm57d2lkdGhzUHQ6dC5tYXAoZT0+ZS53aWR0aFB0KSx3aWR0aEtleXM6dC5tYXAoZT0+ZS5rZXkpfX1sZXQgbj1NYXRoLm1heCh0LnJlcXVpcmVkQ29sdW1uQ291bnQsdC5jb2x1bW5zLmxlbmd0aCkscj1BcnJheS5mcm9tKHtsZW5ndGg6bn0sKGUsbik9PnJMKHQuY29sdW1uc1tuXT8ud2lkdGg/P251bGwpKTtyZXR1cm57d2lkdGhzUHQ6ci5tYXAoZT0+ZS53aWR0aFB0KSx3aWR0aEtleXM6ci5tYXAoZT0+ZS5rZXkpfX1mdW5jdGlvbiBhTChlLHQpe2xldCBuPUpJKGUpO3JldHVybiBuPy5raW5kPT09YHBjdGA/e2tpbmQ6YGR4YWAsdmFsdWU6TWF0aC5tYXgoMCxuLnZhbHVlKSpNYXRoLm1heCgwLHQpfTpufWZ1bmN0aW9uIG9MKGUsdCxuLHI9dCl7bGV0IGk9ZS5zZW1hbnRpYyx7d2lkdGhzUHQ6YSx3aWR0aEtleXM6b309aUwoZSkscz1lLmZvcm1hdC5maXJzdFJvd0V4Y2VwdGlvbj8ubGF5b3V0PT09YGZpeGVkYD9gZml4ZWRgOmUubGV4aWNhbC50YWJsZT8ubGF5b3V0Py5raW5kPz9pLmxheW91dCxjPWUubGV4aWNhbC50YWJsZT8uZ3JpZC5hdXRob3JlZD9lLmxleGljYWwudGFibGUuZ3JpZC5jb2x1bW5zLmxlbmd0aDpudWxsLGw9aS5yb3dzLm1hcChlPT57bGV0IHQ9TWF0aC5tYXgoMCxlLmdyaWRCZWZvcmU/PzApO3JldHVybiBjIT09bnVsbCYmdD5jPzA6dH0pLHU9TWF0aC5tYXgoYz8/MCxlLmxleGljYWwudGFibGU/LmdyaWQucmVxdWlyZWRDb2x1bW5Db3VudD8/MCwuLi5pLnJvd3MubWFwKChlLHQpPT4obFt0XT8/MCkrZS5jZWxscy5yZWR1Y2UoKGUsdCk9PmUrTWF0aC5tYXgoMSx0LmNvbFNwYW4pLDApKSk7cmV0dXJue2xheW91dDpzPT09YGZpeGVkYD9gZml4ZWRgOmBhdXRvZml0YCxhdmFpbGFibGVXaWR0aFB0OnI9PT1udWxsP251bGw6TWF0aC5tYXgoMCxyKSxncmlkV2lkdGhzUHQ6YSxncmlkV2lkdGhLZXlzOm8sdGFibGVQcmVmZXJyZWRXaWR0aFB0OlpJKGUsdCkscm93czppLnJvd3MubWFwKChyLGkpPT57bGV0IG89ZS5sZXhpY2FsLnJvd3NbaV0sZD1sW2ldPz8wLGY9TWF0aC5tYXgoMCxyLmdyaWRBZnRlcj8/MCkscD1kK3IuY2VsbHMucmVkdWNlKChlLHQpPT5lK01hdGgubWF4KDEsdC5jb2xTcGFuKSwwKSxtPWMhPT1udWxsJiZwK2Y+dT8wOmYsaD1kO3JldHVybntiZWZvcmU6ZD4wP3tjb2x1bW5TcGFuOmQscHJlZmVycmVkV2lkdGg6YUwobz8ucm93Py5iZWZvcmVXaWR0aCx0KX06bnVsbCxhZnRlcjptPjA/e2NvbHVtblNwYW46bSxwcmVmZXJyZWRXaWR0aDphTChvPy5yb3c/LmFmdGVyV2lkdGgsdCl9Om51bGwsY2VsbHM6ci5jZWxscy5tYXAoKHQscik9PntsZXQgYz1vPy5jZWxsc1tyXT8/bnVsbCxsPU1hdGgubWF4KDEsdC5jb2xTcGFuKSx1PXM9PT1gZml4ZWRgP3ttaW5XaWR0aFB0OjAsbWF4V2lkdGhQdDowfTpuKGksciksZD1KTihlLmZvcm1hdC5yb3dzW2ldPy5jZWxsU3BhY2luZ1B0Pz8wLGgsbCxhLmxlbmd0aCksZj1kLnN0YXJ0UHQrZC5lbmRQdCxwPXtjb2x1bW5TdGFydDpoLGNvbHVtblNwYW46bCxwcmVmZXJyZWRXaWR0aDpKSShjPy5wcmVmZXJyZWRXaWR0aCk/P1hJKHQpLG1pbkNvbnRlbnRXaWR0aFB0Ok1hdGgubWF4KDAsdS5taW5XaWR0aFB0KStmLG1heENvbnRlbnRXaWR0aFB0Ok1hdGgubWF4KHUubWluV2lkdGhQdCx1Lm1heFdpZHRoUHQpK2Z9O3JldHVybiBoKz1sLHB9KX19KX19Y29uc3Qgc0w9bmV3IFdlYWtTZXQ7ZnVuY3Rpb24gY0woZSl7cmV0dXJuIHR5cGVvZiBlPT1gb2JqZWN0YCYmISFlJiZzTC5oYXMoZSl9ZnVuY3Rpb24gbEwoZSx0LG4pe2xldCByPU9iamVjdC5rZXlzKGUpLnNvcnQoKSxpPVsuLi50XS5zb3J0KCk7aWYoci5sZW5ndGghPT1pLmxlbmd0aHx8ci5zb21lKChlLHQpPT5lIT09aVt0XSkpdGhyb3cgVHlwZUVycm9yKGAke259IGhhcyB1bmV4cGVjdGVkIGZpZWxkczogJHtyLmpvaW4oYCxgKX1gKX1mdW5jdGlvbiB1TChlLHQsbil7bGV0IHI9Wy4uLnRdLmZpbHRlcih0PT4hZS5oYXModCkpLGk9Wy4uLmVdLmZpbHRlcihlPT4hdC5oYXMoZSkpO2lmKHIubGVuZ3RoIT09MHx8aS5sZW5ndGghPT0wKXRocm93IFR5cGVFcnJvcihgJHtufSBtZW1iZXJzaGlwIG1pc21hdGNoOyBtaXNzaW5nPSR7ci5qb2luKGAsYCl9IGV4dHJhPSR7aS5qb2luKGAsYCl9YCl9ZnVuY3Rpb24gZEwoZSx0KXtsZXQgbj1lPT57ZSYmdC5zdG9yeVJvb3QoZSl9LHI9ZT0+e2lmKGUuc3RvcnkhPT1gYm9keWB8fGUuc3RvcnlJbnN0YW5jZSE9PWBib2R5YHx8ZS5wYXRoLmxlbmd0aCE9PTF8fHQuYm9keVtlLnBhdGhbMF1dPT09dm9pZCAwKXRocm93IFR5cGVFcnJvcihgVW5rbm93biBib2R5IGxheW91dCBvY2N1cnJlbmNlIHNvdXJjZTogJHtPZyhlKX1gKX0saT1lPT57Zm9yKGxldCB0IG9mW2UuaGVhZGVycy5kZWZhdWx0LGUuaGVhZGVycy5maXJzdCxlLmhlYWRlcnMuZXZlbixlLmZvb3RlcnMuZGVmYXVsdCxlLmZvb3RlcnMuZmlyc3QsZS5mb290ZXJzLmV2ZW5dKW4odCl9O2lmKGUuc291cmNlLnN0b3J5IT09YGJvZHlgfHxlLnNvdXJjZS5zdG9yeUluc3RhbmNlIT09YGJvZHlgfHxlLnNvdXJjZS5wYXRoLmxlbmd0aCE9PTApdGhyb3cgVHlwZUVycm9yKGBCb2R5IGxheW91dCBpbnB1dCByZXF1aXJlcyB0aGUgY2Fub25pY2FsIGJvZHkgcm9vdGApO2koZS5pbml0aWFsU2VjdGlvbik7Zm9yKGxldCBuIG9mIGUuc2VxdWVuY2UpaWYocihuLmtpbmQ9PT1gYm9keS1ibG9ja2A/bi5ibG9jay5zb3VyY2U6bi5zb3VyY2UpLG4ua2luZD09PWBib2R5LWJsb2NrYCl7aWYodC5yZXNvbHZlKG4uYmxvY2suc291cmNlKS50eXBlIT09bi5ibG9jay5raW5kKXRocm93IFR5cGVFcnJvcihgQm9keSBsYXlvdXQgYmxvY2sgc291cmNlIGtpbmQgbWlzbWF0Y2hgKX1lbHNlIGlmKG4ua2luZD09PWBhZGphY2VudC10YWJsZS1ncm91cGApe2ZvcihsZXQgZSBvZiBuLnRhYmxlcylpZih0LnJlc29sdmUoZS5zb3VyY2UpLnR5cGUhPT1gdGFibGVgKXRocm93IFR5cGVFcnJvcihgQWRqYWNlbnQgdGFibGUgc291cmNlIGtpbmQgbWlzbWF0Y2hgKX1lbHNlIG4ua2luZD09PWBiZWdpbi1zZWN0aW9uYCYmaShuLnNlY3Rpb24pfWZ1bmN0aW9uIGZMKGUsdCxuLHIsaSl7bGV0IGE9bmV3IFNldCxvPW5ldyBNYXAscz1uZXcgU2V0LGM9bmV3IFNldCxsPW5ldyBNYXAsdT0oZSx0PWBpbWFnZWApPT57aWYoYS5oYXMoZSkpdGhyb3cgVHlwZUVycm9yKGBEdXBsaWNhdGUgY2Fub25pY2FsIGltYWdlIHJlc291cmNlOiAke2V9YCk7YS5hZGQoZSksby5zZXQoZSx0KX07Zm9yKGxldCBuIG9mIHQucGFyYWdyYXBocyl7bGV0IHQ9ZS5yZXNvbHZlKG4uc291cmNlKTtpZih0LnR5cGU9PT1gcGFyYWdyYXBoYCl7aWYobi5wdWJsaWNBbmNob3JCcmlkZ2VzLmxlbmd0aCE9PXQucnVucy5sZW5ndGgpdGhyb3cgVHlwZUVycm9yKGBQYXJhZ3JhcGggYW5jaG9yIGJyaWRnZSBjYXJkaW5hbGl0eSBtaXNtYXRjaDogJHtPZyhuLnNvdXJjZSl9YCk7dC5udW1iZXJpbmc/LnBpY0J1bGxldEltYWdlUGF0aCYmdShBZyhuLnNvdXJjZSx0Lm51bWJlcmluZy5waWNCdWxsZXRJbWFnZVBhdGgpLGBwaWN0dXJlLWJ1bGxldGApLHQucnVucy5mb3JFYWNoKChlLHQpPT57bGV0IHI9ey4uLm4uc291cmNlLHBhdGg6Wy4uLm4uc291cmNlLnBhdGgsdF19O2lmKGUudHlwZT09PWBpbWFnZWAmJnUoQWcocixlLmltYWdlUGF0aCkpLGUudHlwZT09PWBjaGFydGApe2lmKHMuaGFzKGUucmVzb3VyY2VLZXkpKXRocm93IFR5cGVFcnJvcihgRHVwbGljYXRlIGNhbm9uaWNhbCBjaGFydCByZXNvdXJjZTogJHtlLnJlc291cmNlS2V5fWApO3MuYWRkKGUucmVzb3VyY2VLZXkpfWlmKGUudHlwZT09PWBtYXRoYCl7aWYoYy5oYXMoZS5yZXNvdXJjZUtleSkpdGhyb3cgVHlwZUVycm9yKGBEdXBsaWNhdGUgY2Fub25pY2FsIG1hdGggcmVzb3VyY2U6ICR7ZS5yZXNvdXJjZUtleX1gKTtjLmFkZChlLnJlc291cmNlS2V5KSxsLnNldChlLnJlc291cmNlS2V5LE9nKGUuc291cmNlKSl9aWYoZS50eXBlPT09YHNoYXBlYCYmZS50ZXh0Qm94SW5wdXQ/LmtpbmQ9PT1gY29tcGF0aWJpbGl0eWApZm9yKGxldCB0IG9mIGUudGV4dEJveElucHV0LnBhcmFncmFwaHMpdC5pbWFnZSYmdShBZyh7Li4udC5zb3VyY2UscGF0aDpbLi4udC5zb3VyY2UucGF0aCwwXX0sdC5pbWFnZS5pbWFnZVBhdGgpKTtlLnR5cGU9PT1gc2hhcGVgJiZlLmZpbGw/LmZpbGxUeXBlPT09YGltYWdlYCYmdShBZyhyLGUuZmlsbC5pbWFnZVBhdGgpKX0pfX1sZXQgZD1uZXcgU2V0KHIubWFwKGU9PmUucmVzb3VyY2VLZXkpKTtpZihkLnNpemUhPT1yLmxlbmd0aCl0aHJvdyBUeXBlRXJyb3IoYER1cGxpY2F0ZSBpbWFnZSBtZXRhZGF0YSByZXNvdXJjZWApO3VMKGQsYSxgSW1hZ2UgbWV0YWRhdGFgKTtsZXQgZj1uZXcgU2V0O2ZvcihsZXQgZSBvZiBuKXtpZihmLmhhcyhlLnJlc291cmNlS2V5KSl0aHJvdyBUeXBlRXJyb3IoYER1cGxpY2F0ZSBtYXRoIG9jY3VycmVuY2UgcmVzb3VyY2VgKTtpZihmLmFkZChlLnJlc291cmNlS2V5KSxsLmdldChlLnJlc291cmNlS2V5KSE9PU9nKGUuc291cmNlKSl0aHJvdyBUeXBlRXJyb3IoYE1hdGggb2NjdXJyZW5jZSBzb3VyY2UgbWlzbWF0Y2g6ICR7ZS5yZXNvdXJjZUtleX1gKX11TChmLGMsYE1hdGggb2NjdXJyZW5jZWApO2xldCBwPW5ldyBTZXQsbT1uZXcgU2V0LGg9bmV3IFNldCxnPW5ldyBTZXQ7Zm9yKGxldCBlIG9mIGkpe2lmKHAuaGFzKGUucmVzb3VyY2VLZXkpKXRocm93IFR5cGVFcnJvcihgRHVwbGljYXRlIHBhaW50IHJlc291cmNlIGRlc2NyaXB0b3JgKTtpZihwLmFkZChlLnJlc291cmNlS2V5KSxlLmtpbmQ9PT1gaW1hZ2VgfHxlLmtpbmQ9PT1gcGljdHVyZS1idWxsZXRgKXtpZihtLmFkZChlLnJlc291cmNlS2V5KSxvLmdldChlLnJlc291cmNlS2V5KSE9PWUua2luZCl0aHJvdyBUeXBlRXJyb3IoYEltYWdlIHBhaW50IHJlc291cmNlIGtpbmQgbWlzbWF0Y2g6ICR7ZS5yZXNvdXJjZUtleX1gKX1lbHNlIGUua2luZD09PWBjaGFydGA/aC5hZGQoZS5yZXNvdXJjZUtleSk6Zy5hZGQoZS5yZXNvdXJjZUtleSl9dUwocCxuZXcgU2V0KFsuLi5hLC4uLnMsLi4uY10pLGBQYWludCByZXNvdXJjZWApLHVMKG0sYSxgSW1hZ2UgcGFpbnQgcmVzb3VyY2VgKSx1TChoLHMsYENoYXJ0IHBhaW50IHJlc291cmNlYCksdUwoZyxjLGBNYXRoIHBhaW50IHJlc291cmNlYCl9ZnVuY3Rpb24gcEwoZSx0KXtsZXQgbj1nTChlLmJsb2NrUmVwb3NpdG9yeSk7ZEwodCxuKSxMZyhlLmFjcXVpc2l0aW9uRmFjdHMsYGxheW91dCBzb3VyY2UgYWNxdWlzaXRpb24gZmFjdHNgKSxMZyhlLnNlY3Rpb24sYGxheW91dCBzb3VyY2Ugc2VjdGlvbmApLExnKGUuZG9jdW1lbnRMYXlvdXRGYWN0cyxgbGF5b3V0IHNvdXJjZSBkb2N1bWVudCBmYWN0c2ApLExnKGUuZm9udHMsYGxheW91dCBzb3VyY2UgZm9udCBmYWN0c2ApLExnKGUuZm9udEZhbWlseUNoYXJzZXRzLGBsYXlvdXQgc291cmNlIGZvbnQgY2hhcnNldHNgKSxMZyhlLm1hdGhPY2N1cnJlbmNlcyxgbGF5b3V0IHNvdXJjZSBtYXRoIGZhY3RzYCksTGcoZS5pbWFnZU1ldGFkYXRhLGBsYXlvdXQgc291cmNlIGltYWdlIGZhY3RzYCksTGcoZS5wYWludERlc2NyaXB0b3JzLGBsYXlvdXQgc291cmNlIHBhaW50IGRlc2NyaXB0b3JzYCksZS5mYXRhbFBhcnNlJiZMZyhlLmZhdGFsUGFyc2UsYGxheW91dCBzb3VyY2UgZmF0YWwgcGFyc2UgZmFjdGApO2ZvcihsZXRbdCxyXW9mW1tgYmxvY2sgcmVwb3NpdG9yeWAsbl0sW2Bib2R5IGJsb2Nrc2Asbi5ib2R5XSxbYGZvb3Rub3Rlc2Asbi5mb290bm90ZXNdLFtgZW5kbm90ZXNgLG4uZW5kbm90ZXNdLFtgYWNxdWlzaXRpb24gZmFjdHNgLGUuYWNxdWlzaXRpb25GYWN0c10sW2BwYXJhZ3JhcGggZmFjdHNgLGUuYWNxdWlzaXRpb25GYWN0cy5wYXJhZ3JhcGhzXSxbYHRhYmxlIGZhY3RzYCxlLmFjcXVpc2l0aW9uRmFjdHMudGFibGVzXSxbYHNlY3Rpb25gLGUuc2VjdGlvbl0sW2Bkb2N1bWVudCBmYWN0c2AsZS5kb2N1bWVudExheW91dEZhY3RzXSxbYGZvbnQgZmFjdHNgLGUuZm9udHNdLFtgbWF0aCBmYWN0c2AsZS5tYXRoT2NjdXJyZW5jZXNdLFtgaW1hZ2UgZmFjdHNgLGUuaW1hZ2VNZXRhZGF0YV0sW2BwYWludCBkZXNjcmlwdG9yc2AsZS5wYWludERlc2NyaXB0b3JzXV0paWYoIU9iamVjdC5pc0Zyb3plbihyKSl0aHJvdyBUeXBlRXJyb3IoYExheW91dCBzb3VyY2UgJHt0fSBtdXN0IGJlIHNlYWxlZGApO2xldCByPW5ldyBNYXA7Zm9yKGxldCB0IG9mIGUuYWNxdWlzaXRpb25GYWN0cy5wYXJhZ3JhcGhzKXtsTCh0LFtgc291cmNlYCxgcHVibGljQW5jaG9yQnJpZGdlc2AsYG51bWJlcmluZ01hcmtlckZhbGxiYWNrRm9udFNpemVQdGBdLGBQYXJhZ3JhcGggYWNxdWlzaXRpb24gZmFjdGApO2xldCBlPU9nKHQuc291cmNlKTtpZihyLmhhcyhlKSl0aHJvdyBUeXBlRXJyb3IoYER1cGxpY2F0ZSBwYXJhZ3JhcGggYWNxdWlzaXRpb24gc291cmNlOiAke2V9YCk7ci5zZXQoZSx0KX1sZXQgaT1uZXcgU2V0LGE9bmV3IFdlYWtNYXA7Zm9yKGxldCB0IG9mIGUuYWNxdWlzaXRpb25GYWN0cy50YWJsZXMpe2xMKHQsW2Bzb3VyY2VgLGBpbnB1dGBdLGBUYWJsZSBhY3F1aXNpdGlvbiBmYWN0YCk7bGV0IGU9T2codC5zb3VyY2UpO2lmKGkuaGFzKGUpKXRocm93IFR5cGVFcnJvcihgRHVwbGljYXRlIHRhYmxlIGFjcXVpc2l0aW9uIHNvdXJjZTogJHtlfWApO2kuYWRkKGUpO2xldCByPW4ucmVzb2x2ZSh0LnNvdXJjZSk7aWYoci50eXBlIT09YHRhYmxlYCl0aHJvdyBUeXBlRXJyb3IoYFRhYmxlIGFjcXVpc2l0aW9uIGZhY3QgbXVzdCBpZGVudGlmeSBhIHRhYmxlYCk7YS5zZXQocix0KX1mb3IobGV0IGUgb2Ygbi5zb3VyY2VzKXtsZXQgdD1uLnJlc29sdmUoZSksYT1PZyhlKTtpZih0LnR5cGU9PT1gcGFyYWdyYXBoYCYmIXIuaGFzKGEpKXRocm93IFR5cGVFcnJvcihgTWlzc2luZyBwYXJhZ3JhcGggYWNxdWlzaXRpb24gc291cmNlOiAke2F9YCk7aWYodC50eXBlPT09YHRhYmxlYCYmIWkuaGFzKGEpKXRocm93IFR5cGVFcnJvcihgTWlzc2luZyB0YWJsZSBhY3F1aXNpdGlvbiBzb3VyY2U6ICR7YX1gKX1mTChuLGUuYWNxdWlzaXRpb25GYWN0cyxlLm1hdGhPY2N1cnJlbmNlcyxlLmltYWdlTWV0YWRhdGEsZS5wYWludERlc2NyaXB0b3JzKTtsZXQgbz1uZXcgV2Vha01hcDtmb3IobGV0IHQgb2YgZS5hY3F1aXNpdGlvbkZhY3RzLnBhcmFncmFwaHMpe2xldCBlPW4ucmVzb2x2ZSh0LnNvdXJjZSk7aWYoZS50eXBlIT09YHBhcmFncmFwaGApdGhyb3cgVHlwZUVycm9yKGBQYXJhZ3JhcGggYWNxdWlzaXRpb24gZmFjdCBtdXN0IGlkZW50aWZ5IGEgcGFyYWdyYXBoYCk7Zm9yKGxldCB0IG9mIGUucnVucyl7aWYodC50eXBlIT09YHNoYXBlYHx8dC50ZXh0Qm94SW5wdXQ/LmtpbmQhPT1gY29tcGxldGVgKWNvbnRpbnVlO2xldCBlO3RyeXtlPW4uc3RvcnlSb290KHQudGV4dEJveElucHV0LnNvdXJjZSl9Y2F0Y2goZSl7dGhyb3cgVHlwZUVycm9yKGBNaXNzaW5nIGNvbXBsZXRlIHRleHQtYm94IHN0b3J5IHNvdXJjZTogJHtPZyh0LnRleHRCb3hJbnB1dC5zb3VyY2UpfWAse2NhdXNlOmV9KX1pZihlLmxlbmd0aCE9PXQudGV4dEJveElucHV0LmJsb2NrQ291bnQpdGhyb3cgVHlwZUVycm9yKGBDb21wbGV0ZSB0ZXh0LWJveCBibG9jayBjb3VudCBtaXNtYXRjaDogJHtPZyh0LnRleHRCb3hJbnB1dC5zb3VyY2UpfWApfWlmKGUubnVtYmVyaW5nJiZlLm51bWJlcmluZ01hcmtlclNoYXBlSW5wdXQmJnQubnVtYmVyaW5nTWFya2VyRmFsbGJhY2tGb250U2l6ZVB0IT09bnVsbCl7bGV0IG49by5nZXQoZS5udW1iZXJpbmcpO258fChuPW5ldyBNYXAsby5zZXQoZS5udW1iZXJpbmcsbikpLG4uc2V0KHQubnVtYmVyaW5nTWFya2VyRmFsbGJhY2tGb250U2l6ZVB0LGUubnVtYmVyaW5nTWFya2VyU2hhcGVJbnB1dCl9fWxldCBzPU9iamVjdC5mcmVlemUoe251bWJlcmluZ01hcmtlclNoYXBlSW5wdXQoZSx0KXtsZXQgbj1vLmdldChlKT8uZ2V0KHQpO2lmKG4pcmV0dXJuIG47dGhyb3cgRXJyb3IoYFVua25vd24gbnVtYmVyaW5nIG1hcmtlciBhY3F1aXNpdGlvbiBpbnB1dGApfSxwYXJhZ3JhcGhNYXJrU2hhcGVJbnB1dChlKXtyZXR1cm4gZS5wYXJhZ3JhcGhNYXJrU2hhcGVJbnB1dH0sdGFibGVGb3JtYXRJbnB1dChlKXtsZXQgdD1hLmdldChlKTtpZighdCl0aHJvdyBFcnJvcihgVW5rbm93biB0YWJsZSBhY3F1aXNpdGlvbiBpbnB1dGApO3JldHVybiB0LmlucHV0LmZvcm1hdH0sdGFibGVDb2x1bW5MYXlvdXRJbnB1dChlLHQsbixyKXtsZXQgaT1hLmdldChlKTtpZighaSl0aHJvdyBFcnJvcihgVW5rbm93biB0YWJsZSBhY3F1aXNpdGlvbiBpbnB1dGApO3JldHVybiBvTChpLmlucHV0LHQsKHQscik9Pm4oZS5yb3dzW3RdLmNlbGxzW3JdKSxyKX0sdGFibGVQYXJ0aWNpcGF0ZXNJbk9yZGluYXJ5RmxvdyhlKXtsZXQgdD1hLmdldChlKTtpZighdCl0aHJvdyBFcnJvcihgVW5rbm93biB0YWJsZSBhY3F1aXNpdGlvbiBpbnB1dGApO3JldHVybiB0LmlucHV0LmZvcm1hdC5vcmRpbmFyeUZsb3d9LHBhcmFncmFwaEFjcXVpc2l0aW9uSW5wdXQoZSx0KXtpZighci5nZXQoT2codCkpKXRocm93IEVycm9yKGBVbmtub3duIHBhcmFncmFwaCBhY3F1aXNpdGlvbiBzb3VyY2U6ICR7T2codCl9YCk7bGV0IGk9bi5yZXNvbHZlKHQpO2lmKGkudHlwZSE9PWBwYXJhZ3JhcGhgKXRocm93IEVycm9yKGBQYXJhZ3JhcGggc291cmNlIGtpbmQgbWlzbWF0Y2g6ICR7T2codCl9YCk7cmV0dXJuIGl9fSksYz1PYmplY3QuZnJlZXplKHthY3F1aXNpdGlvbklucHV0czpzLGVmZmVjdGl2ZVRhYmxlUG9zaXRpb25pbmcoZSl7bGV0IHQ9YS5nZXQoZSk7aWYoIXQpdGhyb3cgRXJyb3IoYFVua25vd24gdGFibGUgYWNxdWlzaXRpb24gaW5wdXRgKTtyZXR1cm4gdC5pbnB1dC5mb3JtYXQucG9zaXRpb25pbmc9PT1udWxsP251bGw6ZS50YmxwUHI/P251bGx9LHB1YmxpY0FuY2hvckJyaWRnZShlLHQpe2xldCBuPXIuZ2V0KE9nKGUpKTtpZighbil0aHJvdyBFcnJvcihgVW5rbm93biBwYXJhZ3JhcGggYWNxdWlzaXRpb24gc291cmNlOiAke09nKGUpfWApO2lmKCFOdW1iZXIuaXNTYWZlSW50ZWdlcih0KXx8dDwwfHx0Pj1uLnB1YmxpY0FuY2hvckJyaWRnZXMubGVuZ3RoKXRocm93IFJhbmdlRXJyb3IoYFVua25vd24gcGFyYWdyYXBoIGFuY2hvciBicmlkZ2UgaW5kZXg6ICR7dH1gKTtyZXR1cm4gbi5wdWJsaWNBbmNob3JCcmlkZ2VzW3RdPz9udWxsfX0pLGw9ZT0+e2xldCB0PW5ldyBTZXQoZSksbj1PYmplY3QuY3JlYXRlKG51bGwpO3JldHVybiBPYmplY3QuZGVmaW5lUHJvcGVydGllcyhuLHtzaXplOntnZXQ6KCk9PnQuc2l6ZX0saGFzOnt2YWx1ZTplPT50LmhhcyhlKX0sZW50cmllczp7dmFsdWU6KCk9PnQuZW50cmllcygpfSxrZXlzOnt2YWx1ZTooKT0+dC5rZXlzKCl9LHZhbHVlczp7dmFsdWU6KCk9PnQudmFsdWVzKCl9LGZvckVhY2g6e3ZhbHVlOihlLHIpPT57dC5mb3JFYWNoKHQ9PmUuY2FsbChyLHQsdCxuKSl9fSxbU3ltYm9sLml0ZXJhdG9yXTp7dmFsdWU6KCk9PnRbU3ltYm9sLml0ZXJhdG9yXSgpfSxbU3ltYm9sLnRvU3RyaW5nVGFnXTp7dmFsdWU6YFNldGB9fSksT2JqZWN0LmZyZWV6ZShuKX0sdT1PYmplY3QuZnJlZXplKHsuLi5lLmRvY3VtZW50TGF5b3V0RmFjdHMsa2luc29rdTpPYmplY3QuZnJlZXplKHtlbmFibGVkOmUuZG9jdW1lbnRMYXlvdXRGYWN0cy5raW5zb2t1LmVuYWJsZWQsbGluZVN0YXJ0Rm9yYmlkZGVuOmwoZS5kb2N1bWVudExheW91dEZhY3RzLmtpbnNva3UubGluZVN0YXJ0Rm9yYmlkZGVuKSxsaW5lRW5kRm9yYmlkZGVuOmwoZS5kb2N1bWVudExheW91dEZhY3RzLmtpbnNva3UubGluZUVuZEZvcmJpZGRlbil9KX0pLGQ9T2JqZWN0LmZyZWV6ZSh7YmxvY2tzOm4sYm9keUxheW91dElucHV0OnQsc2VjdGlvbjplLnNlY3Rpb24sZG9jdW1lbnRMYXlvdXRTZXR0aW5nczp1LGZvbnRzOmUuZm9udHMsZm9udEZhbWlseUNoYXJzZXRzOmUuZm9udEZhbWlseUNoYXJzZXRzLG1hdGhPY2N1cnJlbmNlczplLm1hdGhPY2N1cnJlbmNlcyxpbWFnZU1ldGFkYXRhOmUuaW1hZ2VNZXRhZGF0YSxoYXNQYWdpbmF0aW9uRmllbGRzOmUuaGFzUGFnaW5hdGlvbkZpZWxkcyxyZXF1aXJlc0RvbVZlcnRpY2FsR2x5cGhMYXlvdXQ6ZS5yZXF1aXJlc0RvbVZlcnRpY2FsR2x5cGhMYXlvdXQsZmF0YWxQYXJzZTplLmZhdGFsUGFyc2UsYWNxdWlzaXRpb246YyxwYWludFJlc291cmNlczpxZyhlLnBhaW50RGVzY3JpcHRvcnMpfSk7cmV0dXJuIHNMLmFkZChkKSxkfWZ1bmN0aW9uIG1MKGUpe2xldHtib2R5TGF5b3V0SW5wdXQ6dCwuLi5ufT1lO3JldHVybiBwTChuLExnKHQsYGxheW91dCBzb3VyY2UgYm9keSBpbnB1dGApKX1mdW5jdGlvbiBoTChlKXtyZXR1cm5gJHtlLnN0b3J5fToke2Uuc3RvcnlJbnN0YW5jZX1gfWZ1bmN0aW9uIGdMKGUpe0xnKGUuYm9keSxgbGF5b3V0IHNvdXJjZSBib2R5IGJsb2Nrc2ApLExnKGUuc3RvcmllcyxgbGF5b3V0IHNvdXJjZSBzdG9yeSBibG9ja3NgKSxMZyhlLmZvb3Rub3RlcyxgbGF5b3V0IHNvdXJjZSBmb290bm90ZXNgKSxMZyhlLmVuZG5vdGVzLGBsYXlvdXQgc291cmNlIGVuZG5vdGVzYCk7bGV0IHQ9bmV3IE1hcDtmb3IobGV0e3NvdXJjZTpuLGJvZHk6cn1vZiBlLnN0b3JpZXMpe2lmKG4ucGF0aC5sZW5ndGghPT0wKXRocm93IFR5cGVFcnJvcihgU3RvcnkgcmVwb3NpdG9yeSByb290cyByZXF1aXJlIGFuIGVtcHR5IHNvdXJjZSBwYXRoYCk7aWYobi5zdG9yeSE9PWBoZWFkZXJgJiZuLnN0b3J5IT09YGZvb3RlcmAmJm4uc3RvcnkhPT1gdGV4dGJveGApdGhyb3cgVHlwZUVycm9yKGBVbnN1cHBvcnRlZCByZXBvc2l0b3J5IHN0b3J5IGtpbmQ6ICR7bi5zdG9yeX1gKTtsZXQgZT1oTChuKTtpZih0LmhhcyhlKSl0aHJvdyBUeXBlRXJyb3IoYER1cGxpY2F0ZSBzdG9yeSBzb3VyY2U6ICR7ZX1gKTt0LnNldChlLHIpfWxldCBuPShlLHQpPT57bGV0IG49bmV3IE1hcDtmb3IobGV0IHIgb2YgZSl7aWYobi5oYXMoci5pZCkpdGhyb3cgVHlwZUVycm9yKGBEdXBsaWNhdGUgJHt0fSBzdG9yeSBzb3VyY2U6ICR7ci5pZH1gKTtuLnNldChyLmlkLHIuY29udGVudCl9cmV0dXJuIG59LHI9bihlLmZvb3Rub3RlcyxgZm9vdG5vdGVgKSxpPW4oZS5lbmRub3RlcyxgZW5kbm90ZWApLGE9bj0+e2lmKG4ucGF0aC5sZW5ndGghPT0wKXRocm93IEVycm9yKGBTdG9yeSBsb29rdXAgcmVxdWlyZXMgYSByb290LW9ubHkgc291cmNlYCk7aWYobi5zdG9yeT09PWBib2R5YCYmbi5zdG9yeUluc3RhbmNlPT09YGJvZHlgKXJldHVybiBlLmJvZHk7aWYobi5zdG9yeT09PWBmb290bm90ZWApe2xldCBlPXIuZ2V0KG4uc3RvcnlJbnN0YW5jZSk7aWYoZSlyZXR1cm4gZX1pZihuLnN0b3J5PT09YGVuZG5vdGVgKXtsZXQgZT1pLmdldChuLnN0b3J5SW5zdGFuY2UpO2lmKGUpcmV0dXJuIGV9bGV0IGE9dC5nZXQoaEwobikpO2lmKGEpcmV0dXJuIGE7dGhyb3cgRXJyb3IoYFVua25vd24gJHtuLnN0b3J5fSBzdG9yeSBzb3VyY2U6ICR7bi5zdG9yeUluc3RhbmNlfWApfSxvPW5ldyBNYXAscz1bXSxjPShlLHQsbj1bXSk9PntlLmZvckVhY2goKGUscik9PntsZXQgaT1bLi4ubixyXTtpZihlLnR5cGUhPT1gcGFyYWdyYXBoYCYmZS50eXBlIT09YHRhYmxlYClyZXR1cm47bGV0IGE9ey4uLnQscGF0aDppfSxsPU9nKGEpO2lmKG8uaGFzKGwpKXRocm93IFR5cGVFcnJvcihgRHVwbGljYXRlIGJsb2NrIHNvdXJjZTogJHtsfWApO28uc2V0KGwsZSkscy5wdXNoKE9iamVjdC5mcmVlemUoey4uLmEscGF0aDpPYmplY3QuZnJlZXplKFsuLi5pXSl9KSksZS50eXBlPT09YHRhYmxlYCYmZS5yb3dzLmZvckVhY2goKGUsbik9PmUuY2VsbHMuZm9yRWFjaCgoZSxyKT0+e2MoZS5jb250ZW50LHQsWy4uLmksbixyXSl9KSl9KX07YyhlLmJvZHkse3N0b3J5OmBib2R5YCxzdG9yeUluc3RhbmNlOmBib2R5YCxwYXRoOltdfSk7Zm9yKGxldHtzb3VyY2U6dCxib2R5Om59b2YgZS5zdG9yaWVzKWMobix0KTtmb3IobGV0IHQgb2YgZS5mb290bm90ZXMpYyh0LmNvbnRlbnQse3N0b3J5OmBmb290bm90ZWAsc3RvcnlJbnN0YW5jZTp0LmlkLHBhdGg6W119KTtmb3IobGV0IHQgb2YgZS5lbmRub3RlcyljKHQuY29udGVudCx7c3Rvcnk6YGVuZG5vdGVgLHN0b3J5SW5zdGFuY2U6dC5pZCxwYXRoOltdfSk7cmV0dXJuIE9iamVjdC5mcmVlemUoe2JvZHk6ZS5ib2R5LGZvb3Rub3RlczplLmZvb3Rub3RlcyxlbmRub3RlczplLmVuZG5vdGVzLHNvdXJjZXM6T2JqZWN0LmZyZWV6ZShzKSxyZXNvbHZlKGUpe2xldCB0PW8uZ2V0KE9nKGUpKTtpZighdCl0aHJvdyBFcnJvcihgVW5rbm93biBibG9jayBzb3VyY2U6ICR7T2coZSl9YCk7cmV0dXJuIHR9LHN0b3J5Um9vdDphfSl9ZnVuY3Rpb24gX0woZSl7bGV0IHQ9bmV3IFNldCgoZS5lbWJlZGRlZEZvbnRzPz9bXSkubWFwKGU9PntsZXQgdD1lLnN0eWxlPT09YGJvbGRgfHxlLnN0eWxlPT09YGJvbGRJdGFsaWNgPzcwMDo0MDAsbj1lLnN0eWxlPT09YGl0YWxpY2B8fGUuc3R5bGU9PT1gYm9sZEl0YWxpY2A/YGl0YWxpY2A6YG5vcm1hbGA7cmV0dXJuYCR7cGcoZS5mb250TmFtZSl9OiR7dH06JHtufWB9KSksbj1bXSxyPW5ldyBTZXQsaT1lPT57bGV0IGk9ZT8udHJpbSgpO2lmKCFpKXJldHVybjtsZXQgYT1wZyhpKTtpZighKGE9PT1gbWVpcnlvYHx8aT09PWDjg6HjgqTjg6rjgqpgKSlyZXR1cm47bGV0IG89YCR7YX06NDAwOm5vcm1hbGA7dC5oYXMobyl8fHIuaGFzKG8pfHwoci5hZGQobyksbi5wdXNoKHtmYW1pbHk6aSxsb2NhbE5hbWVzOltgTWVpcnlvYF0sbGluZUhlaWdodE11bHRpcGxpZXI6MS4zfSkpfTtmb3IobGV0IHQgb2YgUEkoZSkpaWYoISh0LmJvbGR8fHQuaXRhbGljKSlmb3IobGV0IGUgb2YgdC5mb250RmFtaWxpZXMpaShlKTtyZXR1cm4gbn1mdW5jdGlvbiB2TChlKXtyZXR1cm4gX2coX0woZSkpfWZ1bmN0aW9uIHlMKGUpe2xldCB0PWUuX190eXBvZ3JhcGh5QWNxdWlzaXRpb247aWYodCE9PXZvaWQgMClyZXR1cm4gSWcoe3NvdXJjZVRleHQ6YHRleHRgaW4gZT9lLnRleHQ6ZS5mYWxsYmFja1RleHQsLi4udH0sYERPQ1ggcnVuIHR5cG9ncmFwaHkgYWNxdWlzaXRpb24gaW5wdXRgKX1mdW5jdGlvbiBiTChlKXtsZXQgdD1lLl9fcGFyYWdyYXBoVHlwb2dyYXBoeUFjcXVpc2l0aW9uO2lmKHQhPT12b2lkIDApcmV0dXJuIElnKHQsYERPQ1ggcGFyYWdyYXBoIHR5cG9ncmFwaHkgYWNxdWlzaXRpb24gaW5wdXRgKX1mdW5jdGlvbiB4TChlLHQpe2xldCBuPXRbMF0ubG9naWNhbFRvdGFsUm93cyxyPTA7Zm9yKGxldCBpIG9mIHQpe2lmKGkubG9naWNhbFRvdGFsUm93cyE9PW58fCFOdW1iZXIuaXNJbnRlZ2VyKGkucm93Q291bnQpfHxpLnJvd0NvdW50PDB8fGkubG9naWNhbFJvd09mZnNldCE9PXIpdGhyb3cgRXJyb3IoYFBhcnNlci1vd25lZCBhZGphY2VudCB0YWJsZSBzZXF1ZW5jZSAke2V9IGlzIGluY29uc2lzdGVudGApO3IrPWkucm93Q291bnR9aWYociE9PW4pdGhyb3cgRXJyb3IoYFBhcnNlci1vd25lZCBhZGphY2VudCB0YWJsZSBzZXF1ZW5jZSAke2V9IGlzIGluY29tcGxldGVgKX1mdW5jdGlvbiBTTChlKXtsZXQgdD1bXSxuPW51bGwscj1bXSxpPSgpPT57ci5sZW5ndGg+MCYmeEwobixyKSxyLmxlbmd0aD09PTE/dC5wdXNoKE9iamVjdC5mcmVlemUoe2tpbmQ6YGJvZHktZWxlbWVudGAsZWxlbWVudDpyWzBdLmVsZW1lbnR9KSk6ci5sZW5ndGg+MSYmdC5wdXNoKE9iamVjdC5mcmVlemUoe2tpbmQ6YGFkamFjZW50LXRhYmxlLWdyb3VwYCxsb2dpY2FsU2VxdWVuY2VJZDpuLHRhYmxlczpPYmplY3QuZnJlZXplKHIubWFwKGU9PmUuZWxlbWVudCkpfSkpLG49bnVsbCxyPVtdfTtmb3IobGV0e2VsZW1lbnQ6YSx0YWJsZTpvfW9mIGUpe2lmKGEudHlwZT09PWB0YWJsZWAmJm8hPT1udWxsKXtyLmxlbmd0aD4wJiZuIT09by5sb2dpY2FsU2VxdWVuY2VJZCYmaSgpLG49by5sb2dpY2FsU2VxdWVuY2VJZCxyLnB1c2goT2JqZWN0LmZyZWV6ZSh7ZWxlbWVudDphLGxvZ2ljYWxSb3dPZmZzZXQ6by5sb2dpY2FsUm93T2Zmc2V0LGxvZ2ljYWxUb3RhbFJvd3M6by5sb2dpY2FsVG90YWxSb3dzLHJvd0NvdW50Om8ucm93Q291bnR9KSk7Y29udGludWV9aSgpLHQucHVzaChPYmplY3QuZnJlZXplKHtraW5kOmBib2R5LWVsZW1lbnRgLGVsZW1lbnQ6YX0pKX1yZXR1cm4gaSgpLE9iamVjdC5mcmVlemUodCl9ZnVuY3Rpb24gQ0woZSl7c3dpdGNoKGUpe2Nhc2VgY29udGludW91c2A6Y2FzZWBuZXh0Q29sdW1uYDpjYXNlYG5leHRQYWdlYDpjYXNlYG9kZFBhZ2VgOmNhc2VgZXZlblBhZ2VgOnJldHVybiBlO2RlZmF1bHQ6cmV0dXJuYG5leHRQYWdlYH19ZnVuY3Rpb24gd0woZSx0LG4pe2xldCByPW49PT1udWxsP251bGw6YHNlY3Rpb246JHtufWAsaT1uPT5lW25dPT09bnVsbD9udWxsOntzdG9yeTp0LHN0b3J5SW5zdGFuY2U6cj09PW51bGw/bjpgJHtyfToke259YCxwYXRoOltdfTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7ZGVmYXVsdDppKGBkZWZhdWx0YCksZmlyc3Q6aShgZmlyc3RgKSxldmVuOmkoYGV2ZW5gKX0pfWZ1bmN0aW9uIFRMKGUpe3JldHVybnsuLi5lLmdlb21ldHJ5LHRpdGxlUGFnZTplLnRpdGxlUGFnZSxldmVuQW5kT2RkSGVhZGVyczohMSxzZWN0aW9uU3RhcnQ6ZS5zdGFydFR5cGUsY29sdW1uczplLmNvbHVtbnMsdGV4dERpcmVjdGlvbjplLnRleHREaXJlY3Rpb24sZG9jR3JpZFR5cGU6ZS5kb2NHcmlkVHlwZSxkb2NHcmlkTGluZVBpdGNoOmUuZG9jR3JpZExpbmVQaXRjaCxkb2NHcmlkQ2hhclNwYWNlOmUuZG9jR3JpZENoYXJTcGFjZSxwYWdlTnVtVHlwZTplLnBhZ2VOdW1UeXBlLHZBbGlnbjplLnZBbGlnbixsaW5lTnVtYmVyaW5nOmUubGluZU51bWJlcmluZ319ZnVuY3Rpb24gRUwoZSx0KXtsZXQgbj1lLm1hcmtlckJvZHlJbmRleDtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7c2VjdGlvbk9jY3VycmVuY2VJZDplLnNlY3Rpb25PY2N1cnJlbmNlSWQsc291cmNlOk9iamVjdC5mcmVlemUobj09PW51bGw/e3N0b3J5OmBib2R5YCxzdG9yeUluc3RhbmNlOmBib2R5YCxwYXRoOk9iamVjdC5mcmVlemUoW10pfTp7c3Rvcnk6YGJvZHlgLHN0b3J5SW5zdGFuY2U6YGJvZHlgLHBhdGg6T2JqZWN0LmZyZWV6ZShbbl0pfSksc3RhcnRUeXBlOkNMKGUuc3RhcnRUeXBlKSxjb250ZXh0Ok9iamVjdC5mcmVlemUocUMoVEwoZSksZS5zZWN0aW9uQmlkaSkpLHBhZ2VOdW1iZXJpbmc6T2JqZWN0LmZyZWV6ZSh7c3RhcnQ6ZS5wYWdlTnVtVHlwZT8uc3RhcnQ/P251bGwsZm9ybWF0OmUucGFnZU51bVR5cGU/LmZtdD8/bnVsbH0pLHRpdGxlUGFnZTplLnRpdGxlUGFnZSxldmVuQW5kT2RkSGVhZGVyczp0LmV2ZW5BbmRPZGRIZWFkZXJzLGhlYWRlcnM6d0woZS5oZWFkZXJzLGBoZWFkZXJgLG4pLGZvb3RlcnM6d0woZS5mb290ZXJzLGBmb290ZXJgLG4pLHBhZ2VCb3JkZXJzQXV0aG9yZWQ6ZS5wYWdlQm9yZGVyc0F1dGhvcmVkLHBhZ2VCb3JkZXJzOmUucGFnZUJvcmRlcnMscGFnZUxheW91dDpPYmplY3QuZnJlZXplKHtwaHlzaWNhbEdlb21ldHJ5Ok9iamVjdC5mcmVlemUoey4uLmUuZ2VvbWV0cnl9KSxjb2x1bW5zOmUuY29sdW1ucyx0ZXh0RGlyZWN0aW9uOmUudGV4dERpcmVjdGlvbj8/YGxyVGJgLGd1dHRlclB0OmUuZ3V0dGVyUHQscnRsR3V0dGVyOmUucnRsR3V0dGVyLC4uLnQucGFnZUxheW91dFNldHRpbmdzfSl9KX1mdW5jdGlvbiBETChlKXtsZXQgdD1uZXcgTWFwKGUuc2VjdGlvbkluZGV4Lm9jY3VycmVuY2VzLm1hcCh0PT5bdC5zZWN0aW9uT2NjdXJyZW5jZUlkLEVMKHQsZSldKSksbj1lLnNlY3Rpb25JbmRleC5vY2N1cnJlbmNlc1swXTtpZighbil0aHJvdyBFcnJvcihgRE9DWCBib2R5IHJlcXVpcmVzIGEgZmluYWwgc2VjdGlvbiBvd25lcmApO2xldCByPXQuZ2V0KG4uc2VjdGlvbk9jY3VycmVuY2VJZCksaT1lLnNlcXVlbmNlLm1hcChlPT57aWYoZS5raW5kIT09YGJlZ2luLXNlY3Rpb25gKXJldHVybiBlO2xldCBuPXQuZ2V0KGUuc2VjdGlvbi5zZWN0aW9uT2NjdXJyZW5jZUlkKTtpZighbil0aHJvdyBFcnJvcihgTWlzc2luZyBib2R5IHNlY3Rpb24gb3duZXI6ICR7ZS5zZWN0aW9uLnNlY3Rpb25PY2N1cnJlbmNlSWR9YCk7cmV0dXJuIE9iamVjdC5mcmVlemUoey4uLmUsc2VjdGlvbjpufSl9KTtyZXR1cm4gSWcoe3NvdXJjZTp7c3Rvcnk6YGJvZHlgLHN0b3J5SW5zdGFuY2U6YGJvZHlgLHBhdGg6W119LGluaXRpYWxTZWN0aW9uOnIsc2VxdWVuY2U6aS5tYXAoKGUsdCk9PntpZihlLmtpbmQhPT1gYm9keS1ibG9ja2B8fGUuYmxvY2sua2luZCE9PWBwYXJhZ3JhcGhgKXJldHVybiBlO2xldCBuPVhEKGksdCk7cmV0dXJuIG49PT12b2lkIDA/ZTpPYmplY3QuZnJlZXplKHsuLi5lLGJsb2NrOk9iamVjdC5mcmVlemUoey4uLmUuYmxvY2ssY29udGludW91c1NlY3Rpb25Sb2xlOm59KX0pfSkscGFyc2VyRGlhZ25vc3RpY3M6ZS5wYXJzZXJEaWFnbm9zdGljcz8/W10sZW5kbm90ZUlkczplLmVuZG5vdGVJZHM/P1tdLG5vdGVMYXlvdXRTZXR0aW5nczplLm5vdGVMYXlvdXRTZXR0aW5nc30sYERPQ1ggYm9keSBsYXlvdXQgaW5wdXRgKX1mdW5jdGlvbiBPTChlKXtyZXR1cm4hKGUucnVucz8/W10pLnNvbWUoZT0+ZS50eXBlPT09YHRleHRgP2UudGV4dC5sZW5ndGg+MDohMCl9Y29uc3Qga0w9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gQUwoZSl7cmV0dXJuIGtMLmdldChlKT8/W119ZnVuY3Rpb24gakwoZSl7bGV0IHQ9QUwoZSk7aWYodC5sZW5ndGg9PT0wKXJldHVybiBlLnJ1bnM7bGV0IG49W10scj0wO2ZvcihsZXQgaT0wO2k8PWUucnVucy5sZW5ndGg7aSs9MSl7Zm9yKDt0W3JdPy5wdWJsaWNSdW5JbmRleD09PWk7KW4ucHVzaCh0W3JdLnJ1bikscis9MTtpPGUucnVucy5sZW5ndGgmJm4ucHVzaChlLnJ1bnNbaV0pfXJldHVybiBufWZ1bmN0aW9uIE1MKGUpe3JldHVybiBBTChlKS5sZW5ndGg+MH1mdW5jdGlvbiBOTChlKXtsZXQgdD1lLl9fZG9jdW1lbnRUeXBvZ3JhcGh5U2V0dGluZ3M/Lm5vcm1hbFN0eWxlRm9udFNpemVQdDtyZXR1cm4gSWcoe25vcm1hbFN0eWxlRm9udFNpemVQdDp0eXBlb2YgdD09YG51bWJlcmAmJk51bWJlci5pc0Zpbml0ZSh0KSYmdD4wP3Q6MTB9LGBET0NYIGRvY3VtZW50IHR5cG9ncmFwaHkgc2V0dGluZ3MgaW5wdXRgKX1mdW5jdGlvbiBQTChlKXtsZXQgdD1lLl9fcGFnZUxheW91dFNldHRpbmdzO3JldHVybiBJZyh7bWlycm9yTWFyZ2luczp0Py5taXJyb3JNYXJnaW5zPT09ITAsZ3V0dGVyQXRUb3A6dD8uZ3V0dGVyQXRUb3A9PT0hMCxib29rRm9sZFByaW50aW5nOnQ/LmJvb2tGb2xkUHJpbnRpbmc9PT0hMCxib29rRm9sZFJldlByaW50aW5nOnQ/LmJvb2tGb2xkUmV2UHJpbnRpbmc9PT0hMCxwcmludFR3b09uT25lOnQ/LnByaW50VHdvT25PbmU9PT0hMH0sYERPQ1ggcGFnZSBsYXlvdXQgc2V0dGluZ3MgaW5wdXRgKX1mdW5jdGlvbiBGTChlKXtsZXQgdD1lLl9fbm90ZUxheW91dFNldHRpbmdzO3JldHVybiBJZyh7Zm9vdG5vdGVQb3NpdGlvbjp0Py5mb290bm90ZVBvc2l0aW9uPz9gcGFnZUJvdHRvbWAsZW5kbm90ZVBvc2l0aW9uOnQ/LmVuZG5vdGVQb3NpdGlvbj8/YGRvY0VuZGB9LGBET0NYIG5vdGUgbGF5b3V0IHNldHRpbmdzIGlucHV0YCl9ZnVuY3Rpb24gSUwoZSl7cmV0dXJuIE9iamVjdC5mcmVlemUoZT9PYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoZSkuZmlsdGVyKGU9PnR5cGVvZiBlWzFdPT1gbnVtYmVyYCkpOnt9KX1mdW5jdGlvbiBMTChlKXtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Li4uZSxwYWdlR2VvbWV0cnk6SUwoZS5wYWdlR2VvbWV0cnkpfSl9Y29uc3QgUkw9bmV3IFdlYWtNYXAsekw9bmV3IFdlYWtNYXAsQkw9bmV3IFdlYWtNYXAsVkw9bmV3IFdlYWtNYXAsSEw9bmV3IFdlYWtNYXA7ZnVuY3Rpb24gVUwoZSl7bGV0IHQ9QkwuZ2V0KGUpO2lmKHQpcmV0dXJuIHQ7bGV0IG49SWcoe3RhYmxlOmUuX190YWJsZUxheW91dD8/bnVsbCxyb3dzOmUucm93cy5tYXAoZT0+KHtyb3c6ZS5fX3RhYmxlUm93TGF5b3V0Pz9udWxsLGNlbGxzOmUuY2VsbHMubWFwKGU9PmUuX190YWJsZUNlbGxMYXlvdXQ/P251bGwpfSkpfSxgRE9DWCB0YWJsZSBhY3F1aXNpdGlvbiBpbnB1dGApO3JldHVybiBCTC5zZXQoZSxuKSxufWNvbnN0IFdMPWU9PmUhPW51bGwmJk51bWJlci5pc0Zpbml0ZShlKT9lOm51bGw7ZnVuY3Rpb24gR0woZSl7cmV0dXJuIElnKHtjb2xXaWR0aHM6KGUuY29sV2lkdGhzPz9bXSkubWFwKGU9Pk51bWJlci5pc0Zpbml0ZShlKSYmZT49MD9lOjApLGxheW91dDplLmxheW91dD8/bnVsbCx3aWR0aFB0OldMKGUud2lkdGhQdCksd2lkdGhQY3Q6V0woZS53aWR0aFBjdCkscm93czplLnJvd3MubWFwKGU9Pih7Z3JpZEJlZm9yZTpXTChlLmdyaWRCZWZvcmUpPz8wLGdyaWRBZnRlcjpXTChlLmdyaWRBZnRlcik/PzAsY2VsbHM6ZS5jZWxscy5tYXAoZT0+KHtjb2xTcGFuOldMKGUuY29sU3Bhbik/PzEsd2lkdGhQdDpXTChlLndpZHRoUHQpLHdpZHRoUGN0OldMKGUud2lkdGhQY3QpfSkpfSkpfSxgRE9DWCB0YWJsZSBjb2x1bW4gc2VtYW50aWMgaW5wdXRgKX1mdW5jdGlvbiBLTChlKXtsZXQgdD1ITC5nZXQoZSk7aWYodClyZXR1cm4gdDtsZXQgbj1GZyh7c2VtYW50aWM6R0woZSksbGV4aWNhbDpVTChlKSxmb3JtYXQ6YVIoZSl9KTtyZXR1cm4gSEwuc2V0KGUsbiksbn1mdW5jdGlvbiBxTChlKXtyZXR1cm4gS0woZSkuZm9ybWF0Lm9yZGluYXJ5Rmxvd31mdW5jdGlvbiBKTChlKXtyZXR1cm4gS0woZSkuZm9ybWF0LnBvc2l0aW9uaW5nPT09bnVsbD9udWxsOmUudGJscFByPz9udWxsfWZ1bmN0aW9uIFlMKGUpe3JldHVybntsZWZ0RnJvbVRleHRQdDplLmxlZnRGcm9tVGV4dCxyaWdodEZyb21UZXh0UHQ6ZS5yaWdodEZyb21UZXh0LHRvcEZyb21UZXh0UHQ6ZS50b3BGcm9tVGV4dCxib3R0b21Gcm9tVGV4dFB0OmUuYm90dG9tRnJvbVRleHQsaG9yekFuY2hvcjplLmhvcnpBbmNob3IsaG9yelNwZWNpZmllZDplLmhvcnpTcGVjaWZpZWQsdmVydEFuY2hvcjplLnZlcnRBbmNob3IseFB0OmUudGJscFgseVB0OmUudGJscFksLi4uZS50YmxwWFNwZWM9PW51bGw/e306e3hBbGlnbjplLnRibHBYU3BlY30sLi4uZS50YmxwWVNwZWM9PW51bGw/e306e3lBbGlnbjplLnRibHBZU3BlY319fWZ1bmN0aW9uIFhMKGUsdCl7aWYoZT09PW51bGwpcmV0dXJuIG51bGw7bGV0IG49ZS50cmltKCkscj10JiZuLmVuZHNXaXRoKGAlYCk/bi5zbGljZSgwLC0xKTpuO2lmKHIubGVuZ3RoPT09MClyZXR1cm4gbnVsbDtsZXQgaT1OdW1iZXIocik7cmV0dXJuIE51bWJlci5pc0Zpbml0ZShpKT9pOm51bGx9ZnVuY3Rpb24gWkwoZSl7bGV0IHQ9WEwoZT8/bnVsbCwhMSk7cmV0dXJuIHQ9PT1udWxsP251bGw6dC8yMH1mdW5jdGlvbiBRTChlKXtyZXR1cm4gZT09PWBleGFjdGB8fGU9PT1gYXRMZWFzdGA/ZTpgYXV0b2B9ZnVuY3Rpb24gJEwoZSl7cmV0dXJue3J1bGU6RVAoUUwoZS5ydWxlKSxlLnJ1bGVBdXRob3JlZCksdmFsdWVQdDpaTChlLnZhbHVlKX19ZnVuY3Rpb24gZVIoZSl7aWYoZS5yb3dIZWlnaHQ9PT1udWxsfHwhTnVtYmVyLmlzRmluaXRlKGUucm93SGVpZ2h0KSlyZXR1cm4gbnVsbDtsZXQgdD1RTChlLnJvd0hlaWdodFJ1bGUpO3JldHVybntydWxlOnQ9PT1gYXV0b2A/YGF0TGVhc3RgOnQsdmFsdWVQdDplLnJvd0hlaWdodH19ZnVuY3Rpb24gdFIoLi4uZSl7Zm9yKGxldCB0IG9mIGUpe2lmKCF0KWNvbnRpbnVlO2xldCBlPURQKHFJKHQpLFlJKHQpKTtpZihlIT09bnVsbClyZXR1cm4gZX1yZXR1cm4gbnVsbH1mdW5jdGlvbiBuUihlLHQsbil7aWYoIWUpcmV0dXJuIG51bGw7bGV0IHI9cUkoZSk7cmV0dXJuIE9QKHtraW5kOnIsZHhhVmFsdWVQdDpyPT09YGR4YWA/WkwoZS52YWx1ZT8/YDBgKTpudWxsLHNjb3BlOnQsZWRnZTpufSl9ZnVuY3Rpb24gclIoZSx0LG4scixpLGEsbyl7bGV0IHM9ZS5iaWRpVmlzdWFsPT09ITAsYz0oZSx0KT0+e2xldCBuPXQ9PT1gbGVmdGA/cz9gZW5kYDpgc3RhcnRgOnM/YHN0YXJ0YDpgZW5kYDtyZXR1cm57d2lkdGg6ZT8uW3RdPz9lPy5bbl0sZWRnZTpufX0sbD0oZSwuLi50KT0+e2ZvcihsZXQgbiBvZiB0KXtsZXQgdD1uUihuLndpZHRoLG4uc2NvcGUsbi5lZGdlPz9lKTtpZih0IT09bnVsbClyZXR1cm4gdH1yZXR1cm4gbnVsbH0sdT1jKHIsYGxlZnRgKSxkPWMoaSxgbGVmdGApLGY9YyhhLGBsZWZ0YCkscD1jKG8sYGxlZnRgKSxtPWMocixgcmlnaHRgKSxoPWMoaSxgcmlnaHRgKSxnPWMoYSxgcmlnaHRgKSxfPWMobyxgcmlnaHRgKSx2PWU9PiFuJiZlIT1udWxsJiZOdW1iZXIuaXNGaW5pdGUoZSk/ZTpudWxsO3JldHVybnt0b3A6bChgdG9wYCx7d2lkdGg6cj8udG9wLHNjb3BlOmBjZWxsYH0pPz92KHQubWFyZ2luVG9wKT8/bChgdG9wYCx7d2lkdGg6aT8udG9wLHNjb3BlOmBleGNlcHRpb25gfSx7d2lkdGg6YT8udG9wLHNjb3BlOmB0YWJsZWB9LHt3aWR0aDpvPy50b3Asc2NvcGU6YHN0eWxlYH0pPz9lLmNlbGxNYXJnaW5Ub3AsYm90dG9tOmwoYGJvdHRvbWAse3dpZHRoOnI/LmJvdHRvbSxzY29wZTpgY2VsbGB9KT8/dih0Lm1hcmdpbkJvdHRvbSk/P2woYGJvdHRvbWAse3dpZHRoOmk/LmJvdHRvbSxzY29wZTpgZXhjZXB0aW9uYH0se3dpZHRoOmE/LmJvdHRvbSxzY29wZTpgdGFibGVgfSx7d2lkdGg6bz8uYm90dG9tLHNjb3BlOmBzdHlsZWB9KT8/ZS5jZWxsTWFyZ2luQm90dG9tLGxlZnQ6bCh1LmVkZ2Usey4uLnUsc2NvcGU6YGNlbGxgfSk/P3YodC5tYXJnaW5MZWZ0KT8/bChkLmVkZ2Usey4uLmQsc2NvcGU6YGV4Y2VwdGlvbmB9LHsuLi5mLHNjb3BlOmB0YWJsZWB9LHsuLi5wLHNjb3BlOmBzdHlsZWB9KT8/ZS5jZWxsTWFyZ2luTGVmdCxyaWdodDpsKG0uZWRnZSx7Li4ubSxzY29wZTpgY2VsbGB9KT8/dih0Lm1hcmdpblJpZ2h0KT8/bChoLmVkZ2Usey4uLmgsc2NvcGU6YGV4Y2VwdGlvbmB9LHsuLi5nLHNjb3BlOmB0YWJsZWB9LHsuLi5fLHNjb3BlOmBzdHlsZWB9KT8/ZS5jZWxsTWFyZ2luUmlnaHR9fWZ1bmN0aW9uIGlSKGUpe2lmKCFlKXJldHVybiBudWxsO2xldCB0PWUuaW5kZW50P3FJKGUuaW5kZW50KTpudWxsO3JldHVybntwcmVmZXJyZWRXaWR0aEF1dGhvcmVkOmUucHJlZmVycmVkV2lkdGghPW51bGwscHJlZmVycmVkV2lkdGg6SkkoZS5wcmVmZXJyZWRXaWR0aCksbGF5b3V0OmUubGF5b3V0Py5raW5kPT09YGZpeGVkYHx8ZS5sYXlvdXQ/LmtpbmQ9PT1gYXV0b2ZpdGA/ZS5sYXlvdXQua2luZDpudWxsLGp1c3RpZmljYXRpb246ZS5qdXN0aWZpY2F0aW9uLGluZGVudEF1dGhvcmVkOmUuaW5kZW50IT1udWxsJiYodD09PWBkeGFgfHx0PT09YG5pbGApLGluZGVudFB0OnQ9PT1gbmlsYD8wOllJKGUuaW5kZW50KSxib3JkZXJzOmUuYm9yZGVyc319ZnVuY3Rpb24gYVIoZSl7bGV0IHQ9VkwuZ2V0KGUpO2lmKHQpcmV0dXJuIHQ7bGV0IG49VUwoZSkscj1uLnRhYmxlPy5vcmRpbmFyeUZsb3c/P2UudGJscFByPT1udWxsLGk9ZS5yb3dzLm1hcCgodCxyKT0+e2xldCBpPW4ucm93c1tyXT8ucm93Pz9udWxsLGE9aT8uZXhjZXB0aW9uPz9udWxsO3JldHVybntoZWlnaHQ6aT8uaGVpZ2h0PyRMKGkuaGVpZ2h0KTplUih0KSxjYW50U3BsaXQ6dC5jYW50U3BsaXQ9PT0hMCxyZXBlYXRlZEhlYWRlcjp0LmlzSGVhZGVyPT09ITAsY2VsbFNwYWNpbmdQdDp0UihpPy5jZWxsU3BhY2luZyxhPy5jZWxsU3BhY2luZyxuLnRhYmxlPy5jZWxsU3BhY2luZyxpPy5zdHlsZUNlbGxTcGFjaW5nKT8/MCxqdXN0aWZpY2F0aW9uOmk/Lmp1c3RpZmljYXRpb24/P2E/Lmp1c3RpZmljYXRpb24/P251bGwsZXhjZXB0aW9uOmlSKGEpLGNlbGxzOnQuY2VsbHMubWFwKCh0LG8pPT4oe21hcmdpbnNQdDpyUihlLHQsbi5yb3dzW3JdPy5jZWxsc1tvXSE9PW51bGwmJm4ucm93c1tyXT8uY2VsbHNbb10hPT12b2lkIDAsbi5yb3dzW3JdPy5jZWxsc1tvXT8ubWFyZ2lucyxhPy5jZWxsTWFyZ2lucyxuLnRhYmxlPy5jZWxsTWFyZ2lucyxpPy5zdHlsZUNlbGxNYXJnaW5zKX0pKX19KSxhPUlnKHtlZmZlY3RpdmVTdHlsZUlkOm4udGFibGU/LmVmZmVjdGl2ZVN0eWxlSWQ/P251bGwsb3JkaW5hcnlGbG93OnIsbG9naWNhbFNlcXVlbmNlSWQ6bi50YWJsZT8ubG9naWNhbFNlcXVlbmNlSWQ/P251bGwsbG9naWNhbFJvd09mZnNldDpuLnRhYmxlPy5sb2dpY2FsUm93T2Zmc2V0Pz8wLGxvZ2ljYWxUb3RhbFJvd3M6bi50YWJsZT8ubG9naWNhbFRvdGFsUm93cz8/MCxwb3NpdGlvbmluZzpyfHxlLnRibHBQcj09bnVsbD9udWxsOllMKGUudGJscFByKSxyb3dzOmksZmlyc3RSb3dFeGNlcHRpb246aVswXT8uZXhjZXB0aW9uPz9udWxsfSxgRE9DWCB0YWJsZSBmb3JtYXQgaW5wdXRgKTtyZXR1cm4gVkwuc2V0KGUsYSksYX1mdW5jdGlvbiBvUihlKXtyZXR1cm4gT2JqZWN0LmZyZWV6ZShlLm1hcChlPT57aWYoZS50eXBlIT09YHRhYmxlYClyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7ZWxlbWVudDplLHRhYmxlOm51bGx9KTtsZXQgdD1hUihlKTtyZXR1cm4gdC5sb2dpY2FsU2VxdWVuY2VJZD09bnVsbD9PYmplY3QuZnJlZXplKHtlbGVtZW50OmUsdGFibGU6bnVsbH0pOk9iamVjdC5mcmVlemUoe2VsZW1lbnQ6ZSx0YWJsZTpPYmplY3QuZnJlZXplKHtsb2dpY2FsU2VxdWVuY2VJZDp0LmxvZ2ljYWxTZXF1ZW5jZUlkLGxvZ2ljYWxSb3dPZmZzZXQ6dC5sb2dpY2FsUm93T2Zmc2V0Pz8wLGxvZ2ljYWxUb3RhbFJvd3M6dC5sb2dpY2FsVG90YWxSb3dzPz8wLHJvd0NvdW50OmUucm93cy5sZW5ndGh9KX0pfSkpfWNvbnN0IHNSPWU9Pk9iamVjdC5mcmVlemUoe3N0b3J5OmBib2R5YCxzdG9yeUluc3RhbmNlOmBib2R5YCxwYXRoOk9iamVjdC5mcmVlemUoW2VdKX0pLGNSPW5ldyBTZXQoW2BwYXJhZ3JhcGhgLGBsaW5lYCxgY2hhcmFjdGVyYF0pO2Z1bmN0aW9uIGxSKGUsdCxuKXtpZihlLnR5cGUhPT1gc2hhcGVgJiZlLnR5cGUhPT1gaW1hZ2VgJiZlLnR5cGUhPT1gY2hhcnRgfHxiUihlKSE9PXZvaWQgMHx8IWViKGUud3JhcE1vZGUpfHxlLnR5cGUhPT1gc2hhcGVgJiYhZS5hbmNob3J8fGUud2lkdGhQdDw9MHx8ZS5oZWlnaHRQdDw9MClyZXR1cm4gbnVsbDtsZXQgcj1lLmFuY2hvclhSZWxhdGl2ZUZyb20/PyhlLmFuY2hvclhGcm9tTWFyZ2luP2BtYXJnaW5gOmBwYWdlYCksaT1lLmFuY2hvcllSZWxhdGl2ZUZyb20/PyhlLmFuY2hvcllGcm9tUGFyYT9gcGFyYWdyYXBoYDpgcGFnZWApLGE9YCR7dC5zdG9yeX06JHt0LnN0b3J5SW5zdGFuY2V9OiR7dC5wYXRoLmpvaW4oYC5gKX1gO3JldHVybiBPYmplY3QuZnJlZXplKHtvY2N1cnJlbmNlSWQ6ZS50eXBlPT09YHNoYXBlYD9gcHVibGljLXNoYXBlOiR7YX06JHtufWA6YHB1YmxpYy1hbmNob3I6JHthfToke259YCxwYWdlT3duZWQ6IWNSLmhhcyhyKSYmIWNSLmhhcyhpKX0pfWZ1bmN0aW9uIHVSKGUsdCl7bGV0IG49bmV3IFNldChbYHBhcmFncmFwaGAsYGxpbmVgLGBjaGFyYWN0ZXJgXSkscj1PYmplY3QuZnJlZXplKFsuLi5uZXcgU2V0KGpMKGUpLmZsYXRNYXAoKGUscik9PntsZXQgaT1lO2lmKGUudHlwZSE9PWBzaGFwZWAmJmUudHlwZSE9PWBpbWFnZWAmJmUudHlwZSE9PWBjaGFydGAmJmkudHlwZSE9PWB1bmF2YWlsYWJsZURyYXdpbmdgKXJldHVybltdO2xldCBhPWJSKGkpO2lmKCFhKXtsZXQgZT1pLnR5cGU9PT1gdW5hdmFpbGFibGVEcmF3aW5nYD9udWxsOmxSKGksdCxyKTtyZXR1cm4gZT8ucGFnZU93bmVkP1tlLm9jY3VycmVuY2VJZF06W119cmV0dXJuIGEuaG9yaXpvbnRhbC5yZWxhdGl2ZUZyb21TdGF0dXMhPT1gdmFsaWRgfHxhLnZlcnRpY2FsLnJlbGF0aXZlRnJvbVN0YXR1cyE9PWB2YWxpZGB8fGEuaG9yaXpvbnRhbC5yZWxhdGl2ZUZyb209PT1udWxsfHxhLnZlcnRpY2FsLnJlbGF0aXZlRnJvbT09PW51bGx8fGEud3JhcC5raW5kPT09YG5vbmVgfHxuLmhhcyhhLmhvcml6b250YWwucmVsYXRpdmVGcm9tKXx8bi5oYXMoYS52ZXJ0aWNhbC5yZWxhdGl2ZUZyb20pP1tdOltOZyh0LGEub2NjdXJyZW5jZUlkKV19KSldKTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7a2luZDpgcGFyYWdyYXBoYCxzb3VyY2U6dCxwYWdlQnJlYWtCZWZvcmU6ZS5wYWdlQnJlYWtCZWZvcmU9PT0hMCxrZWVwTGluZXM6ZS5rZWVwTGluZXM9PT0hMCxrZWVwTmV4dDplLmtlZXBOZXh0PT09ITAsd2lkb3dDb250cm9sOmUud2lkb3dDb250cm9sIT09ITEsc3BhY2VCZWZvcmVQdDplLnNwYWNlQmVmb3JlPz8wLHNwYWNlQWZ0ZXJQdDplLnNwYWNlQWZ0ZXI/PzAsY29udGV4dHVhbFNwYWNpbmc6ZS5jb250ZXh0dWFsU3BhY2luZz09PSEwLHN0eWxlSWQ6ZS5zdHlsZUlkPz9udWxsLGlua2xlc3M6IU1MKGUpJiZPTChlKSwuLi5yLmxlbmd0aD09PTA/e306e3BhZ2VPd25lZEFuY2hvck9jY3VycmVuY2VJZHM6cn19KX1mdW5jdGlvbiBkUihlKXtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7a2luZDpgdGFibGVgLHNvdXJjZTplfSl9ZnVuY3Rpb24gZlIoZSx0KXtsZXQgbj0wO3JldHVybiBPYmplY3QuZnJlZXplKFNMKG9SKGUpKS5tYXAoZT0+e2lmKGUua2luZD09PWBhZGphY2VudC10YWJsZS1ncm91cGApe2xldCB0PW47cmV0dXJuIG4rPWUudGFibGVzLmxlbmd0aCxPYmplY3QuZnJlZXplKHtraW5kOmBhZGphY2VudC10YWJsZS1ncm91cGAsbG9naWNhbFNlcXVlbmNlSWQ6ZS5sb2dpY2FsU2VxdWVuY2VJZCxzb3VyY2U6c1IodCksdGFibGVzOk9iamVjdC5mcmVlemUoZS50YWJsZXMubWFwKChlLG4pPT5PYmplY3QuZnJlZXplKHsuLi5kUihzUih0K24pKSxyb3dDb3VudDplLnJvd3MubGVuZ3RofSkpKX0pfWxldCByPWUuZWxlbWVudCxpPW4sYT1zUihpKTtpZihuKz0xLHIudHlwZT09PWBwYXJhZ3JhcGhgKXJldHVybiByLm1hcmtWYW5pc2g9PT0hMCYmIU1MKHIpJiZPTChyKT9PYmplY3QuZnJlZXplKHtraW5kOmBjb25zdW1lLXNvdXJjZWAsc291cmNlOmEscmVhc29uOmBoaWRkZW4tcGFyYWdyYXBoYH0pOk9iamVjdC5mcmVlemUoe2tpbmQ6YGJvZHktYmxvY2tgLGJsb2NrOnVSKHIsYSl9KTtpZihyLnR5cGU9PT1gdGFibGVgKXJldHVybiBPYmplY3QuZnJlZXplKHtraW5kOmBib2R5LWJsb2NrYCxibG9jazpkUihhKX0pO2lmKHIudHlwZT09PWBwYWdlQnJlYWtgfHxyLnR5cGU9PT1gY29sdW1uQnJlYWtgKXJldHVybiBPYmplY3QuZnJlZXplKHtraW5kOmBhdXRob3JlZC1icmVha2Asc291cmNlOmEsYnJlYWs6ci50eXBlPT09YHBhZ2VCcmVha2A/YHBhZ2VgOmBjb2x1bW5gLC4uLnIudHlwZT09PWBwYWdlQnJlYWtgJiZyLnBhcml0eSE9PXZvaWQgMD97cGFyaXR5OnIucGFyaXR5fTp7fSwuLi5yLnR5cGU9PT1gcGFnZUJyZWFrYCYmci5zYW1lUGFyYWdyYXBoQXNQcmV2aW91cz09PSEwP3tzYW1lU291cmNlUGFyYWdyYXBoQXNQcmV2aW91czohMH06e319KTtpZihyLnR5cGU9PT1gc2VjdGlvbkJyZWFrYClyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7a2luZDpgYmVnaW4tc2VjdGlvbmAsc291cmNlOmEsc2VjdGlvbjp0KGkpfSk7dGhyb3cgRXJyb3IoYFVuc3VwcG9ydGVkIGJvZHkgbGF5b3V0IHNvdXJjZSBhdCAke2l9YCl9KSl9ZnVuY3Rpb24gcFIoZSx0LG4scj10KXtyZXR1cm4gb0woS0woZSksdCwodCxyKT0+bihlLnJvd3NbdF0uY2VsbHNbcl0pLHIpfWZ1bmN0aW9uIG1SKGUsdCxuKXtpZighdHx8dHlwZW9mIHQhPWBvYmplY3RgKXJldHVybjtsZXQgcj16TC5nZXQoZSk7cnx8KHI9bmV3IFdlYWtNYXAsekwuc2V0KGUscikpLHIuc2V0KHQsbil9ZnVuY3Rpb24gaFIoZSl7bGV0IHQ9bmV3IE1hcCxuPTA7ZS5ib2R5LmZvckVhY2goKGUscik9PntpZihlLnR5cGUhPT1gc2VjdGlvbkJyZWFrYClyZXR1cm47bGV0IGk9ZS5fX3NlY3Rpb25QbGFjZW1lbnQ7dC5zZXQocixJZyh7c2VjdGlvbklkOmk/LnNlY3Rpb25JZD8/YHNlY3Rpb246JHtufWAsc2VjdGlvbkJpZGk6aT8uc2VjdGlvbkJpZGk9PT0hMCx2QWxpZ246aT8udkFsaWduPz9udWxsLGxpbmVOdW1iZXJpbmc6aT8ubGluZU51bWJlcmluZz8/bnVsbCxkb2NHcmlkVHlwZTppPy5kb2NHcmlkVHlwZT8/bnVsbCxkb2NHcmlkTGluZVBpdGNoOmk/LmRvY0dyaWRMaW5lUGl0Y2g/P251bGwsZG9jR3JpZENoYXJTcGFjZTppPy5kb2NHcmlkQ2hhclNwYWNlPz9udWxsLGd1dHRlclB0Omk/Lmd1dHRlclB0Pz9udWxsLHJ0bEd1dHRlcjppPy5ydGxHdXR0ZXI/P251bGwscGFnZUJvcmRlcnNBdXRob3JlZDppPy5wYWdlQm9yZGVyc0F1dGhvcmVkPz8hMSxwYWdlQm9yZGVyczppPy5wYWdlQm9yZGVycz8/bnVsbCxwYWdlR2VvbWV0cnk6aT8ucGFnZUdlb21ldHJ5Pz9lLmdlb20/P3t9fSxgRE9DWCBlbmRpbmctc2VjdGlvbiBwbGFjZW1lbnQgaW5wdXRgKSksbis9MX0pO2xldCByPWUuc2VjdGlvbj8uX19zZWN0aW9uUGxhY2VtZW50O3JldHVybiBPYmplY3QuZnJlZXplKHtlbmRpbmdTZWN0aW9uczp0LGZpbmFsU2VjdGlvbjpJZyh7c2VjdGlvbklkOnI/LnNlY3Rpb25JZD8/YHNlY3Rpb246JHtufWAsc2VjdGlvbkJpZGk6cj8uc2VjdGlvbkJpZGk9PT0hMCx2QWxpZ246cj8udkFsaWduPz9lLnNlY3Rpb24/LnZBbGlnbj8/bnVsbCxsaW5lTnVtYmVyaW5nOnI/LmxpbmVOdW1iZXJpbmc/P2Uuc2VjdGlvbj8ubGluZU51bWJlcmluZz8/bnVsbCxkb2NHcmlkVHlwZTpyPy5kb2NHcmlkVHlwZT8/ZS5zZWN0aW9uPy5kb2NHcmlkVHlwZT8/bnVsbCxkb2NHcmlkTGluZVBpdGNoOnI/LmRvY0dyaWRMaW5lUGl0Y2g/P2Uuc2VjdGlvbj8uZG9jR3JpZExpbmVQaXRjaD8/bnVsbCxkb2NHcmlkQ2hhclNwYWNlOnI/LmRvY0dyaWRDaGFyU3BhY2U/P2Uuc2VjdGlvbj8uZG9jR3JpZENoYXJTcGFjZT8/bnVsbCxndXR0ZXJQdDpyPy5ndXR0ZXJQdD8/bnVsbCxydGxHdXR0ZXI6cj8ucnRsR3V0dGVyPz9udWxsLHBhZ2VCb3JkZXJzQXV0aG9yZWQ6cj8ucGFnZUJvcmRlcnNBdXRob3JlZD8/ZS5zZWN0aW9uPy5wYWdlQm9yZGVycyE9bnVsbCxwYWdlQm9yZGVyczpyPy5wYWdlQm9yZGVycz8/ZS5zZWN0aW9uPy5wYWdlQm9yZGVycz8/bnVsbCxwYWdlR2VvbWV0cnk6cj8ucGFnZUdlb21ldHJ5Pz8oZS5zZWN0aW9uP0dDKGUuc2VjdGlvbik6e30pfSxgRE9DWCBmaW5hbC1zZWN0aW9uIHBsYWNlbWVudCBpbnB1dGApfSl9Y29uc3QgZ1I9T2JqZWN0LmZyZWV6ZSh7ZGVmYXVsdDpudWxsLGZpcnN0Om51bGwsZXZlbjpudWxsfSk7ZnVuY3Rpb24gX1IoZSl7bGV0IHQ9W10sbj1oUihlKSxyPTA7ZS5ib2R5LmZvckVhY2goKGUsaSk9PntpZihlLnR5cGUhPT1gc2VjdGlvbkJyZWFrYClyZXR1cm47bGV0IGE9bi5lbmRpbmdTZWN0aW9ucy5nZXQoaSk/P24uZmluYWxTZWN0aW9uLG89dC5sZW5ndGg7dC5wdXNoKHtzZWN0aW9uT2NjdXJyZW5jZUlkOmEuc2VjdGlvbklkLG9yZGluYWw6byxzdGFydEJvZHlJbmRleDpyLGVuZEJvZHlJbmRleDppLG1hcmtlckJvZHlJbmRleDppLGZpbmFsOiExLHN0YXJ0VHlwZTplLmtpbmQ/P2BuZXh0UGFnZWAsY29sdW1uczplLmNvbHVtbnM/P251bGwsYXV0aG9yZWRHZW9tZXRyeTpJTChhLnBhZ2VHZW9tZXRyeSksdGV4dERpcmVjdGlvbjplLnRleHREaXJlY3Rpb24/P251bGwscGFnZU51bVR5cGU6ZS5wYWdlTnVtVHlwZT8/bnVsbCxoZWFkZXJzOmUuaGVhZGVycz8/Z1IsZm9vdGVyczplLmZvb3RlcnM/P2dSLHRpdGxlUGFnZTplLnRpdGxlUGFnZT8/ITEsc2VjdGlvbkJpZGk6YS5zZWN0aW9uQmlkaSx2QWxpZ246YS52QWxpZ24sbGluZU51bWJlcmluZzphLmxpbmVOdW1iZXJpbmcsZG9jR3JpZFR5cGU6YS5kb2NHcmlkVHlwZSxkb2NHcmlkTGluZVBpdGNoOmEuZG9jR3JpZExpbmVQaXRjaCxkb2NHcmlkQ2hhclNwYWNlOmEuZG9jR3JpZENoYXJTcGFjZSxhdXRob3JlZEd1dHRlclB0OmEuZ3V0dGVyUHQscnRsR3V0dGVyOmEucnRsR3V0dGVyPT09ITAscGFnZUJvcmRlcnNBdXRob3JlZDphLnBhZ2VCb3JkZXJzQXV0aG9yZWQscGFnZUJvcmRlcnM6YS5wYWdlQm9yZGVycyxwbGFjZW1lbnQ6TEwoYSl9KSxyPWkrMX0pO2xldCBpPW4uZmluYWxTZWN0aW9uO3QucHVzaCh7c2VjdGlvbk9jY3VycmVuY2VJZDppLnNlY3Rpb25JZCxvcmRpbmFsOnQubGVuZ3RoLHN0YXJ0Qm9keUluZGV4OnIsZW5kQm9keUluZGV4OmUuYm9keS5sZW5ndGgtMSxtYXJrZXJCb2R5SW5kZXg6bnVsbCxmaW5hbDohMCxzdGFydFR5cGU6ZS5zZWN0aW9uLnNlY3Rpb25TdGFydD8/YG5leHRQYWdlYCxjb2x1bW5zOmUuc2VjdGlvbi5jb2x1bW5zPz9udWxsLGF1dGhvcmVkR2VvbWV0cnk6aS5wYWdlR2VvbWV0cnk9PW51bGw/R0MoZS5zZWN0aW9uKTpJTChpLnBhZ2VHZW9tZXRyeSksdGV4dERpcmVjdGlvbjplLnNlY3Rpb24udGV4dERpcmVjdGlvbj8/bnVsbCxwYWdlTnVtVHlwZTplLnNlY3Rpb24ucGFnZU51bVR5cGU/P251bGwsaGVhZGVyczplLmhlYWRlcnM/P2dSLGZvb3RlcnM6ZS5mb290ZXJzPz9nUix0aXRsZVBhZ2U6ZS5zZWN0aW9uLnRpdGxlUGFnZSxzZWN0aW9uQmlkaTppLnNlY3Rpb25CaWRpLHZBbGlnbjppLnZBbGlnbixsaW5lTnVtYmVyaW5nOmkubGluZU51bWJlcmluZyxkb2NHcmlkVHlwZTppLmRvY0dyaWRUeXBlLGRvY0dyaWRMaW5lUGl0Y2g6aS5kb2NHcmlkTGluZVBpdGNoLGRvY0dyaWRDaGFyU3BhY2U6aS5kb2NHcmlkQ2hhclNwYWNlLGF1dGhvcmVkR3V0dGVyUHQ6aS5ndXR0ZXJQdCxydGxHdXR0ZXI6aS5ydGxHdXR0ZXI9PT0hMCxwYWdlQm9yZGVyc0F1dGhvcmVkOmkucGFnZUJvcmRlcnNBdXRob3JlZCxwYWdlQm9yZGVyczppLnBhZ2VCb3JkZXJzLHBsYWNlbWVudDpMTChpKX0pO2xldCBhPUFycmF5KHQubGVuZ3RoKSxvPUdDKGUuc2VjdGlvbikscz1udWxsLGM9bnVsbDtmb3IobGV0IGU9dC5sZW5ndGgtMTtlPj0wOy0tZSl7bGV0IG49dFtlXSxyPW4uc3RhcnRUeXBlPT09YGNvbnRpbnVvdXNgJiZzIT09bnVsbD9zOm8saT1uLmF1dGhvcmVkR2VvbWV0cnksbD17cGFnZVdpZHRoOmkucGFnZVdpZHRoPz9yLnBhZ2VXaWR0aCxwYWdlSGVpZ2h0OmkucGFnZUhlaWdodD8/ci5wYWdlSGVpZ2h0LG1hcmdpblRvcDppLm1hcmdpblRvcD8/ci5tYXJnaW5Ub3AsbWFyZ2luUmlnaHQ6aS5tYXJnaW5SaWdodD8/ci5tYXJnaW5SaWdodCxtYXJnaW5Cb3R0b206aS5tYXJnaW5Cb3R0b20/P3IubWFyZ2luQm90dG9tLG1hcmdpbkxlZnQ6aS5tYXJnaW5MZWZ0Pz9yLm1hcmdpbkxlZnQsaGVhZGVyRGlzdGFuY2U6aS5oZWFkZXJEaXN0YW5jZT8/ci5oZWFkZXJEaXN0YW5jZSxmb290ZXJEaXN0YW5jZTppLmZvb3RlckRpc3RhbmNlPz9yLmZvb3RlckRpc3RhbmNlfSx1PW4uYXV0aG9yZWRHdXR0ZXJQdD8/KG4uc3RhcnRUeXBlPT09YGNvbnRpbnVvdXNgP2M6bnVsbCk/PzAse2F1dGhvcmVkR2VvbWV0cnk6ZCxhdXRob3JlZEd1dHRlclB0OmYsLi4ucH09bjthW2VdPXsuLi5wLGdlb21ldHJ5OmwsZ3V0dGVyUHQ6dX0scz1sLGM9dX1yZXR1cm4gSWcoe2JvZHlMZW5ndGg6ZS5ib2R5Lmxlbmd0aCxvY2N1cnJlbmNlczphfSxgRE9DWCBib2R5IHNlY3Rpb24gaW5kZXggaW5wdXRgKX1mdW5jdGlvbiB2UihlKXtsZXQgdD1fUihlKSxuPW5ldyBNYXA7Zm9yKGxldCBlIG9mIHQub2NjdXJyZW5jZXMpZS5zdGFydEJvZHlJbmRleCE9PTAmJm4uc2V0KGUuc3RhcnRCb2R5SW5kZXgtMSxlKTtsZXQgcj1mUihlLmJvZHksZT0+e2xldCB0PW4uZ2V0KGUpO2lmKCF0KXRocm93IEVycm9yKGBNaXNzaW5nIGluY29taW5nIGJvZHkgc2VjdGlvbiBhdCAke2V9YCk7cmV0dXJuIE9iamVjdC5mcmVlemUoe3NlY3Rpb25PY2N1cnJlbmNlSWQ6dC5zZWN0aW9uT2NjdXJyZW5jZUlkLHN0YXJ0VHlwZTp0LnN0YXJ0VHlwZX0pfSk7cmV0dXJuIElnKHtzZWN0aW9uSW5kZXg6dCxldmVuQW5kT2RkSGVhZGVyczplLnNlY3Rpb24uZXZlbkFuZE9kZEhlYWRlcnMsZW5kbm90ZUlkczooZS5lbmRub3Rlcz8/W10pLm1hcChlPT5lLmlkKSxub3RlTGF5b3V0U2V0dGluZ3M6RkwoZSkscGFnZUxheW91dFNldHRpbmdzOlBMKGUpLHBhcnNlckRpYWdub3N0aWNzOnN2KGUuZGlhZ25vc3RpY3MsZS5ib2R5Lmxlbmd0aCksc2VxdWVuY2U6cn0sYERPQ1ggYm9keSBsYXlvdXQgYWNxdWlzaXRpb24gaW5wdXRgKX1mdW5jdGlvbiB5UihlKXtsZXQgdD1lLnRleHRQYXRoO2lmKHQpcmV0dXJuIElnKHtzdHJpbmc6dC5zdHJpbmcsLi4udC5mb250RmFtaWx5PT09dm9pZCAwP3t9Ontmb250RmFtaWx5OnQuZm9udEZhbWlseX0sYm9sZDp0LmJvbGQ/PyExLGl0YWxpYzp0Lml0YWxpYz8/ITEsLi4udC50ZXh0UGF0aE9rPT09dm9pZCAwP3t9Ont0ZXh0UGF0aE9rOnQudGV4dFBhdGhPa30sLi4udC5vbj09PXZvaWQgMD97fTp7b246dC5vbn0sLi4udC5maXRTaGFwZT09PXZvaWQgMD97fTp7Zml0U2hhcGU6dC5maXRTaGFwZX0sLi4udC5maXRQYXRoPT09dm9pZCAwP3t9OntmaXRQYXRoOnQuZml0UGF0aH0sLi4udC50cmltPT09dm9pZCAwP3t9Ont0cmltOnQudHJpbX0sLi4udC54U2NhbGU9PT12b2lkIDA/e306e3hTY2FsZTp0LnhTY2FsZX0sLi4udC5mb250U2l6ZVB0PT09dm9pZCAwP3t9Ontmb250U2l6ZVB0OnQuZm9udFNpemVQdH19LGBET0NYIFZNTCB0ZXh0IHBhdGggYWNxdWlzaXRpb24gaW5wdXRgKX1mdW5jdGlvbiBiUihlKXtsZXQgdD1lLl9fYW5jaG9yQWNxdWlzaXRpb247aWYodCE9PXZvaWQgMClyZXR1cm4gSWcodCxgRE9DWCBhbmNob3IgYWNxdWlzaXRpb24gaW5wdXRgKX1mdW5jdGlvbiB4UihlLHQpe2xldCBuPU9SKGUpLmZvbnRGYWN0cyxyPW4/LnJ0bD09PSEwfHxuPy5jcz09PSEwLGk9cj9uPy5mb250U2l6ZUNzPz9uPy5mb250U2l6ZT8/dDpuPy5mb250U2l6ZT8/dCxhPW4/LmZvbnRGYW1pbHk/P2UuZm9udEZhbWlseT8/bnVsbCxvPXthc2NpaTphLGhpZ2hBbnNpOm4/LmZvbnRGYW1pbHlIaWdoQW5zaT8/YSxlYXN0QXNpYTpuPy5mb250RmFtaWx5RWFzdEFzaWE/P2UuZm9udEZhbWlseUVhc3RBc2lhPz9hLGNvbXBsZXhTY3JpcHQ6bj8uZm9udEZhbWlseUNzPz9hfSxzPW4/LmZvbnRTbG90cztyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Zm9udFNpemVQdDppLGZvbnRzOk9iamVjdC5mcmVlemUoey4uLnM/LmRpcmVjdD8/b30pLHRoZW1lRm9udHM6cz8udGhlbWU/T2JqZWN0LmZyZWV6ZSh7Li4ucy50aGVtZX0pOnZvaWQgMCx0aGVtZUZvbnRQcmVzZW5jZTpzPy50aGVtZVByZXNlbnQ/T2JqZWN0LmZyZWV6ZSh7Li4ucy50aGVtZVByZXNlbnR9KTp2b2lkIDAsd2VpZ2h0OihyP24/LmJvbGRDcz8/ITE6bj8uYm9sZD8/ITEpPzcwMDo0MDAsc3R5bGU6KHI/bj8uaXRhbGljQ3M/PyExOm4/Lml0YWxpYz8/ITEpP2BpdGFsaWNgOmBub3JtYWxgLGNvbXBsZXhTY3JpcHQ6cixmb250SGludDpuPy5mb250SGludCxlYXN0QXNpYUxhbmd1YWdlOm4/LmxhbmdFYXN0QXNpYSxrZXJuaW5nOm4/Lmtlcm5pbmc9PW51bGw/dm9pZCAwOmk+PW4ua2VybmluZ30pfWZ1bmN0aW9uIFNSKGUsdCl7bGV0IG49ZS50ZXh0Qm94Q29udGVudDtyZXR1cm4gbj09PXZvaWQgMD9JZyh7a2luZDpgY29tcGF0aWJpbGl0eWAsc291cmNlOnQscGFyYWdyYXBoczpJTyhlLHQseFIpfSxgRE9DWCBwdWJsaWMgdGV4dCBib3ggYWNxdWlzaXRpb24gaW5wdXRgKTpJZyh7a2luZDpgY29tcGxldGVgLHNvdXJjZTp0LGJsb2NrQ291bnQ6bi5sZW5ndGh9LGBET0NYIGNvbXBsZXRlIHRleHQgYm94IGFjcXVpc2l0aW9uIGlucHV0YCl9ZnVuY3Rpb24gQ1IoZSl7bGV0IHQ9a1IoZSkucGFyYWdyYXBoTWFya0ZvbnRGYWN0cztpZighdClyZXR1cm47bGV0IG49dC5ydGw9PT0hMHx8dC5jcz09PSEwLHI9ZS5ydW5zLmZpbmQoZT0+ZS50eXBlPT09YHRleHRgfHxlLnR5cGU9PT1gZmllbGRgKT8uZm9udFNpemU/P2UuZGVmYXVsdEZvbnRTaXplPz8xMCxpPW4/dC5mb250U2l6ZUNzPz90LmZvbnRTaXplPz9yOnQuZm9udFNpemU/P3IsYT10LmZvbnRGYW1pbHk/P2UuZGVmYXVsdEZvbnRGYW1pbHk/P251bGwsbz17YXNjaWk6YSxoaWdoQW5zaTp0LmZvbnRGYW1pbHlIaWdoQW5zaT8/YSxlYXN0QXNpYTp0LmZvbnRGYW1pbHlFYXN0QXNpYT8/ZS5kZWZhdWx0Rm9udEZhbWlseUVhc3RBc2lhPz9hLGNvbXBsZXhTY3JpcHQ6dC5mb250RmFtaWx5Q3M/P2F9O3JldHVybiBPYmplY3QuZnJlZXplKHtmb250U2l6ZVB0OmksZm9udHM6T2JqZWN0LmZyZWV6ZSh7Li4udC5mb250U2xvdHM/LmRpcmVjdD8/b30pLHRoZW1lRm9udHM6dC5mb250U2xvdHM/LnRoZW1lP09iamVjdC5mcmVlemUoey4uLnQuZm9udFNsb3RzLnRoZW1lfSk6dm9pZCAwLHRoZW1lRm9udFByZXNlbmNlOnQuZm9udFNsb3RzPy50aGVtZVByZXNlbnQ/T2JqZWN0LmZyZWV6ZSh7Li4udC5mb250U2xvdHMudGhlbWVQcmVzZW50fSk6dm9pZCAwLHdlaWdodDoobj90LmJvbGRDcz8/ITE6dC5ib2xkPz8hMSk/NzAwOjQwMCxzdHlsZToobj90Lml0YWxpY0NzPz8hMTp0Lml0YWxpYz8/ITEpP2BpdGFsaWNgOmBub3JtYWxgLGNvbXBsZXhTY3JpcHQ6bixmb250SGludDp0LmZvbnRIaW50LGVhc3RBc2lhTGFuZ3VhZ2U6dC5sYW5nRWFzdEFzaWEsa2VybmluZzp0Lmtlcm5pbmc9PW51bGw/dm9pZCAwOmk+PXQua2VybmluZ30pfWZ1bmN0aW9uIHdSKGUsdCl7bGV0IG49ZSx7bGF5b3V0TGluZXM6cixsaW5lU2xpY2U6aSxydW5zOmEscGFyYWdyYXBoTWFya0ZvbnRGYWN0czpvLF9fcGFyYWdyYXBoVHlwb2dyYXBoeUFjcXVpc2l0aW9uOnMsX19jb21wbGV4RmllbGRCb3VuZGFyaWVzOmMsLi4ubH09ZSx1PWJMKG4pLGQ9ZS5fX2NvbXBsZXhGaWVsZEJvdW5kYXJpZXM/Lm1hcChlPT4oe29jY3VycmVuY2VLZXk6W2Bjb21wbGV4LWZpZWxkYCx0LnN0b3J5LHQuc3RvcnlJbnN0YW5jZSx0LnBhdGguc2xpY2UoMCwtMSkuam9pbihgLmApLFN0cmluZyhlLm9jY3VycmVuY2VJZCldLmpvaW4oYDpgKSxib3VuZGFyeTplLmJvdW5kYXJ5LHJ1bkluZGV4OmUucnVuSW5kZXgsZmllbGRUeXBlOmUuZmllbGRUeXBlLGluc3RydWN0aW9uOmUuaW5zdHJ1Y3Rpb24sLi4uZS5oeXBlcmxpbmtBbmNob3I9PT12b2lkIDA/e306e2h5cGVybGlua0FuY2hvcjplLmh5cGVybGlua0FuY2hvcn19KSksZj1sLm51bWJlcmluZyxwPWY9PW51bGw/bnVsbDooKHtmb250RmFjdHM6ZSwuLi50fSk9PnQpKGYpLG09c3RydWN0dXJlZENsb25lKHsuLi5sLG51bWJlcmluZzpwfSksaD1BTChuKSxnPVtdO2lmKGgubGVuZ3RoPT09MCluLnJ1bnMuZm9yRWFjaCgoZSx0KT0+e2cucHVzaCh7cnVuOmUsb3JpZ2luYWxSdW46bi5ydW5zW3RdfSl9KTtlbHNle2xldCBlPTA7Zm9yKGxldCB0PTA7dDw9bi5ydW5zLmxlbmd0aDt0Kz0xKXtmb3IoO2hbZV0/LnB1YmxpY1J1bkluZGV4PT09dDspe2xldCB0PWhbZV0ucnVuO2cucHVzaCh7cnVuOnQsb3JpZ2luYWxSdW46dH0pLGUrPTF9dDxuLnJ1bnMubGVuZ3RoJiZnLnB1c2goe3J1bjpuLnJ1bnNbdF0sb3JpZ2luYWxSdW46bi5ydW5zW3RdfSl9fWxldCBfPWcubWFwKCh7cnVuOmUsb3JpZ2luYWxSdW46bn0scik9PntsZXQgaT1lO2lmKGkudHlwZT09PWB1bmF2YWlsYWJsZURyYXdpbmdgKXtsZXQgZT1iUihuKSxyPWU9PT12b2lkIDA/dm9pZCAwOklnKHsuLi5lLG9jY3VycmVuY2VJZDpOZyh0LGUub2NjdXJyZW5jZUlkKX0sYERPQ1ggc2NvcGVkIHVuYXZhaWxhYmxlIGRyYXdpbmcgYW5jaG9yIGFjcXVpc2l0aW9uIGlucHV0YCkse19fYW5jaG9yQWNxdWlzaXRpb246YSwuLi5vfT1pO3JldHVybiBPYmplY3QuZnJlZXplKHsuLi5vLC4uLnI9PT12b2lkIDA/e306e2FuY2hvckFjcXVpc2l0aW9uSW5wdXQ6cn19KX1pZihlLnR5cGU9PT1gbWF0aGApe2xldCBuPU9iamVjdC5mcmVlemUoey4uLnQscGF0aDpPYmplY3QuZnJlZXplKFsuLi50LnBhdGgscl0pfSksaT1lO3JldHVybiBPYmplY3QuZnJlZXplKHt0eXBlOmBtYXRoYCxkaXNwbGF5OmUuZGlzcGxheSxmb250U2l6ZTplLmZvbnRTaXplLC4uLmUuamM9PT12b2lkIDA/e306e2pjOmUuamN9LHNvdXJjZTppLnNvdXJjZT8/bixyZXNvdXJjZUtleTppLnJlc291cmNlS2V5Pz9qZyhuLGUuZGlzcGxheT9gZGlzcGxheWA6YGlubGluZWApLGZhbGxiYWNrVGV4dDprYihlLm5vZGVzKX0pfWlmKGUudHlwZT09PWBhbmNob3JIb3N0YCl7bGV0e19fYW5jaG9yT2NjdXJyZW5jZUlkOm4sLi4ucn09ZTtyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Li4uciwuLi5uPT09dm9pZCAwP3t9OnthbmNob3JPY2N1cnJlbmNlSWQ6TmcodCxuKX19KX1pZihlLnR5cGU9PT1gc2hhcGVgfHxlLnR5cGU9PT1gaW1hZ2VgfHxlLnR5cGU9PT1gY2hhcnRgKXtsZXQgaT1iUihuKSxhPWk9PT12b2lkIDA/dm9pZCAwOklnKHsuLi5pLG9jY3VycmVuY2VJZDpOZyh0LGkub2NjdXJyZW5jZUlkKX0sYERPQ1ggc2NvcGVkIGFuY2hvciBhY3F1aXNpdGlvbiBpbnB1dGApLHtfX2FuY2hvckFjcXVpc2l0aW9uOm8sLi4uc309ZTtpZihlLnR5cGUhPT1gc2hhcGVgKXtsZXQgbj1lLnR5cGU9PT1gY2hhcnRgPygoe2NoYXJ0OmUsLi4ubn0pPT4oey4uLm4scmVzb3VyY2VLZXk6TWcoey4uLnQscGF0aDpbLi4udC5wYXRoLHJdfSl9KSkocyk6cztyZXR1cm4gT2JqZWN0LmZyZWV6ZSh7Li4uc3RydWN0dXJlZENsb25lKG4pLC4uLmE9PT12b2lkIDA/e306e2FuY2hvckFjcXVpc2l0aW9uSW5wdXQ6YX19KX1sZXQgYz1uLGw9eVIoYyksdT1PYmplY3QuZnJlZXplKHsuLi50LHBhdGg6T2JqZWN0LmZyZWV6ZShbLi4udC5wYXRoLHJdKX0pLGQ9U1IoYyx7c3Rvcnk6YHRleHRib3hgLHN0b3J5SW5zdGFuY2U6YCR7dS5zdG9yeX06JHt1LnN0b3J5SW5zdGFuY2V9OiR7dS5wYXRoLmpvaW4oYC5gKX1gLHBhdGg6W119KSx7dGV4dEJveENvbnRlbnQ6Zix0ZXh0QmxvY2tzOnAsdGV4dFBhdGg6bSwuLi5ofT1zO3JldHVybiBPYmplY3QuZnJlZXplKHt0eXBlOmBzaGFwZWAsLi4uc3RydWN0dXJlZENsb25lKGgpLC4uLmw9PT12b2lkIDA/e306e3ZtbFRleHRQYXRoSW5wdXQ6bH0sLi4uKGQua2luZD09PWBjb21wbGV0ZWA/ZC5ibG9ja0NvdW50OmQucGFyYWdyYXBocy5sZW5ndGgpPT09MD97fTp7dGV4dEJveElucHV0OmR9LC4uLmE9PT12b2lkIDA/e306e2FuY2hvckFjcXVpc2l0aW9uSW5wdXQ6YX19KX1pZihlLnR5cGU9PT1gdGV4dGB8fGUudHlwZT09PWBmaWVsZGApe2xldCB0PXlMKG4pLHtfX3R5cG9ncmFwaHlBY3F1aXNpdGlvbjpyLC4uLml9PWU7cmV0dXJuIE9iamVjdC5mcmVlemUoey4uLnN0cnVjdHVyZWRDbG9uZShpKSwuLi50PT09dm9pZCAwP3t9Ont0eXBvZ3JhcGh5SW5wdXQ6dH19KX1yZXR1cm4gT2JqZWN0LmZyZWV6ZShzdHJ1Y3R1cmVkQ2xvbmUoZSkpfSk7cmV0dXJuIEZnKHsuLi5tLHJ1bnM6XywuLi5kPy5sZW5ndGg/e2NvbXBsZXhGaWVsZEJvdW5kYXJpZXM6ZH06e30sbnVtYmVyaW5nTWFya2VyU2hhcGVJbnB1dDplLm51bWJlcmluZz94UihlLm51bWJlcmluZyxuLnJ1bnMuZmluZChlPT5lLnR5cGU9PT1gdGV4dGB8fGUudHlwZT09PWBmaWVsZGApPy5mb250U2l6ZT8/ZS5kZWZhdWx0Rm9udFNpemU/PzEwKTp2b2lkIDAscGFyYWdyYXBoTWFya1NoYXBlSW5wdXQ6Q1IoZSksLi4udT09PXZvaWQgMD97fTp7dHlwb2dyYXBoeUlucHV0OnV9fSl9ZnVuY3Rpb24gVFIoZSl7cmV0dXJuIERSKGUsITEpfWZ1bmN0aW9uIEVSKGUpe3JldHVybiBEUihlLCEwKX1mdW5jdGlvbiBEUihlLHQpe2xldCBuPVtdLHI9KGUsYSxvLHMpPT57aWYoZS50eXBlPT09YHBhcmFncmFwaGApe2xldCBpPSExLGM9W10sbD1bXSx1PWUucnVucy5zb21lKGU9PmUudHlwZT09PWB1bmF2YWlsYWJsZURyYXdpbmdgKTtqTChlKS5mb3JFYWNoKChlLGQpPT57aWYoZS50eXBlPT09YHVuYXZhaWxhYmxlRHJhd2luZ2Ape2wucHVzaChPYmplY3QuZnJlZXplKHtwdWJsaWNSdW5JbmRleDpjLmxlbmd0aCxydW46SWcoZSxgRE9DWCB1bmF2YWlsYWJsZSBkcmF3aW5nIHBhcnNlciBzaWRlY2FyYCl9KSksdSYmKGk9ITApO3JldHVybn1pZihlLnR5cGU9PT1gbWF0aGApe2k9ITA7bGV0IHQ9T2JqZWN0LmZyZWV6ZSh7c3Rvcnk6YSxzdG9yeUluc3RhbmNlOm8scGF0aDpPYmplY3QuZnJlZXplKFsuLi5zLGRdKX0pLHI9amcodCxlLmRpc3BsYXk/YGRpc3BsYXlgOmBpbmxpbmVgKTtuLnB1c2goT2JqZWN0LmZyZWV6ZSh7bm9kZXM6ZS5ub2RlcyxkaXNwbGF5OmUuZGlzcGxheSxzb3VyY2U6dCxyZXNvdXJjZUtleTpyfSkpLGMucHVzaChPYmplY3QuZnJlZXplKHsuLi5lLHNvdXJjZTp0LHJlc291cmNlS2V5OnJ9KSk7cmV0dXJufWlmKGUudHlwZSE9PWBzaGFwZWApe2MucHVzaChlKTtyZXR1cm59bGV0IGY9ZSxwPWYudGV4dEJveENvbnRlbnQ7aWYocD09PXZvaWQgMCl7Yy5wdXNoKGUpO3JldHVybn1sZXQgbT17c3Rvcnk6YSxzdG9yeUluc3RhbmNlOm8scGF0aDpbLi4ucyxkXX0saD1gJHttLnN0b3J5fToke20uc3RvcnlJbnN0YW5jZX06JHttLnBhdGguam9pbihgLmApfWAsZz0hMSxfPXQ/cDpBcnJheShwLmxlbmd0aCk7aWYocC5mb3JFYWNoKChlLHQpPT57aWYoZS50eXBlPT09YHVuc3VwcG9ydGVkVGV4dEJveEJsb2NrYCl7X1t0XT1lO3JldHVybn1sZXQgbj1yKGUsYHRleHRib3hgLGgsW3RdKTtuIT09ZSYmKGc9ITApLF9bdF09bn0pLCFnKXtjLnB1c2goZSk7cmV0dXJufWk9ITAsdD8oZi50ZXh0Qm94Q29udGVudD1fLGMucHVzaChlKSk6Yy5wdXNoKHsuLi5lLHRleHRCb3hDb250ZW50Ol99KX0pO2xldCBkPWk/dD9PYmplY3QuYXNzaWduKGUse3J1bnM6Y30pOnsuLi5lLHJ1bnM6Y306ZTtyZXR1cm4gbC5sZW5ndGg+MCYma0wuc2V0KGQsT2JqZWN0LmZyZWV6ZShsKSksZH1pZihlLnR5cGU9PT1gdGFibGVgKXtpZih0KXJldHVybiBlLnJvd3MuZm9yRWFjaCgoZSx0KT0+ZS5jZWxscy5mb3JFYWNoKChlLG4pPT57ZS5jb250ZW50PWkoZS5jb250ZW50LGEsbyxbLi4ucyx0LG5dKX0pKSxlO2xldCBuPSExLHI9ZS5yb3dzLm1hcCgoZSx0KT0+e2xldCByPSExLGM9ZS5jZWxscy5tYXAoKGUsbik9PntsZXQgYz1pKGUuY29udGVudCxhLG8sWy4uLnMsdCxuXSk7cmV0dXJuIGM9PT1lLmNvbnRlbnQ/ZToocj0hMCx7Li4uZSxjb250ZW50OmN9KX0pO3JldHVybiByPyhuPSEwLHsuLi5lLGNlbGxzOmN9KTplfSk7cmV0dXJuIG4/ey4uLmUscm93czpyfTplfWlmKGUudHlwZSE9PWBzZWN0aW9uQnJlYWtgKXJldHVybiBlO2xldCBjPXMuYXQoLTEpPz8wLGw9ITEsdT0oZSx0KT0+e2lmKCFlKXJldHVybiBlO2xldCBuPWU7Zm9yKGxldCByIG9mW2BkZWZhdWx0YCxgZmlyc3RgLGBldmVuYF0pe2xldCBhPWVbcl07aWYoIWEpY29udGludWU7bGV0IG89aShhLmJvZHksdCxgc2VjdGlvbjoke2N9OiR7cn1gKTtvIT09YS5ib2R5JiYobj09PWUmJihuPXsuLi5lfSksbltyXT17Li4uYSxib2R5Om99LGw9ITApfXJldHVybiBufSxkPXUoZS5oZWFkZXJzLGBoZWFkZXJgKSxmPXUoZS5mb290ZXJzLGBmb290ZXJgKTtyZXR1cm4gbD97Li4uZSxoZWFkZXJzOmQsZm9vdGVyczpmfTplfSxpPShlLG4saSxhPVtdKT0+e2lmKHQpe2ZvcihsZXQgdD0wO3Q8ZS5sZW5ndGg7dCs9MSllW3RdPXIoZVt0XSxuLGksWy4uLmEsdF0pO3JldHVybiBlfWxldCBvPSExLHM9ZS5tYXAoKGUsdCk9PntsZXQgcz1yKGUsbixpLFsuLi5hLHRdKTtyZXR1cm4gcyE9PWUmJihvPSEwKSxzfSk7cmV0dXJuIG8/czplfSxhPShlLHQpPT57aWYoIWUpcmV0dXJue2RlZmF1bHQ6bnVsbCxmaXJzdDpudWxsLGV2ZW46bnVsbH07bGV0IG49ZTtmb3IobGV0IHIgb2ZbYGRlZmF1bHRgLGBmaXJzdGAsYGV2ZW5gXSl7bGV0IGE9ZVtyXTtpZighYSljb250aW51ZTtsZXQgbz1pKGEuYm9keSx0LHIpO28hPT1hLmJvZHkmJihuPT09ZSYmKG49ey4uLmV9KSxuW3JdPXsuLi5hLGJvZHk6b30pfXJldHVybiBufSxvPWkoZS5ib2R5LGBib2R5YCxgYm9keWApLHM9YShlLmhlYWRlcnMsYGhlYWRlcmApLGM9YShlLmZvb3RlcnMsYGZvb3RlcmApLGw9KGUsbik9PntpZighZSlyZXR1cm4gZTtpZih0KXtmb3IobGV0IHQgb2YgZSl0LmNvbnRlbnQ9aSh0LmNvbnRlbnQsbix0LmlkKTtyZXR1cm4gZX1sZXQgcj0hMSxhPWUubWFwKGU9PntsZXQgdD1pKGUuY29udGVudCxuLGUuaWQpO3JldHVybiB0PT09ZS5jb250ZW50P2U6KHI9ITAsey4uLmUsY29udGVudDp0fSl9KTtyZXR1cm4gcj9hOmV9LHU9bChlLmZvb3Rub3RlcyxgZm9vdG5vdGVgKSxkPWwoZS5lbmRub3RlcyxgZW5kbm90ZWApLGY9byE9PWUuYm9keXx8cyE9PWUuaGVhZGVyc3x8YyE9PWUuZm9vdGVyc3x8dSE9PWUuZm9vdG5vdGVzfHxkIT09ZS5lbmRub3Rlcz97Li4uZSxib2R5Om8saGVhZGVyczpzLGZvb3RlcnM6Yyxmb290bm90ZXM6dSxlbmRub3RlczpkfTplLHA9aFIoZik7Ukwuc2V0KGYscCksbVIoZi5ib2R5LGYuc2VjdGlvbixwKTtsZXQgbSxoPSgpPT5tPz89dlIoZiksZz1NUigpO3JldHVybiBPYmplY3QuZnJlZXplKHtkb2N1bWVudDpmLG1hdGhPY2N1cnJlbmNlczpPYmplY3QuZnJlZXplKG4pLGZvbnRGYW1pbHlDaGFyc2V0czpPYmplY3QuZnJlZXplKHsuLi5BUihmKS5mb250RmFtaWx5Q2hhcnNldHM/P3t9fSksZ2V0IGJvZHlMYXlvdXRJbnB1dCgpe3JldHVybiBETChoKCkpfSxib2R5TW9kZWxHYXRld2F5Ok9iamVjdC5mcmVlemUoe2FjcXVpc2l0aW9uSW5wdXRzOmcsZ2V0IGJvZHlTZWN0aW9uSW5kZXgoKXtyZXR1cm4gaCgpLnNlY3Rpb25JbmRleH0sZWZmZWN0aXZlVGFibGVQb3NpdGlvbmluZzpKTCxwdWJsaWNBbmNob3JCcmlkZ2U6bFJ9KX0pfWZ1bmN0aW9uIE9SKGUpe3JldHVybiBlfWZ1bmN0aW9uIGtSKGUpe3JldHVybiBlfWZ1bmN0aW9uIEFSKGUpe3JldHVybiBlfWNvbnN0IGpSPU9iamVjdC5mcmVlemUoe251bWJlcmluZ01hcmtlclNoYXBlSW5wdXQ6eFIscGFyYWdyYXBoTWFya1NoYXBlSW5wdXQ6Q1IsdGFibGVGb3JtYXRJbnB1dDphUix0YWJsZUNvbHVtbkxheW91dElucHV0OnBSLHRhYmxlUGFydGljaXBhdGVzSW5PcmRpbmFyeUZsb3c6cUwscGFyYWdyYXBoQWNxdWlzaXRpb25JbnB1dDp3Un0pO2Z1bmN0aW9uIE1SKCl7bGV0IGU9bmV3IFdlYWtNYXAsdD0odCxuKT0+e2xldCByPWUuZ2V0KHQpO3J8fChyPW5ldyBNYXAsZS5zZXQodCxyKSk7bGV0IGk9T2cobiksYT1yLmdldChpKTtpZihhKXJldHVybiBhO2xldCBvPXdSKHQsbik7cmV0dXJuIHIuc2V0KGksbyksb307cmV0dXJuIE9iamVjdC5mcmVlemUoey4uLmpSLHBhcmFncmFwaEFjcXVpc2l0aW9uSW5wdXQ6dH0pfWNvbnN0IE5SPW5ldyBTZXQoW2B0YlJsYCxgdGJSbFZgLGB0YkxyVmBdKTtmdW5jdGlvbiBQUihlKXtsZXQgdD1bZV0sbj1uZXcgU2V0O2Zvcig7dC5sZW5ndGg+MDspe2xldCBlPXQucG9wKCk7aWYoISh0eXBlb2YgZSE9YG9iamVjdGB8fCFlfHxuLmhhcyhlKSkpe2lmKG4uYWRkKGUpLCFBcnJheS5pc0FycmF5KGUpKXtsZXQgdD1lO2lmKHR5cGVvZiB0LnRleHREaXJlY3Rpb249PWBzdHJpbmdgJiZOUi5oYXModC50ZXh0RGlyZWN0aW9uKSlyZXR1cm4hMH10LnB1c2goLi4uT2JqZWN0LnZhbHVlcyhlKSl9fXJldHVybiExfWNvbnN0IEZSPW5ldyBXZWFrTWFwO2Z1bmN0aW9uIElSKGUpe2xldCB0PUtDKCksbj1lLnNlY3Rpb24/P3t9LHI9KGUsdCk9Pk51bWJlci5pc0Zpbml0ZShlKT9lOnQsaT1lPT4oe2RlZmF1bHQ6ZT8uZGVmYXVsdD8/bnVsbCxmaXJzdDplPy5maXJzdD8/bnVsbCxldmVuOmU/LmV2ZW4/P251bGx9KTtyZXR1cm57Li4uZSxib2R5OmUuYm9keT8/W10sc2VjdGlvbjp7Li4udCwuLi5uLHBhZ2VXaWR0aDpyKG4ucGFnZVdpZHRoLHQucGFnZVdpZHRoKSxwYWdlSGVpZ2h0OnIobi5wYWdlSGVpZ2h0LHQucGFnZUhlaWdodCksbWFyZ2luVG9wOnIobi5tYXJnaW5Ub3AsdC5tYXJnaW5Ub3ApLG1hcmdpblJpZ2h0OnIobi5tYXJnaW5SaWdodCx0Lm1hcmdpblJpZ2h0KSxtYXJnaW5Cb3R0b206cihuLm1hcmdpbkJvdHRvbSx0Lm1hcmdpbkJvdHRvbSksbWFyZ2luTGVmdDpyKG4ubWFyZ2luTGVmdCx0Lm1hcmdpbkxlZnQpLGhlYWRlckRpc3RhbmNlOnIobi5oZWFkZXJEaXN0YW5jZSx0LmhlYWRlckRpc3RhbmNlKSxmb290ZXJEaXN0YW5jZTpyKG4uZm9vdGVyRGlzdGFuY2UsdC5mb290ZXJEaXN0YW5jZSl9LGhlYWRlcnM6aShlLmhlYWRlcnMpLGZvb3RlcnM6aShlLmZvb3RlcnMpfX1mdW5jdGlvbiBMUihlLHQsbixyKXtpZihlKWZvcihsZXQgaSBvZltgZGVmYXVsdGAsYGZpcnN0YCxgZXZlbmBdKXtsZXQgYT1lW2ldO2EmJnIoYS5ib2R5LHtzdG9yeTp0LHN0b3J5SW5zdGFuY2U6bj09PW51bGw/aTpgJHtufToke2l9YCxwYXRoOltdfSl9fWZ1bmN0aW9uIFJSKGUsdCxuLHI9KCk9Pnt9LGk9KCk9Pnt9KXtsZXQgYT0oZSxvLHM9W10pPT57ZS5mb3JFYWNoKChjLGwpPT57bGV0IHU9Wy4uLnMsbF07aWYoYy50eXBlPT09YHBhcmFncmFwaGApe2xldCByPXsuLi5vLHBhdGg6dX0scz10LnBhcmFncmFwaEFjcXVpc2l0aW9uSW5wdXQoYyxyKSxkPW4oYyxyLHMpO2QmJihlW2xdPWQpO2xldCBmPTA7cy5ydW5zLmZvckVhY2goKGUsdCk9PntpZihlLnR5cGU9PT1gdW5hdmFpbGFibGVEcmF3aW5nYClyZXR1cm47bGV0IG49Yy5ydW5zW2YrK107aWYoZS50eXBlIT09YHNoYXBlYHx8bj8udHlwZSE9PWBzaGFwZWApcmV0dXJuO2xldCByPW4udGV4dEJveENvbnRlbnQ7aWYoIXIpcmV0dXJuO2xldCBzPXtzdG9yeTpgdGV4dGJveGAsc3RvcnlJbnN0YW5jZTpgJHtvLnN0b3J5fToke28uc3RvcnlJbnN0YW5jZX06JHt1LmpvaW4oYC5gKX0uJHt0fWAscGF0aDpbXX07aShyLHMpLGEocixzKX0pfWVsc2UgYy50eXBlPT09YHRhYmxlYD8ocihjLHsuLi5vLHBhdGg6dX0pLGMucm93cy5mb3JFYWNoKChlLHQpPT5lLmNlbGxzLmZvckVhY2goKGUsbik9PnthKGUuY29udGVudCxvLFsuLi51LHQsbl0pfSkpKTpjLnR5cGU9PT1gc2VjdGlvbkJyZWFrYCYmKExSKGMuaGVhZGVycyxgaGVhZGVyYCxgc2VjdGlvbjoke2x9YCxhKSxMUihjLmZvb3RlcnMsYGZvb3RlcmAsYHNlY3Rpb246JHtsfWAsYSkpfSl9O2EoZS5ib2R5LHtzdG9yeTpgYm9keWAsc3RvcnlJbnN0YW5jZTpgYm9keWAscGF0aDpbXX0pLExSKGUuaGVhZGVycyxgaGVhZGVyYCxudWxsLGEpLExSKGUuZm9vdGVycyxgZm9vdGVyYCxudWxsLGEpO2ZvcihsZXQgdCBvZiBlLmZvb3Rub3Rlcz8/W10pYSh0LmNvbnRlbnQse3N0b3J5OmBmb290bm90ZWAsc3RvcnlJbnN0YW5jZTp0LmlkLHBhdGg6W119KTtmb3IobGV0IHQgb2YgZS5lbmRub3Rlcz8/W10pYSh0LmNvbnRlbnQse3N0b3J5OmBlbmRub3RlYCxzdG9yeUluc3RhbmNlOnQuaWQscGF0aDpbXX0pfWZ1bmN0aW9uIHpSKGUpe2xldCB0PVtdLG49KGUsbik9Pnt0LnB1c2goe3NvdXJjZTpuLGJvZHk6ZX0pfTtyZXR1cm4gTFIoZS5oZWFkZXJzLGBoZWFkZXJgLG51bGwsbiksTFIoZS5mb290ZXJzLGBmb290ZXJgLG51bGwsbiksZS5ib2R5LmZvckVhY2goKGUsdCk9PntlLnR5cGU9PT1gc2VjdGlvbkJyZWFrYCYmKExSKGUuaGVhZGVycyxgaGVhZGVyYCxgc2VjdGlvbjoke3R9YCxuKSxMUihlLmZvb3RlcnMsYGZvb3RlcmAsYHNlY3Rpb246JHt0fWAsbikpfSksdH1mdW5jdGlvbiBCUihlKXtyZXR1cm4gelIoZSkubWFwKCh7Ym9keTplfSk9PmUpfWZ1bmN0aW9uIFZSKGUpe3JldHVybiBlPz9PYmplY3QuZnJlZXplKFtdKX1mdW5jdGlvbiBIUihlLHQsbixyPVtdKXtsZXQgaT0oZSx0LHIpPT5lJiZPYmplY3QuZnJvbUVudHJpZXMoW2BkZWZhdWx0YCxgZmlyc3RgLGBldmVuYF0ubWFwKGk9PntsZXQgYT1lW2ldO3JldHVybltpLGE/ey4uLnN0cnVjdHVyZWRDbG9uZShPYmplY3QuZnJvbUVudHJpZXMoT2JqZWN0LmVudHJpZXMoYSkuZmlsdGVyKChbZV0pPT5lIT09YGJvZHlgKSkpLGJvZHk6SFIoYS5ib2R5LHtzdG9yeTp0LHN0b3J5SW5zdGFuY2U6YCR7cn06JHtpfWAscGF0aDpbXX0sbil9Om51bGxdfSkpO3JldHVybiBlLm1hcCgoZSxhKT0+e2xldCBvPVsuLi5yLGFdO2lmKGUudHlwZT09PWBwYXJhZ3JhcGhgKXtsZXQgZT1uLmdldChPZyh7Li4udCxwYXRoOm99KSk7aWYoIWUpdGhyb3cgRXJyb3IoYE1pc3NpbmcgY2Fub25pY2FsIHBhcmFncmFwaCBzb3VyY2U6ICR7T2coey4uLnQscGF0aDpvfSl9YCk7cmV0dXJuIGV9aWYoZS50eXBlPT09YHRhYmxlYCl7bGV0IHI9c3RydWN0dXJlZENsb25lKGUpLHtfX3RhYmxlTGF5b3V0OmksLi4uYX09cjtyZXR1cm57Li4uYSxyb3dzOnIucm93cy5tYXAoKGUscik9PntsZXR7X190YWJsZVJvd0xheW91dDppLC4uLmF9PWU7cmV0dXJuey4uLmEsY2VsbHM6ZS5jZWxscy5tYXAoKGUsaSk9PntsZXR7X190YWJsZUNlbGxMYXlvdXQ6YSwuLi5zfT1lO3JldHVybnsuLi5zLGNvbnRlbnQ6SFIoZS5jb250ZW50LHQsbixbLi4ubyxyLGldKX19KX19KX19aWYoZS50eXBlIT09YHNlY3Rpb25CcmVha2ApcmV0dXJuIHN0cnVjdHVyZWRDbG9uZShlKTtsZXR7X19zZWN0aW9uUGxhY2VtZW50OnMsaGVhZGVyczpjLGZvb3RlcnM6bCwuLi51fT1lO3JldHVybnsuLi5zdHJ1Y3R1cmVkQ2xvbmUodSksaGVhZGVyczppKGUuaGVhZGVycyxgaGVhZGVyYCxgc2VjdGlvbjoke2F9YCksZm9vdGVyczppKGUuZm9vdGVycyxgZm9vdGVyYCxgc2VjdGlvbjoke2F9YCl9fSl9ZnVuY3Rpb24gVVIoZSl7bGV0e19fc2VjdGlvblBsYWNlbWVudDp0LC4uLm59PWU7cmV0dXJuIHN0cnVjdHVyZWRDbG9uZShuKX1mdW5jdGlvbiBXUihlKXtsZXQgdD1lO3JldHVybiBkZWxldGUgdC5fX3NlY3Rpb25QbGFjZW1lbnQsdH1mdW5jdGlvbiBHUihlLHQsbil7cmV0dXJuIE9iamVjdC5mcm9tRW50cmllcyhbYGRlZmF1bHRgLGBmaXJzdGAsYGV2ZW5gXS5tYXAocj0+e2xldCBpPWVbcl07cmV0dXJuW3IsaT97Li4uc3RydWN0dXJlZENsb25lKE9iamVjdC5mcm9tRW50cmllcyhPYmplY3QuZW50cmllcyhpKS5maWx0ZXIoKFtlXSk9PmUhPT1gYm9keWApKSksYm9keTpIUihpLmJvZHkse3N0b3J5OnQsc3RvcnlJbnN0YW5jZTpyLHBhdGg6W119LG4pfTpudWxsXX0pKX1mdW5jdGlvbiBLUihlLHQsbixyPVtdKXtsZXQgaT0oZSx0LHIpPT57aWYoIWUpcmV0dXJuIGU7Zm9yKGxldCBpIG9mW2BkZWZhdWx0YCxgZmlyc3RgLGBldmVuYF0pe2xldCBhPWVbaV07YSYmKGEuYm9keT1LUihhLmJvZHkse3N0b3J5OnQsc3RvcnlJbnN0YW5jZTpgJHtyfToke2l9YCxwYXRoOltdfSxuKSl9cmV0dXJuIGV9LGE9ZTtmb3IobGV0IGU9MDtlPGEubGVuZ3RoO2UrPTEpe2xldCBvPWFbZV0scz1bLi4ucixlXTtpZihvLnR5cGU9PT1gcGFyYWdyYXBoYCl7bGV0IHI9bi5nZXQoT2coey4uLnQscGF0aDpzfSkpO2lmKCFyKXRocm93IEVycm9yKGBNaXNzaW5nIGNhbm9uaWNhbCBwYXJhZ3JhcGggc291cmNlOiAke09nKHsuLi50LHBhdGg6c30pfWApO2FbZV09cjtjb250aW51ZX1pZihvLnR5cGU9PT1gdGFibGVgKXtsZXQgcj1vO2RlbGV0ZSByLl9fdGFibGVMYXlvdXQsci5yb3dzLmZvckVhY2goKGUscik9PntsZXQgaT1lO2RlbGV0ZSBpLl9fdGFibGVSb3dMYXlvdXQsaS5jZWxscy5mb3JFYWNoKChlLGkpPT57bGV0IGE9ZTtkZWxldGUgYS5fX3RhYmxlQ2VsbExheW91dCxhLmNvbnRlbnQ9S1IoYS5jb250ZW50LHQsbixbLi4ucyxyLGldKX0pfSksYVtlXT1yO2NvbnRpbnVlfWlmKG8udHlwZSE9PWBzZWN0aW9uQnJlYWtgKWNvbnRpbnVlO2xldCBjPW87ZGVsZXRlIGMuX19zZWN0aW9uUGxhY2VtZW50LGMuaGVhZGVycz1pKGMuaGVhZGVycyxgaGVhZGVyYCxgc2VjdGlvbjoke2V9YCksYy5mb290ZXJzPWkoYy5mb290ZXJzLGBmb290ZXJgLGBzZWN0aW9uOiR7ZX1gKX1yZXR1cm4gYX1mdW5jdGlvbiBxUihlLHQsbil7Zm9yKGxldCByIG9mW2BkZWZhdWx0YCxgZmlyc3RgLGBldmVuYF0pe2xldCBpPWVbcl07aSYmKGkuYm9keT1LUihpLmJvZHkse3N0b3J5OnQsc3RvcnlJbnN0YW5jZTpyLHBhdGg6W119LG4pKX1yZXR1cm4gZX1mdW5jdGlvbiBKUihlKXtsZXQgdD1GUi5nZXQoZSk7aWYodClyZXR1cm4gdDtsZXQgbj1UUihJUihlKSk7cmV0dXJuIFhSKG4sbiwhMSxlKX1mdW5jdGlvbiBZUihlLHQpe3JldHVybiBGUi5nZXQoZSl8fFhSKEVSKElSKGUpKSxFUihJUih0KSksITAsZSl9ZnVuY3Rpb24gWFIoZSx0LG4scil7bGV0IGk9dC5kb2N1bWVudCxhPXQuYm9keU1vZGVsR2F0ZXdheS5hY3F1aXNpdGlvbklucHV0cyxvPXQuYm9keUxheW91dElucHV0LHM9U0MoaSxOTChpKSksYz1aZyhpLGEsdC5tYXRoT2NjdXJyZW5jZXMsZT0+e2xldCB0PWUubnVtYmVyaW5nO2lmKCF0KXRocm93IEVycm9yKGBQaWN0dXJlLWJ1bGxldCBtZXRhZGF0YSByZXF1aXJlcyBudW1iZXJpbmdgKTtsZXQgbj1hLm51bWJlcmluZ01hcmtlclNoYXBlSW5wdXQodCxBeChlKSk7cmV0dXJue3dpZHRoUHQ6dC5waWNCdWxsZXRXaWR0aFB0Pz9uLmZvbnRTaXplUHQsaGVpZ2h0UHQ6dC5waWNCdWxsZXRIZWlnaHRQdD8/bi5mb250U2l6ZVB0fX0pLGw9VlIoaS5mb290bm90ZXMpLHU9VlIoaS5lbmRub3RlcyksZD1PayhpLmJvZHksbCxbLi4uQlIoaSksLi4udS5tYXAoZT0+ZS5jb250ZW50KV0pLGY9UFIoaSkscD1pLnBhcnNlRXJyb3I9PT12b2lkIDA/bnVsbDp7bWVzc2FnZTppLnBhcnNlRXJyb3IscGFnZVNpemU6e3dpZHRoUHQ6aS5zZWN0aW9uLnBhZ2VXaWR0aCxoZWlnaHRQdDppLnNlY3Rpb24ucGFnZUhlaWdodH19LG09e2ZhbWlseUNsYXNzZXM6ey4uLmkuZm9udEZhbWlseUNsYXNzZXM/P3t9fSxmYW1pbHlQaXRjaGVzOnsuLi5pLmZvbnRGYW1pbHlQaXRjaGVzPz97fX0sbWFqb3JGYW1pbHk6aS5tYWpvckZvbnQ/P251bGwsbWlub3JGYW1pbHk6aS5taW5vckZvbnQ/P251bGwsZW1iZWRkZWRGb250czpbLi4uaS5lbWJlZGRlZEZvbnRzPz9bXV0scmVuZGVyZWRGYW1pbGllczpGSShpKSxwcmVsb2FkTmFtZXM6UkkoaSksbG9jYWxNZXRyaWNSZXF1ZXN0czpfTChpKSxkZWZhdWx0Qm9keUZvbnRTaXplUHQ6U04oaSl9LGg9bmV3IE1hcCxnPVtdLF89W10sdj1bXTtSUihpLGEsKGUscixpKT0+e2xldCBhPU9nKHIpO2lmKGguaGFzKGEpKXRocm93IEVycm9yKGBEdXBsaWNhdGUgcGFyYWdyYXBoIHNvdXJjZTogJHthfWApO2guc2V0KGEsaSk7bGV0IG89MCxzPWkucnVucy5tYXAoKG4saSk9PntpZihuLnR5cGU9PT1gdW5hdmFpbGFibGVEcmF3aW5nYClyZXR1cm4gbnVsbDtsZXQgYT1lLnJ1bnNbbysrXTtyZXR1cm4gYT90LmJvZHlNb2RlbEdhdGV3YXkucHVibGljQW5jaG9yQnJpZGdlKGEscixpKTpudWxsfSk7cmV0dXJuIGcucHVzaChPYmplY3QuZnJlZXplKHtzb3VyY2U6Rmcoey4uLnIscGF0aDpbLi4uci5wYXRoXX0pLHB1YmxpY0FuY2hvckJyaWRnZXM6T2JqZWN0LmZyZWV6ZShzKSxudW1iZXJpbmdNYXJrZXJGYWxsYmFja0ZvbnRTaXplUHQ6ZS5udW1iZXJpbmc/QXgoZSk6bnVsbH0pKSxuP2k6dm9pZCAwfSwoZSx0KT0+e18ucHVzaChPYmplY3QuZnJlZXplKHtzb3VyY2U6Rmcoey4uLnQscGF0aDpbLi4udC5wYXRoXX0pLGlucHV0OktMKGUpfSkpfSwoZSx0KT0+e3YucHVzaCh7Ym9keTplLHNvdXJjZTp0fSl9KSxPYmplY3QuZnJlZXplKHsuLi5hLHBhcmFncmFwaEFjcXVpc2l0aW9uSW5wdXQoZSx0KXtsZXQgbj1oLmdldChPZyh0KSk7aWYoIW4pdGhyb3cgRXJyb3IoYFVua25vd24gcGFyYWdyYXBoIGFjcXVpc2l0aW9uIHNvdXJjZTogJHtPZyh0KX1gKTtyZXR1cm4gbn19KTtsZXQgeT1uP0tSOkhSLGI9bj9xUjpHUix4PXsuLi5pLGJvZHk6eShpLmJvZHkse3N0b3J5OmBib2R5YCxzdG9yeUluc3RhbmNlOmBib2R5YCxwYXRoOltdfSxoKSxoZWFkZXJzOmIoaS5oZWFkZXJzLGBoZWFkZXJgLGgpLGZvb3RlcnM6YihpLmZvb3RlcnMsYGZvb3RlcmAsaCksZm9vdG5vdGVzOmwubWFwKCh7Y29udGVudDplLC4uLnR9KT0+KHsuLi5zdHJ1Y3R1cmVkQ2xvbmUodCksY29udGVudDp5KGUse3N0b3J5OmBmb290bm90ZWAsc3RvcnlJbnN0YW5jZTp0LmlkLHBhdGg6W119LGgpfSkpLGVuZG5vdGVzOnUubWFwKCh7Y29udGVudDplLC4uLnR9KT0+KHsuLi5zdHJ1Y3R1cmVkQ2xvbmUodCksY29udGVudDp5KGUse3N0b3J5OmBlbmRub3RlYCxzdG9yeUluc3RhbmNlOnQuaWQscGF0aDpbXX0saCl9KSl9LFM9di5tYXAoKHtzb3VyY2U6ZSxib2R5OnR9KT0+KHtzb3VyY2U6ZSxib2R5OnkodCxlLGgpfSkpO0ZnKGgpO2xldCBDPW1MKHtib2R5TGF5b3V0SW5wdXQ6byxibG9ja1JlcG9zaXRvcnk6e2JvZHk6eC5ib2R5LHN0b3JpZXM6Wy4uLnpSKHgpLm1hcCgoe3NvdXJjZTplLGJvZHk6dH0pPT4oe3NvdXJjZTplLGJvZHk6dH0pKSwuLi5TXSxmb290bm90ZXM6eC5mb290bm90ZXM/P1tdLGVuZG5vdGVzOnguZW5kbm90ZXM/P1tdfSxzZWN0aW9uOm4/V1IoaS5zZWN0aW9uKTpVUihpLnNlY3Rpb24pLGRvY3VtZW50TGF5b3V0RmFjdHM6Rmcoey4uLnMsa2luc29rdTp7ZW5hYmxlZDpzLmtpbnNva3UuZW5hYmxlZCxsaW5lU3RhcnRGb3JiaWRkZW46Wy4uLnMua2luc29rdS5saW5lU3RhcnRGb3JiaWRkZW5dLnNvcnQoKGUsdCk9PmUtdCksbGluZUVuZEZvcmJpZGRlbjpbLi4ucy5raW5zb2t1LmxpbmVFbmRGb3JiaWRkZW5dLnNvcnQoKGUsdCk9PmUtdCl9fSksZm9udHM6RmcobSksZm9udEZhbWlseUNoYXJzZXRzOnQuZm9udEZhbWlseUNoYXJzZXRzLGFjcXVpc2l0aW9uRmFjdHM6T2JqZWN0LmZyZWV6ZSh7cGFyYWdyYXBoczpPYmplY3QuZnJlZXplKGcpLHRhYmxlczpPYmplY3QuZnJlZXplKF8pfSksbWF0aE9jY3VycmVuY2VzOnQubWF0aE9jY3VycmVuY2VzLGltYWdlTWV0YWRhdGE6Yy5pbWFnZU1ldGFkYXRhLHBhaW50RGVzY3JpcHRvcnM6Yy5wYWludFJlc291cmNlcy5kZXNjcmlwdG9ycyxoYXNQYWdpbmF0aW9uRmllbGRzOmQscmVxdWlyZXNEb21WZXJ0aWNhbEdseXBoTGF5b3V0OmYsZmF0YWxQYXJzZTpwPT09bnVsbD9udWxsOkZnKHApfSksdz1PYmplY3QuZnJlZXplKHtkb2N1bWVudDplLmRvY3VtZW50LHNvdXJjZTpDfSk7cmV0dXJuIEZSLnNldChyLHcpLEZSLnNldChlLmRvY3VtZW50LHcpLHd9ZnVuY3Rpb24gWlIoZSl7cmV0dXJuIEpSKGUpLnNvdXJjZX1mdW5jdGlvbiBRUihlLHQsbil7cmV0dXJuIEVJKGUsdCxuKS5rZXJuZWx9ZnVuY3Rpb24gJFIoZSx0PXt9KXtsZXQgbj1jTChlKT9lOlpSKGUpLHI9dC5tZWFzdXJlQ29udGV4dD8/KCgpPT57aWYodHlwZW9mIGRvY3VtZW50PGB1YCl7bGV0IGU9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChgY2FudmFzYCkuZ2V0Q29udGV4dChgMmRgKTtpZihlIT09bnVsbClyZXR1cm4gZX1yZXR1cm4gdHlwZW9mIE9mZnNjcmVlbkNhbnZhczxgdWA/bmV3IE9mZnNjcmVlbkNhbnZhcygxLDEpLmdldENvbnRleHQoYDJkYCk6bnVsbH0pKCksaT1yPT09bnVsbD9udWxsOk9iamVjdC5mcmVlemUoe2dldCBmb250KCl7cmV0dXJuIHIuZm9udH0sc2V0IGZvbnQoZSl7ci5mb250PWV9LGdldCBsZXR0ZXJTcGFjaW5nKCl7cmV0dXJuIHIubGV0dGVyU3BhY2luZ30sc2V0IGxldHRlclNwYWNpbmcoZSl7ci5sZXR0ZXJTcGFjaW5nPWV9LGdldCBmb250S2VybmluZygpe3JldHVybiByLmZvbnRLZXJuaW5nfSxzZXQgZm9udEtlcm5pbmcoZSl7ci5mb250S2VybmluZz1lfSxtZWFzdXJlVGV4dChlKXtyZXR1cm4gci5tZWFzdXJlVGV4dChlKX19KSxhPXI/LmNhbnZhcyxvPWE/Lm93bmVyRG9jdW1lbnQ/LmRlZmF1bHRWaWV3Py5IVE1MQ2FudmFzRWxlbWVudCxzPXIhPT1udWxsJiYodHlwZW9mIG89PWBmdW5jdGlvbmAmJmEgaW5zdGFuY2VvZiBvfHx0eXBlb2YgSFRNTENhbnZhc0VsZW1lbnQ8YHVgJiZhIGluc3RhbmNlb2YgSFRNTENhbnZhc0VsZW1lbnQpLGM9T2JqZWN0LmZyZWV6ZSh7ZmluZ2VycHJpbnQ6cj09PW51bGw/YHZlcnRpY2FsLWdseXBoLW1lYXN1cmVtZW50OmRldGVybWluaXN0aWMtdjFgOnM/YHZlcnRpY2FsLWdseXBoLW1lYXN1cmVtZW50OmRvbS12ZXJ0LXByb2JlLXYyYDpgdmVydGljYWwtZ2x5cGgtbWVhc3VyZW1lbnQ6bm8tZG9tLXZlcnQtcHJvYmUtdjFgLG1lYXN1cmVSdW5JbmtFeHRyYShlKXtpZihyPT09bnVsbCl0aHJvdyBFcnJvcihgVmVydGljYWwgZ2x5cGggbWVhc3VyZW1lbnQgcmVxdWlyZXMgYSBjb25jcmV0ZSB0ZXh0IGNvbnRleHRgKTtyZXR1cm4gWm0ociwoKT0+d0kocixlKSl9LHBsYW5SdW4oZSl7aWYocj09PW51bGwpdGhyb3cgRXJyb3IoYFZlcnRpY2FsIGdseXBoIHBsYW5uaW5nIHJlcXVpcmVzIGEgY29uY3JldGUgdGV4dCBjb250ZXh0YCk7cmV0dXJuIFptKHIsKCk9PntsZXQgdD1yLmZvbnQsbj1yLmZvbnRLZXJuaW5nO3IuZm9udD1lLmZvbnQsci5mb250S2VybmluZz1lLmZvbnRLZXJuaW5nO3RyeXtyZXR1cm4gU0kocixlLnRleHQsZS5mb250U2l6ZVB0LGUubGV0dGVyU3BhY2luZ1B0LGUuY2hhclNjYWxlLGUuZ3Jvd1RyUm90YXRlSW5rLGU9PnJoKHIsZSksZS53cml0aW5nTW9kZSl9ZmluYWxseXtyLmZvbnQ9dCxyLmZvbnRLZXJuaW5nPW59fSl9fSksbD1qdih0LmxvY2FsTWV0cmljcyksdT1HSShuLHsuLi50LGxvY2FsTWV0cmljczpsLG1lYXN1cmVDb250ZXh0OmksdmVydGljYWxHbHlwaE1lYXN1cmVtZW50OmN9KTtyZXR1cm4gcF8odSxuKSxkXyh1LFFSKG4saSxsKSksdX1hc3luYyBmdW5jdGlvbiBleihlLHQpe2lmKEFycmF5LmlzQXJyYXkoZSkpdGhyb3cgVHlwZUVycm9yKGBwcmVwYXJlTWF0aFJ1bnMgcmVxdWlyZXMgYSBkb2N1bWVudCBtb2RlbCBzbyBldmVyeSBzdG9yeSBoYXMgYW4gZXhwbGljaXQgc3RydWN0dXJhbCBzb3VyY2VgKTtyZXR1cm4gcU0oWlIoZSkubWF0aE9jY3VycmVuY2VzLHQpfWZ1bmN0aW9uIHR6KGUsdCxuLHIpe2xldCBpPXIubGF5b3V0U2VydmljZXM/PyRSKGUsZS5mYXRhbFBhcnNlPT09bnVsbD97bWVhc3VyZUNvbnRleHQ6dC5nZXRDb250ZXh0KGAyZGApfTp7fSksYT1tXyhpKTtpZihhJiZhIT09ZSl0aHJvdyBFcnJvcihgTGF5b3V0IHNlcnZpY2VzIGJlbG9uZyB0byBhIGRpZmZlcmVudCBkb2N1bWVudCBzb3VyY2VgKTtsZXQgbz1yLmRlZmF1bHRDdXJyZW50RGF0ZU1zPz9EYXRlLm5vdygpO0tNKGksbywoKT0+ZSk7bGV0IHM9Y1QoaSx7Y3VycmVudERhdGU6ci5jdXJyZW50RGF0ZSxkZWZhdWx0Q3VycmVudERhdGVNczpvfSxuKSxjPUJFKHMucGFnZSxyLndpZHRoKTtyZXR1cm57c2VsZWN0aW9uOnMscGFpbnRPcHRpb25zOnt3aWR0aDpyLndpZHRoLGRwcjpyLmRwcixkZWZhdWx0VGV4dENvbG9yOnIuZGVmYXVsdFRleHRDb2xvcixmZXRjaEltYWdlOnIuZmV0Y2hJbWFnZSxwYXJzZUVycm9yOmUuZmF0YWxQYXJzZSE9PW51bGwscmVnaXN0cnk6a18oaSkscHJpdmF0ZVJlc291cmNlczpiXyhpKSx0ZXh0UnVuczpyLm9uVGV4dFJ1bj9QVChzLmxheW91dCxuLHtzY2FsZTpjfSk6W10sb25UZXh0UnVuOnIub25UZXh0UnVuLHRocmVlRDpyLnRocmVlRCxyZWdpb25NYXA6ci5yZWdpb25NYXB9fX1hc3luYyBmdW5jdGlvbiBueihlLHQsbixyPXt9KXtsZXQgaT10eihlLHQsbixyKTtyZXR1cm4gV0UoaS5zZWxlY3Rpb24ubGF5b3V0LGkuc2VsZWN0aW9uLnBhZ2UsdCxpLnBhaW50T3B0aW9ucyl9ZnVuY3Rpb24gcnooZSl7bGV0IHQ9bmV3IE1hcDtmb3IobGV0IG4gb2YgZS5wYWdlcylmb3IobGV0IGUgb2Ygbi5ib29rbWFya1N0YXJ0cyllLm5hbWUhPT1gYCYmIXQuaGFzKGUubmFtZSkmJnQuc2V0KGUubmFtZSxuLnBhZ2VJbmRleCk7cmV0dXJuIHR9YXN5bmMgZnVuY3Rpb24gaXooZSx0KXtsZXQgbj1lLmVtYmVkZGVkRm9udHM7aWYoIW58fG4ubGVuZ3RoPT09MClyZXR1cm5bXTtsZXQgcj0oYXdhaXQgUHJvbWlzZS5hbGwobi5tYXAoYXN5bmMgZT0+e3RyeXtsZXQgbj1hd2FpdCB0KGUucGFydFBhdGgpO3JldHVybntmYW1pbHk6ZS5mb250TmFtZSxieXRlczpuLG9kdHRmOmUucGFydFBhdGgudG9Mb3dlckNhc2UoKS5lbmRzV2l0aChgLm9kdHRmYCksZm9udEtleTplLmZvbnRLZXksd2VpZ2h0OmF6KGUuc3R5bGUpLHN0eWxlOm96KGUuc3R5bGUpfX1jYXRjaHtyZXR1cm4gbnVsbH19KSkpLmZpbHRlcihlPT5lIT09bnVsbCk7cmV0dXJuIHIubGVuZ3RoPT09MD9bXTplZShyKX1mdW5jdGlvbiBheihlKXtyZXR1cm4gZT09PWBib2xkYHx8ZT09PWBib2xkSXRhbGljYD9gYm9sZGA6YG5vcm1hbGB9ZnVuY3Rpb24gb3ooZSl7cmV0dXJuIGU9PT1gaXRhbGljYHx8ZT09PWBib2xkSXRhbGljYD9gaXRhbGljYDpgbm9ybWFsYH1mdW5jdGlvbiBzeihlLHQ9JFIoZSksbil7bGV0IHI9Y0woZSk/ZTpaUihlKSxpPW1fKHQpO2lmKGkmJmkhPT1yKXRocm93IEVycm9yKGBMYXlvdXQgc2VydmljZXMgYmVsb25nIHRvIGEgZGlmZmVyZW50IGRvY3VtZW50IHNvdXJjZWApO3JldHVybiBHTShyLmJvZHlMYXlvdXRJbnB1dCx0LG4pfWZ1bmN0aW9uIGN6KGUsdCxuKXtsZXQgcj1tXyh0KTtpZihyJiZyIT09ZSl0aHJvdyBFcnJvcihgTGF5b3V0IHNlcnZpY2VzIGJlbG9uZyB0byBhIGRpZmZlcmVudCBkb2N1bWVudCBzb3VyY2VgKTtsZXQgaT1zVCh7c291cmNlOmUsc2VydmljZXM6dCxkZWZhdWx0Q3VycmVudERhdGVNczpuLGJ1aWxkTGF5b3V0Om49PnN6KGUsdCxuKX0pO3JldHVybiBPYmplY3QuZnJlZXplKHtsYXlvdXRTZXJ2aWNlczp0LGxheW91dFZhcmlhbnRzOmkuc3RvcmUsZGVmYXVsdEN1cnJlbnREYXRlTXM6bn0pfWZ1bmN0aW9uIGx6KGUsdCl7bGV0IG49TWF0aC5taW4oZS5sZW5ndGgsdCk7aWYobj4wJiZuPGUubGVuZ3RoKXtsZXQgdD1lLmNoYXJDb2RlQXQobi0xKSxyPWUuY2hhckNvZGVBdChuKTt0Pj01NTI5NiYmdDw9NTYzMTkmJnI+PTU2MzIwJiZyPD01NzM0MyYmbi0tfXJldHVybiBlLnNsaWNlKDAsbil9ZnVuY3Rpb24gdXooZSl7bGV0IHQ9ZT8/MTYzODQ7aWYoIU51bWJlci5pc0Zpbml0ZSh0KXx8dDwwKXRocm93IFJhbmdlRXJyb3IoYG1heFRleHRDaGFyYWN0ZXJzIG11c3QgYmUgYSBmaW5pdGUgbm9uLW5lZ2F0aXZlIG51bWJlci5gKTtyZXR1cm4gTWF0aC5taW4oNjU1MzYsTWF0aC5mbG9vcih0KSl9ZnVuY3Rpb24gZHooZSx0KXtsZXQgbj11eih0KSxyPVtdLGk9MCxhPSExLG89ITEscz0oZSx0KT0+e2lmKHQmJm8pe2lmKGk+PW4pcmV0dXJuIGE9ITAsITE7ci5wdXNoKGAKYCksaSsrfW89ITA7bGV0IHM9bHooZSxNYXRoLm1heCgwLG4taSkpO3JldHVybiByLnB1c2gocyksaSs9cy5sZW5ndGgscy5sZW5ndGg8ZS5sZW5ndGg/KGE9ITAsITEpOiEwfTtpZighcyhgQ2hhcnQgdHlwZTogJHtlLmNoYXJ0VHlwZX1gLCEwKXx8ZS50aXRsZSE9PW51bGwmJiFzKGBUaXRsZTogJHtlLnRpdGxlfWAsITApKXJldHVybnt0ZXh0OnIuam9pbihgYCksdHJ1bmNhdGVkOmEsdGV4dENoYXJhY3RlcnM6aSxtYXhUZXh0Q2hhcmFjdGVyczpufTtpZihlLmNhdGVnb3JpZXMubGVuZ3RoPjApe2lmKCFzKGBDYXRlZ29yaWVzOiBgLCEwKSlyZXR1cm57dGV4dDpyLmpvaW4oYGApLHRydW5jYXRlZDphLHRleHRDaGFyYWN0ZXJzOmksbWF4VGV4dENoYXJhY3RlcnM6bn07Zm9yKGxldFt0LG9db2YgZS5jYXRlZ29yaWVzLmVudHJpZXMoKSlpZighcyhgJHt0PT09MD9gYDpgLCBgfSR7b31gLCExKSlyZXR1cm57dGV4dDpyLmpvaW4oYGApLHRydW5jYXRlZDphLHRleHRDaGFyYWN0ZXJzOmksbWF4VGV4dENoYXJhY3RlcnM6bn19Zm9yKGxldCB0IG9mIGUuc2VyaWVzKXtpZighcyhgU2VyaWVzICR7dC5uYW1lfHxgKHVubmFtZWQpYH06IGAsITApKWJyZWFrO2ZvcihsZXRbZSxvXW9mIHQudmFsdWVzLmVudHJpZXMoKSlpZighcyhgJHtlPT09MD9gYDpgLCBgfSR7bz09PW51bGw/YGA6b31gLCExKSlyZXR1cm57dGV4dDpyLmpvaW4oYGApLHRydW5jYXRlZDphLHRleHRDaGFyYWN0ZXJzOmksbWF4VGV4dENoYXJhY3RlcnM6bn07aWYoYSlicmVha31yZXR1cm57dGV4dDpyLmpvaW4oYGApLHRydW5jYXRlZDphLHRleHRDaGFyYWN0ZXJzOmksbWF4VGV4dENoYXJhY3RlcnM6bn19ZnVuY3Rpb24gZnooZSx0KXtsZXQgbj1NYXRoLm1pbihlLmxlbmd0aCx0KTtpZihuPjAmJm48ZS5sZW5ndGgpe2xldCB0PWUuY2hhckNvZGVBdChuLTEpLHI9ZS5jaGFyQ29kZUF0KG4pO3Q+PTU1Mjk2JiZ0PD01NjMxOSYmcj49NTYzMjAmJnI8PTU3MzQzJiZuLS19cmV0dXJuIGUuc2xpY2UoMCxuKX1mdW5jdGlvbiBweihlLHQpe2xldCBuPVtdLHI9MCxpPSExO2ZvcihsZXQgYSBvZiBlKXtpZihhLmxlbmd0aD09PTApY29udGludWU7aWYocj4wKXtpZihyPj10KXtpPSEwO2JyZWFrfW4ucHVzaChgCmApLHIrK31sZXQgZT1meihhLE1hdGgubWF4KDAsdC1yKSk7aWYobi5wdXNoKGUpLHIrPWUubGVuZ3RoLGUubGVuZ3RoPGEubGVuZ3RoKXtpPSEwO2JyZWFrfX1sZXQgYT1uLmpvaW4oYGApO3JldHVybnsuLi5hLmxlbmd0aD09PTA/e306e3RleHQ6YX0sdHJ1bmNhdGVkOml9fWZ1bmN0aW9uKm16KGUpe2lmKGUua2luZD09PWBwYXJhZ3JhcGhgKXtmb3IobGV0IHQgb2YgZS5saW5lcyl7bGV0IGU9dC5wbGFjZW1lbnRzLmZsYXRNYXAoZT0+ZS5raW5kPT09YHRleHRgP1tlLnRleHRdOltdKS5qb2luKGBgKTtlJiYoeWllbGQgZSl9cmV0dXJufWlmKGUua2luZD09PWB0YWJsZWApe2ZvcihsZXQgdCBvZiBlLnJvd3MpZm9yKGxldCBlIG9mIHQuY2VsbHMpZm9yKGxldCB0IG9mIGUuYmxvY2tzKXlpZWxkKm16KHQubGF5b3V0KTtyZXR1cm59aWYoZS5raW5kPT09YG5vdGVgfHxlLmtpbmQ9PT1gdGV4dGJveGApZm9yKGxldCB0IG9mIGUuc3RvcnkuYmxvY2tzKXlpZWxkKm16KHQpfWZ1bmN0aW9uKmh6KGUpe2ZvcihsZXQgdCBvZiBlLmRyYXdpbmcuY29tbWFuZHMpKHQua2luZD09PWB0ZXh0YHx8dC5raW5kPT09YHdhdGVybWFyay10ZXh0YCkmJih5aWVsZCB0LnRleHQpO2ZvcihsZXQgdCBvZiBlLnRleHRCb3hlcyl5aWVsZCpteih0KX1mdW5jdGlvbiBneihlKXtsZXQgdD1lPz8xNjM4NDtpZighTnVtYmVyLmlzRmluaXRlKHQpfHx0PDApdGhyb3cgUmFuZ2VFcnJvcihgbWF4VGV4dENoYXJhY3RlcnMgbXVzdCBiZSBhIGZpbml0ZSBub24tbmVnYXRpdmUgbnVtYmVyLmApO3JldHVybiBNYXRoLm1pbig2NTUzNixNYXRoLmZsb29yKHQpKX1mdW5jdGlvbiBfeihlKXtyZXR1cm57c3Rvcnk6ZS5zdG9yeSxzdG9yeUluc3RhbmNlOmUuc3RvcnlJbnN0YW5jZSxwYXRoOlsuLi5lLnBhdGhdfX1mdW5jdGlvbiB2eihlKXtyZXR1cm5gZHJhd2luZ2BpbiBlP2UuZHJhd2luZy5pbmtCb3VuZHM6ZS5wbGFjZW1lbnQuYm91bmRzfWZ1bmN0aW9uIHl6KGUpe2xldCB0PXZ6KGUpLG49W2ZUKGUucG9pbnRUb1BhZ2UsdCksZlQoZS5wb2ludFRvUGFnZSx7eFB0OnQueFB0K3Qud2lkdGhQdCx5UHQ6dC55UHR9KSxmVChlLnBvaW50VG9QYWdlLHt4UHQ6dC54UHQseVB0OnQueVB0K3QuaGVpZ2h0UHR9KSxmVChlLnBvaW50VG9QYWdlLHt4UHQ6dC54UHQrdC53aWR0aFB0LHlQdDp0LnlQdCt0LmhlaWdodFB0fSldLHI9TWF0aC5taW4oLi4ubi5tYXAoZT0+ZS54UHQpKSxpPU1hdGgubWluKC4uLm4ubWFwKGU9PmUueVB0KSksYT1NYXRoLm1heCguLi5uLm1hcChlPT5lLnhQdCkpLG89TWF0aC5tYXgoLi4ubi5tYXAoZT0+ZS55UHQpKTtyZXR1cm57eFB0OnIseVB0Omksd2lkdGhQdDphLXIsaGVpZ2h0UHQ6by1pfX1mdW5jdGlvbiBieihlLHQpe3JldHVybiB0LnhQdD49ZS54UHQmJnQueFB0PD1lLnhQdCtlLndpZHRoUHQmJnQueVB0Pj1lLnlQdCYmdC55UHQ8PWUueVB0K2UuaGVpZ2h0UHR9ZnVuY3Rpb24geHooZSx0KXtsZXQgbj0hMTtmb3IobGV0IHI9MCxpPXQubGVuZ3RoLTE7cjx0Lmxlbmd0aDtpPXIrKyl7bGV0IGE9dFtyXSxvPXRbaV07YS55UHQ+ZS55UHQhPW8ueVB0PmUueVB0JiZlLnhQdDwoby54UHQtYS54UHQpKihlLnlQdC1hLnlQdCkvKG8ueVB0LWEueVB0KSthLnhQdCYmKG49IW4pfXJldHVybiBufWZ1bmN0aW9uIFN6KGUsdCl7cmV0dXJuIGJ6KGUuaW5rQm91bmRzLHQpP2UuY2xpcD9lLmNsaXAua2luZD09PWByZWN0YD9ieihlLmNsaXAucmVjdCx0KTp4eih0LGUuY2xpcC5wb2ludHMpOiEwOiExfWZ1bmN0aW9uIEN6KGUsdCxuKXtmb3IobGV0IG4gb2YgZS5jbGlwcyl7bGV0IGU9cFQobi5wb2ludFRvUGFnZSx0KTtpZighZXx8IWJ6KG4uYm91bmRzLGUpKXJldHVybiExfXJldHVybmBkcmF3aW5nYGluIGU/U3ooZS5kcmF3aW5nLG4pOmJ6KGUucGxhY2VtZW50LmJvdW5kcyxuKX1mdW5jdGlvbiB3eihlLHQpe3JldHVybiBlLmNvbW1hbmRzLmZpbmQoZT0+ZS5raW5kPT09YHJlc291cmNlYCYmZS5yZXNvdXJjZUtpbmQ9PT10KX1mdW5jdGlvbiBUeihlKXtyZXR1cm4gd3ooZSxgY2hhcnRgKT9gY2hhcnRgOmUuY29tbWFuZHMuc29tZShlPT5lLmtpbmQ9PT1gZHJhd2luZ21sLXNoYXBlYHx8ZS5raW5kPT09YGRyYXdpbmdtbC1pbWFnZS1maWxsYHx8ZS5raW5kPT09YGZpbGwtcmVjdGB8fGUua2luZD09PWBzdHJva2UtcmVjdGB8fGUua2luZD09PWB0ZXh0YHx8ZS5raW5kPT09YHdhdGVybWFyay10ZXh0YCk/YHNoYXBlYDp3eihlLGBpbWFnZWApP2BpbWFnZWA6bnVsbH1mdW5jdGlvbiBFeihlLHQsbixyLGksYSl7bGV0IG89YGRyYXdpbmdgaW4gZT9UeihlLmRyYXdpbmcpOmUucGxhY2VtZW50LnJlc291cmNlS2luZDtpZighbylyZXR1cm4gbnVsbDtsZXQgcyxjPSExLGwsdTtpZihvPT09YGNoYXJ0YCl7bGV0IHQ9YGRyYXdpbmdgaW4gZT93eihlLmRyYXdpbmcsYGNoYXJ0YCkucmVzb3VyY2VLZXk6ZS5wbGFjZW1lbnQucmVzb3VyY2VLZXksbj1pLnJlc29sdmUodCxgY2hhcnRgKSxyPWR6KG4ubW9kZWwsYSk7cz1yLnRleHQsYz1yLnRydW5jYXRlZCx1PW4ubW9kZWwuc2VyaWVzLmxlbmd0aH1lbHNlIGlmKG89PT1gaW1hZ2VgKXtsZXQgdD1gZHJhd2luZ2BpbiBlP3d6KGUuZHJhd2luZyxgaW1hZ2VgKS5yZXNvdXJjZUtleTplLnBsYWNlbWVudC5yZXNvdXJjZUtleSxuPWkuZGVzY3JpcHRvcnMuZmluZChlPT5lLnJlc291cmNlS2V5PT09dCYmZS5raW5kPT09YGltYWdlYCYmYG1pbWVUeXBlYGluIGUpO2lmKCFuKXRocm93IEVycm9yKGBVbmtub3duIGltYWdlIHBhaW50IHJlc291cmNlOiAke3R9YCk7bD1uLm1pbWVUeXBlfWVsc2V7bGV0IHQ9cHooaHooZSksYSk7cz10LnRleHQsYz10LnRydW5jYXRlZH1yZXR1cm57Zm9ybWF0OmBkb2N4YCxraW5kOmBlbGVtZW50YCxwYWdlSW5kZXg6dCxlbGVtZW50SW5kZXg6bixlbGVtZW50VHlwZTpvLHBvaW50OnsuLi5yfSxib3VuZHM6eXooZSksc291cmNlOl96KGBkcmF3aW5nYGluIGU/ZS5kcmF3aW5nLnNvdXJjZTplLnNvdXJjZSksLi4ucz09PXZvaWQgMD97fTp7dGV4dDpzfSwuLi5sPT09dm9pZCAwP3t9OnttaW1lVHlwZTpsfSwuLi51PT09dm9pZCAwP3t9OntzZXJpZXNDb3VudDp1fSx0cnVuY2F0ZWQ6Yyx0cnVuY2F0aW9uUmVhc29uczpjP1tgdGV4dGBdOltdLHRleHRDaGFyYWN0ZXJzOnM/Lmxlbmd0aD8/MCxtYXhUZXh0Q2hhcmFjdGVyczphfX1mdW5jdGlvbiBEeihlLHQsbixyLGk9e30pe2lmKCFOdW1iZXIuaXNGaW5pdGUobi54UHQpfHwhTnVtYmVyLmlzRmluaXRlKG4ueVB0KSl0aHJvdyBSYW5nZUVycm9yKGBET0NYIGhpdC10ZXN0IHBvaW50IG11c3QgY29udGFpbiBmaW5pdGUgcGFnZSBjb29yZGluYXRlcy5gKTtsZXQgYT1neihpLm1heFRleHRDaGFyYWN0ZXJzKSxvPWpUKGUsdCk7Zm9yKGxldCBlPW8ubGVuZ3RoLTE7ZT49MDtlLS0pe2xldCBpPW9bZV0scz1wVChpLnBvaW50VG9QYWdlLG4pO2lmKCFzfHwhQ3ooaSxuLHMpKWNvbnRpbnVlO2xldCBjPUV6KGksdCxlLG4scixhKTtpZihjKXJldHVybiBjfXJldHVybiBudWxsfWZ1bmN0aW9uIE96KGUsdCxuLHIpe3JldHVybiBEeihjVChlLHtjdXJyZW50RGF0ZTpyLmN1cnJlbnREYXRlLGRlZmF1bHRDdXJyZW50RGF0ZU1zOnIuZGVmYXVsdEN1cnJlbnREYXRlTXN9LHQpLmxheW91dCx0LG4sa18oZSkscil9Y29uc3Qga3o9MTAyNCoxMDI0LEF6PTY3MTA4ODY0O2FzeW5jIGZ1bmN0aW9uIGp6KGUsdCxuPXt9KXtsZXQgcj1bXSxpPVtdO3JldHVybiBNeihlLHQsbix7YWNjZXB0Qm9keTplPT57bGV0IHQ9c3RydWN0dXJlZENsb25lKGUpO2ZvcihsZXQgdCBvZiBlKXIucHVzaCh0KTtmb3IobGV0IGUgb2YgdClpLnB1c2goZSl9LGNvbXBsZXRlOmU9PntsZXQgdD1zdHJ1Y3R1cmVkQ2xvbmUoZSk7cmV0dXJuIGUuYm9keT1yLHQuYm9keT1pLE9iamVjdC5mcmVlemUoe2RvY3VtZW50OmUsb3duZWRMYXlvdXREb2N1bWVudDp0fSl9fSl9YXN5bmMgZnVuY3Rpb24gTXooZSx0LG4scil7bGV0IGk9bmV3IHlwKGUsey4uLnQsbWF4Qnl0ZUNyZWRpdDpBeix0aW1lb3V0TXM6bi50aW1lb3V0TXN9KTt0cnl7Zm9yKDs7KXtsZXQgZT1hd2FpdCBQeihpLG4uc2lnbmFsKTt0cnl7bGV0IHQ9ZS51c2FnZT8/aS51c2FnZUNoZWNrcG9pbnQ7dCYmbi5vblVzYWdlPy4odCk7bGV0IGE9TnooZS5wYXlsb2FkKTtpZihlLmRvbmUhPT0oYS5raW5kPT09YGNvbXBsZXRlYCkpdGhyb3cgVHlwZUVycm9yKGBET0NYIGRvY3VtZW50IHVuaXQgdGVybWluYWwgZmxhZyBkb2VzIG5vdCBtYXRjaCBpdHMgcGF5bG9hZGApO2lmKGEua2luZD09PWBib2R5YCl7ci5hY2NlcHRCb2R5KGEuYm9keSksYXdhaXQgZS5hY2soe3NpZ25hbDpuLnNpZ25hbH0pO2NvbnRpbnVlfWlmKCFBcnJheS5pc0FycmF5KGEuZG9jdW1lbnQuYm9keSl8fGEuZG9jdW1lbnQuYm9keS5sZW5ndGghPT0wKXRocm93IFR5cGVFcnJvcihgRE9DWCB0ZXJtaW5hbCBkb2N1bWVudCBtdXN0IG5vdCBkdXBsaWNhdGUgc3RyZWFtZWQgYm9keSBibG9ja3NgKTtsZXQgbz1yLmNvbXBsZXRlKGEuZG9jdW1lbnQpO3JldHVybiBhd2FpdCBlLmFjayh7c2lnbmFsOm4uc2lnbmFsfSksb31maW5hbGx5e2UuZGlzcG9zZVRyYW5zZmVycmVkKCl9fX1jYXRjaChlKXt0aHJvdyBhd2FpdCBpLmNhbmNlbChgcmVxdWVzdC1lcnJvcmApLmNhdGNoKCgpPT52b2lkIDApLGV9fWZ1bmN0aW9uIE56KGUpe2xldCB0PUpTT04ucGFyc2UobmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKG5ldyBVaW50OEFycmF5KGUpKSk7aWYoIXR8fHR5cGVvZiB0IT1gb2JqZWN0YCl0aHJvdyBUeXBlRXJyb3IoYERPQ1ggZG9jdW1lbnQgdW5pdCBtdXN0IGJlIGFuIG9iamVjdGApO2xldCBuPXQ7aWYobi5raW5kPT09YGJvZHlgJiZBcnJheS5pc0FycmF5KG4uYm9keSl8fG4ua2luZD09PWBjb21wbGV0ZWAmJm4uZG9jdW1lbnQmJnR5cGVvZiBuLmRvY3VtZW50PT1gb2JqZWN0YClyZXR1cm4gbjt0aHJvdyBUeXBlRXJyb3IoYERPQ1ggZG9jdW1lbnQgdW5pdCBoYXMgYW4gdW5rbm93biBzaGFwZWApfWFzeW5jIGZ1bmN0aW9uIFB6KGUsdCl7dHJ5e3JldHVybiBhd2FpdCBlLnB1bGwoa3ose3NpZ25hbDp0fSl9Y2F0Y2gobil7bGV0IHI9Rnoobik7aWYocj09PXZvaWQgMCl0aHJvdyBuO3JldHVybiBlLnB1bGwocix7c2lnbmFsOnR9KX19ZnVuY3Rpb24gRnooZSl7cmV0dXJuIG11KGUsa3osQXopfXZhciBJej1jbGFzc3tib2R5O2RvY3VtZW50O3ByZXBhcmVkPW51bGw7aW5kZXg9MDtpZGVudGl0eT1udWxsO2NvbXBsZXRlZD0hMTtjb25zdHJ1Y3RvcihlKXt0aGlzLmJvZHk9ZS5ib2R5LGUuYm9keT1bXSx0aGlzLmRvY3VtZW50PWV9b3Blbl9kb2N1bWVudF9jdXJzb3IoZSx0KXtpZih0aGlzLmlkZW50aXR5KXRocm93IEVycm9yKGBtYXRlcmlhbGl6ZWQgRE9DWCBjdXJzb3IgaXMgYWxyZWFkeSBvcGVuYCk7dGhpcy5pZGVudGl0eT17c2Vzc2lvbklkOnQsb3BlcmF0aW9uSWQ6ZSxnZW5lcmF0aW9uOnR9fXB1bGxfZG9jdW1lbnRfY2h1bmsoZSx0LG4scil7aWYodGhpcy5hc3NlcnRJZGVudGl0eSh0LG4pLHRoaXMuY29tcGxldGVkKXRocm93IEVycm9yKGBtYXRlcmlhbGl6ZWQgRE9DWCBjdXJzb3IgaXMgY29tcGxldGVgKTtpZihlIT09dGhpcy5pbmRleCl0aHJvdyBFcnJvcihgbWF0ZXJpYWxpemVkIERPQ1ggY3Vyc29yIHNlcXVlbmNlIG1pc21hdGNoYCk7aWYoIXRoaXMucHJlcGFyZWQpe2xldCB0PXRoaXMuYm9keVt0aGlzLmluZGV4XSxuPXQ9PT12b2lkIDA/e2tpbmQ6YGNvbXBsZXRlYCxkb2N1bWVudDp0aGlzLnJlcXVpcmVEb2N1bWVudCgpfTp7a2luZDpgYm9keWAsYm9keTpbdF19O3RoaXMucHJlcGFyZWQ9e3NlcXVlbmNlOmUsYnl0ZXM6bmV3IFRleHRFbmNvZGVyKCkuZW5jb2RlKEpTT04uc3RyaW5naWZ5KG4pKSxkb25lOnQ9PT12b2lkIDB9fWlmKHRoaXMucHJlcGFyZWQuYnl0ZXMuYnl0ZUxlbmd0aD5yKXRocm93IG5ldyBkdSh7cmVxdWlyZWRCeXRlczp0aGlzLnByZXBhcmVkLmJ5dGVzLmJ5dGVMZW5ndGgsb2ZmZXJlZEJ5dGVzOnJ9KTtyZXR1cm4gdGhpcy5wcmVwYXJlZC5ieXRlcy5zbGljZSgpfWRvY3VtZW50X2NodW5rX2RvbmUoKXtpZighdGhpcy5wcmVwYXJlZCl0aHJvdyBFcnJvcihgbWF0ZXJpYWxpemVkIERPQ1ggY3Vyc29yIGhhcyBubyBwcmVwYXJlZCB1bml0YCk7cmV0dXJuIHRoaXMucHJlcGFyZWQuZG9uZX1hY2tub3dsZWRnZV9kb2N1bWVudF9jaHVuayhlLHQsbil7aWYodGhpcy5hc3NlcnRJZGVudGl0eSh0LG4pLCF0aGlzLnByZXBhcmVkfHxlIT09dGhpcy5wcmVwYXJlZC5zZXF1ZW5jZXx8ZSE9PXRoaXMuaW5kZXgpdGhyb3cgRXJyb3IoYG1hdGVyaWFsaXplZCBET0NYIGFja25vd2xlZGdlbWVudCBzZXF1ZW5jZSBtaXNtYXRjaGApO2xldCByPXRoaXMucHJlcGFyZWQuZG9uZTtpZih0aGlzLnByZXBhcmVkPW51bGwscil7dGhpcy5jb21wbGV0ZWQ9ITAsdGhpcy5ib2R5PVtdLHRoaXMuZG9jdW1lbnQ9bnVsbDtyZXR1cm59dGhpcy5ib2R5W3RoaXMuaW5kZXhdPXZvaWQgMCx0aGlzLmluZGV4Kz0xfWNhbmNlbF9kb2N1bWVudF9jdXJzb3IoKXt0aGlzLnByZXBhcmVkPW51bGwsdGhpcy5ib2R5PVtdLHRoaXMuZG9jdW1lbnQ9bnVsbCx0aGlzLmNvbXBsZXRlZD0hMH1jbG9zZV9kb2N1bWVudF9zZXNzaW9uKCl7dGhpcy5jYW5jZWxfZG9jdW1lbnRfY3Vyc29yKCl9YXNzZXJ0SWRlbnRpdHkoZSx0KXtpZighdGhpcy5pZGVudGl0eXx8dGhpcy5pZGVudGl0eS5vcGVyYXRpb25JZCE9PWV8fHRoaXMuaWRlbnRpdHkuZ2VuZXJhdGlvbiE9PXQpdGhyb3cgRXJyb3IoYG1hdGVyaWFsaXplZCBET0NYIGN1cnNvciBpZGVudGl0eSBtaXNtYXRjaGApfXJlcXVpcmVEb2N1bWVudCgpe2lmKCF0aGlzLmRvY3VtZW50KXRocm93IEVycm9yKGBtYXRlcmlhbGl6ZWQgRE9DWCB0ZXJtaW5hbCBkb2N1bWVudCBpcyB1bmF2YWlsYWJsZWApO3JldHVybiB0aGlzLmRvY3VtZW50fX07Y29uc3QgTHo9NjcxMDg4NjQ7dmFyIFJ6PWNsYXNze2Nvb3JkaW5hdG9yPW5ldyBicDtob3N0PW51bGw7aWRlbnRpdHk9bnVsbDtjb25zdHJ1Y3RvcihlLHQ9ZT0+ZSh0aGlzLnJlcXVpcmVBcmNoaXZlKCkpKXt0aGlzLmFyY2hpdmU9ZSx0aGlzLmV4ZWN1dGVBcmNoaXZlPXR9b3BlbihlKXtpZih0aGlzLmhvc3QpdGhyb3cgRXJyb3IoYGEgRE9DWCBkb2N1bWVudCBwdWxsIHNlc3Npb24gaXMgYWxyZWFkeSBhY3RpdmVgKTt0aGlzLmV4ZWN1dGVBcmNoaXZlKHQ9Pnt0Lm9wZW5fZG9jdW1lbnRfY3Vyc29yKGUub3BlcmF0aW9uSWQsZS5nZW5lcmF0aW9uKX0pO2xldCB0PTA7dGhpcy5pZGVudGl0eT1lLHRoaXMuaG9zdD1uZXcgeHAoey4uLmUsbWF4Qnl0ZUNyZWRpdDpMeixjb29yZGluYXRvcjp0aGlzLmNvb3JkaW5hdG9yLGRyaXZlcjp7cHVsbDpuPT57bGV0IHI7dHJ5e3I9dGhpcy5leGVjdXRlQXJjaGl2ZShyPT5yLnB1bGxfZG9jdW1lbnRfY2h1bmsodCxlLm9wZXJhdGlvbklkLGUuZ2VuZXJhdGlvbixuKSl9Y2F0Y2goZSl7dGhyb3cgcHUoZSxuLEx6KXx8ZX1sZXQgaT1SdShyKTtyZXR1cm57cGF5bG9hZDppLGJ5dGVMZW5ndGg6aS5ieXRlTGVuZ3RoLGRvbmU6dGhpcy5leGVjdXRlQXJjaGl2ZShlPT5lLmRvY3VtZW50X2NodW5rX2RvbmUoKSksdHJhbnNmZXI6W2ldfX0sbWVhc3VyZUNodW5rOih7cGF5bG9hZDplfSk9PmUuYnl0ZUxlbmd0aCxhY2tub3dsZWRnZTpuPT57aWYobiE9PXQpdGhyb3cgRXJyb3IoYERPQ1ggZG9jdW1lbnQgYWNrbm93bGVkZ2VtZW50IHNlcXVlbmNlIG1pc21hdGNoYCk7dGhpcy5leGVjdXRlQXJjaGl2ZShuPT5uLmFja25vd2xlZGdlX2RvY3VtZW50X2NodW5rKHQsZS5vcGVyYXRpb25JZCxlLmdlbmVyYXRpb24pKSx0Kz0xfSxjYW5jZWw6KCk9PnRoaXMuZXhlY3V0ZUFyY2hpdmUoZT0+ZS5jYW5jZWxfZG9jdW1lbnRfY3Vyc29yKCkpLGNsb3NlOigpPT50aGlzLmV4ZWN1dGVBcmNoaXZlKGU9PmUuY2xvc2VfZG9jdW1lbnRfc2Vzc2lvbigpKSxyZXNvdXJjZVVzYWdlOigpPT57bGV0IGU9dGhpcy5leGVjdXRlQXJjaGl2ZShlPT5lLmRvY3VtZW50X2N1cnNvcl9yZXNvdXJjZV91c2FnZT8uKCkpO3JldHVybiBlP3l1KGUpOnZvaWQgMH19fSl9ZGlzcGF0Y2goZSx0KXtyZXR1cm4hdGhpcy5ob3N0fHwhdGhpcy5pZGVudGl0eT8odCh7cHJvdG9jb2w6Z3Asa2luZDpgZXJyb3JgLHNlc3Npb25JZDplLnNlc3Npb25JZCxvcGVyYXRpb25JZDplLm9wZXJhdGlvbklkLGdlbmVyYXRpb246ZS5nZW5lcmF0aW9uLHJlcXVlc3RJZDplLnJlcXVlc3RJZCxlcnJvcjpGdShFcnJvcihgRE9DWCBkb2N1bWVudCBwdWxsIHNlc3Npb24gaXMgbm90IG9wZW5gKSl9KSxQcm9taXNlLnJlc29sdmUoKSk6dGhpcy5ob3N0LmRpc3BhdGNoKGUsdCl9YXN5bmMgcmVzZXQoKXtpZih0aGlzLmhvc3QpdHJ5e3RoaXMuYXJjaGl2ZSgpJiZ0aGlzLmV4ZWN1dGVBcmNoaXZlKGU9PmUuY2xvc2VfZG9jdW1lbnRfc2Vzc2lvbigpKX1maW5hbGx5e3RoaXMuaG9zdD1udWxsLHRoaXMuaWRlbnRpdHk9bnVsbCx0aGlzLmNvb3JkaW5hdG9yPW5ldyBicH19cmVxdWlyZUFyY2hpdmUoKXtsZXQgZT10aGlzLmFyY2hpdmUoKTtpZighZSl0aHJvdyBFcnJvcihgTm8gZG9jeCBsb2FkZWRgKTtyZXR1cm4gZX19O2Z1bmN0aW9uIHp6KGUpe3JldHVybiEhZSYmdHlwZW9mIGU9PWBvYmplY3RgJiZlLnByb3RvY29sPT09YG9veG1sLXB1bGwtdjFgfWZ1bmN0aW9uIEJ6KGUpe2xldCB0PTE7cmV0dXJue3JlcXVlc3Qobil7bGV0IHI9bih0KyspO3JldHVybiBuZXcgUHJvbWlzZSgodCxuKT0+e2UuZGlzcGF0Y2gocix0KS5jYXRjaChuKX0pfSxmb3JnZXRPcnBoYW5lZCgpe30sdGVybWluYXRlKCl7fX19Y29uc3QgVno9bmV3IHN1KHcse2ZyZWVBcmNoaXZlOmU9PmUuZnJlZSgpLHJlaW5pdDpUfSksSHo9bmV3IFJ6KCgpPT5Wei5hcmNoaXZlLGU9PlZ6LnJ1bigoKT0+e2xldCB0PVZ6LmFyY2hpdmU7aWYoIXQpdGhyb3cgRXJyb3IoYE5vIGRvY3ggbG9hZGVkYCk7cmV0dXJuIGUodCl9KSk7bGV0IFV6PTAsV3o9bnVsbCxHej1udWxsLEt6PXt9LHF6PVtdO2NvbnN0IEp6PW5ldyBUZyh7bWF4RW50cmllczo2NCxtYXhCeXRlczoxMzQyMTc3Mjh9KSxZej0oZSx0KT0+c2VsZi5wb3N0TWVzc2FnZShlLHQpO2Z1bmN0aW9uIFh6KGUsdCl7cmV0dXJuIEp6LmdldChlLHQsYXN5bmMoKT0+e2xldCBuPVZ6LmFyY2hpdmU7aWYoIW4pdGhyb3cgRXJyb3IoYE5vIGRvY3ggbG9hZGVkYCk7bGV0IHI9VnoucnVuKCgpPT5uLmV4dHJhY3RfaW1hZ2UoZSkpO3JldHVybiBuZXcgQmxvYihbcl0se3R5cGU6dH0pfSl9c2VsZi5vbm1lc3NhZ2U9YXN5bmMgZT0+e2xldCB0PWUuZGF0YTtpZih6eih0KSl7dHJ5e2lmKCFXeil0aHJvdyBFcnJvcihgRE9DWCB2ZXJ0aWNhbCBmYWxsYmFjayBzZXNzaW9uIGlzIG5vdCBvcGVuYCk7YXdhaXQgV3ouZGlzcGF0Y2godCxZeil9Y2F0Y2goZSl7WXooe3Byb3RvY29sOmdwLGtpbmQ6YGVycm9yYCxzZXNzaW9uSWQ6dC5zZXNzaW9uSWQsb3BlcmF0aW9uSWQ6dC5vcGVyYXRpb25JZCxnZW5lcmF0aW9uOnQuZ2VuZXJhdGlvbixyZXF1ZXN0SWQ6dC5yZXF1ZXN0SWQsZXJyb3I6RnUoZSl9KX1yZXR1cm59aWYodC50eXBlPT09YGluaXRgKXtWei5zZXRXYXNtSW5wdXQodHUodC53YXNtVXJsKT8/dC53YXNtVXJsKTtyZXR1cm59bGV0IG49dC5pZDt0cnl7aWYoYXdhaXQgVnouZW5zdXJlUmVhZHkoKSx0LnR5cGUhPT1gcGFyc2VgJiZWei5hcmNoaXZlKXtsZXQgZT1Wei5hcmNoaXZlO1Z6LnJ1bigoKT0+ZS5hc3NlcnRfaGVhbHRoeSgpKX1pZih0LnR5cGU9PT1gcGFyc2VgKXthd2FpdCBIei5yZXNldCgpLGF3YWl0IFd6Py5yZXNldCgpLFd6PW51bGwsR3o9bnVsbCxxei5sZW5ndGg+MCYmKHZnKHF6KSxxej1bXSksSnouY2xlYXIoKSxLej1hd2FpdCBtcCh0LnJlbmRlcmVycyksdGwoWHopLGFsKFh6KTtsZXRbZSxpLGFdPWhwKHQucmVzb3VyY2VQb2xpY3kpLG89bmV3IFVpbnQ4QXJyYXkodC5kYXRhKTtWei5ydW4oKCk9PntsZXQgdD1uZXcgcihvLGUsaSxhKTtWei5zZXRBcmNoaXZlKHQpfSksVXorPTE7bGV0IHM9e3Nlc3Npb25JZDpVeixvcGVyYXRpb25JZDpVeixnZW5lcmF0aW9uOlV6fTtIei5vcGVuKHMpO2xldCBjLGw7dHJ5e2M9YXdhaXQganooQnooSHopLHMse29uVXNhZ2U6ZT0+e2w9ZX19KX1maW5hbGx5e2F3YWl0IEh6LnJlc2V0KCkuY2F0Y2goKCk9PnZvaWQgMCl9aWYoUFIoYy5kb2N1bWVudCkpe2xldCBlPW5ldyBJeihjLmRvY3VtZW50KTtXej1uZXcgUnooKCk9PmUpLFV6Kz0xO2xldCB0PXtzZXNzaW9uSWQ6VXosb3BlcmF0aW9uSWQ6VXosZ2VuZXJhdGlvbjpVen07V3oub3Blbih0KSxZeih7dHlwZTpgbWFpblRocmVhZFZlcnRpY2FsRmFsbGJhY2tgLGlkOm4sLi4udCx1c2FnZTpsfSk7cmV0dXJufWxldCB1PVlSKGMuZG9jdW1lbnQsYy5vd25lZExheW91dERvY3VtZW50KSxkPXUuc291cmNlLGY9dS5kb2N1bWVudCxwPVtdO3QudXNlR29vZ2xlRm9udHMmJihwPWF3YWl0IEkoUkkoZiksSUkpKTtsZXQgbT1bXTtmLmVtYmVkZGVkRm9udHM/Lmxlbmd0aCYmKG09YXdhaXQgaXooZixhc3luYyBlPT57bGV0IHQ9VnouYXJjaGl2ZTtpZighdCl0aHJvdyBFcnJvcihgTm8gZG9jeCBsb2FkZWRgKTtyZXR1cm4gVnoucnVuKCgpPT50LmV4dHJhY3RfaW1hZ2UoZSkpfSkpO2xldCBoPWF3YWl0IHZMKGYpO3F6PWguZmFjZXM7bGV0IGc9S3oubWF0aCYmZC5tYXRoT2NjdXJyZW5jZXMubGVuZ3RoPjA/YXdhaXQgZXooZixLei5tYXRoKTp2b2lkIDA7R3o9Y3ooZCwkUihkLHtsb2NhbE1ldHJpY3M6aC5tZXRyaWNzLHVzZUdvb2dsZUZvbnRzOiEhdC51c2VHb29nbGVGb250cyxlbWJlZGRlZEZhY2VzOm0sZ29vZ2xlRmFjZXM6cCxtYXRoUmVzb3VyY2VzOmc/LnJlY29yZHMsbWF0aERyYXdhYmxlczpnPy5kcmF3YWJsZXN9KSx0LmRlZmF1bHRDdXJyZW50RGF0ZU1zKTtsZXQgXz1Hei5sYXlvdXRWYXJpYW50cy5kZWZhdWx0TGF5b3V0LHY9Xy5wYWdlcy5tYXAoZT0+KHt3aWR0aFB0OmUuZ2VvbWV0cnkud2lkdGhQdCxoZWlnaHRQdDplLmdlb21ldHJ5LmhlaWdodFB0fSkpLHk9e3BhZ2VDb3VudDpfLnBhZ2VzLmxlbmd0aCxjb21tZW50czpmLmNvbW1lbnRzPz9bXSxmb290bm90ZXM6Zi5mb290bm90ZXM/P1tdLGVuZG5vdGVzOmYuZW5kbm90ZXM/P1tdLHBhZ2VTaXplczp2LGJvb2ttYXJrUGFnZXM6Wy4uLnJ6KF8pXX0sYj1Wei5hcmNoaXZlO2lmKCFiKXRocm93IEVycm9yKGBObyBkb2N4IGxvYWRlZGApO2w9eXUoVnoucnVuKCgpPT5iLnJlc291cmNlX3VzYWdlKCkpKSxZeih7dHlwZTpgcGFyc2VkTWV0YWAsaWQ6bixtZXRhOnksdXNhZ2U6bH0pO3JldHVybn1pZih0LnR5cGU9PT1gcmVuZGVyUGFnZWApe2lmKCFHeil0aHJvdyBFcnJvcihgRG9jdW1lbnQgbm90IGxvYWRlZGApO2xldCBlPW5ldyBPZmZzY3JlZW5DYW52YXMoMSwxKSxyPW1fKEd6LmxheW91dFNlcnZpY2VzKTtpZighcil0aHJvdyBFcnJvcihgRG9jdW1lbnQgbGF5b3V0IHNvdXJjZSBpcyBub3QgaW5pdGlhbGl6ZWRgKTthd2FpdCBueihyLGUsdC5wYWdlSW5kZXgsey4uLnQub3B0cyxmZXRjaEltYWdlOlh6LGxheW91dFNlcnZpY2VzOkd6LmxheW91dFNlcnZpY2VzLGRlZmF1bHRDdXJyZW50RGF0ZU1zOkd6LmRlZmF1bHRDdXJyZW50RGF0ZU1zLHRocmVlRDpLei50aHJlZUQscmVnaW9uTWFwOkt6LnJlZ2lvbk1hcH0pO2xldCBpPUZUKEd6LmxheW91dFNlcnZpY2VzLHQucGFnZUluZGV4LHsuLi50Lm9wdHMsZGVmYXVsdEN1cnJlbnREYXRlTXM6R3ouZGVmYXVsdEN1cnJlbnREYXRlTXN9KSxhPWUudHJhbnNmZXJUb0ltYWdlQml0bWFwKCk7WXooe3R5cGU6YHBhZ2VSZW5kZXJlZGAsaWQ6bixiaXRtYXA6YSxydW5zOml9LFthXSk7cmV0dXJufWlmKHQudHlwZT09PWBjb2xsZWN0UnVuc2Ape2lmKCFHeil0aHJvdyBFcnJvcihgRG9jdW1lbnQgbm90IGxvYWRlZGApO1l6KHt0eXBlOmBydW5zQ29sbGVjdGVkYCxpZDpuLHJ1bnM6RlQoR3oubGF5b3V0U2VydmljZXMsdC5wYWdlSW5kZXgsey4uLnQub3B0cyxkZWZhdWx0Q3VycmVudERhdGVNczpHei5kZWZhdWx0Q3VycmVudERhdGVNc30pfSk7cmV0dXJufWlmKHQudHlwZT09PWBoaXRUZXN0RWxlbWVudGApe2lmKCFHeil0aHJvdyBFcnJvcihgRG9jdW1lbnQgbm90IGxvYWRlZGApO1l6KHt0eXBlOmBlbGVtZW50SGl0YCxpZDpuLGNvbnRleHQ6T3ooR3oubGF5b3V0U2VydmljZXMsdC5wYWdlSW5kZXgsdC5wb2ludCx7Li4udC5vcHRzLGRlZmF1bHRDdXJyZW50RGF0ZU1zOkd6LmRlZmF1bHRDdXJyZW50RGF0ZU1zfSl9KTtyZXR1cm59aWYodC50eXBlPT09YGV4dHJhY3RJbWFnZWApe2xldCBlPVZ6LmFyY2hpdmU7aWYoIWUpdGhyb3cgRXJyb3IoYE5vIGRvY3ggbG9hZGVkYCk7bGV0IHI9VnoucnVuKCgpPT5lLmV4dHJhY3RfaW1hZ2UodC5wYXRoKS5idWZmZXIpO1l6KHt0eXBlOmBpbWFnZUV4dHJhY3RlZGAsaWQ6bixieXRlczpyfSxbcl0pO3JldHVybn1pZih0LnR5cGU9PT1gcmVzb3VyY2VVc2FnZWApe2xldCBlPVZ6LmFyY2hpdmU7aWYoIWUpdGhyb3cgRXJyb3IoYE5vIGRvY3ggbG9hZGVkYCk7WXooe3R5cGU6YHJlc291cmNlVXNhZ2VgLGlkOm4sdXNhZ2U6eXUoVnoucnVuKCgpPT5lLnJlc291cmNlX3VzYWdlKCkpKX0pO3JldHVybn1pZih0LnR5cGU9PT1gdG9NYXJrZG93bmApe2xldCBlPVZ6LmFyY2hpdmU7aWYoIWUpdGhyb3cgRXJyb3IoYE5vIGRvY3ggbG9hZGVkYCk7WXooe3R5cGU6YG1hcmtkb3duUmVuZGVyZWRgLGlkOm4sbWFya2Rvd246VnoucnVuKCgpPT5lLnRvX21hcmtkb3duKCkpfSk7cmV0dXJufX1jYXRjaChlKXtsZXQgdD1lIGluc3RhbmNlb2YgRXJyb3I/ZTpFcnJvcihTdHJpbmcoZSkpLHI9dDtZeih7dHlwZTpgZXJyb3JgLGlkOm4sLi4uRnUodCksLi4uci5jb2RlPT09dm9pZCAwP3t9Ontjb2RlOnIuY29kZX0sLi4uci5yZWFzb249PT12b2lkIDA/e306e3JlYXNvbjpyLnJlYXNvbn0sLi4uci5vdXRnb2luZ0NvbHVtbkluZGV4PT09dm9pZCAwP3t9OntvdXRnb2luZ0NvbHVtbkluZGV4OnIub3V0Z29pbmdDb2x1bW5JbmRleH0sLi4uci5vdXRnb2luZ0NvbHVtbkNvdW50PT09dm9pZCAwP3t9OntvdXRnb2luZ0NvbHVtbkNvdW50OnIub3V0Z29pbmdDb2x1bW5Db3VudH0sLi4uci5pbmNvbWluZ0NvbHVtbkNvdW50PT09dm9pZCAwP3t9OntpbmNvbWluZ0NvbHVtbkNvdW50OnIuaW5jb21pbmdDb2x1bW5Db3VudH19KX19Ow==", "" + import.meta.url).href;
|
|
3
|
+
function t() {
|
|
4
|
+
return new Worker(e, { type: "module" });
|
|
5
|
+
}
|
|
6
|
+
//#endregion
|
|
7
|
+
export { t as createRenderWorker };
|